Skip to content

Autopush

Office Web - Source - Docker Image - Document


Autopush 是 Mozilla 推送服务的 Rust 实现。


配置选项

Autoconnect

以下配置选项既可以在配置文件中指定,也可以通过环境变量的形式指定。

选项环境变量类型默认值描述
actix_max_connectionsAUTOCONNECT__ACTIX_MAX_CONNECTIONS数字Actix Web 服务器的最大并发连接数
actix_workersAUTOCONNECT__ACTIX_WORKERS数字Actix Web 服务器每个绑定地址的工作线程数
auto_ping_intervalAUTOCONNECT__AUTO_PING_INTERVAL数字300服务器向客户端发送 ping 消息的时间间隔(秒)
auto_ping_timeoutAUTOCONNECT__AUTO_PING_TIMEOUT数字4等待客户端 ping 响应的时间(秒)
crypto_keyAUTOCONNECT__CRYPTO_KEY字符串内部生成的值用于端点加密的加密密钥
db_dsnAUTOCONNECT__DB_DSN字符串后端数据库的数据源名称
db_settingsAUTOCONNECT__DB_SETTINGS字符串数据库设置的序列化 JSON 结构(详见每个数据存储)
endpoint_hostnameAUTOCONNECT__ENDPOINT_HOSTNAME字符串"localhost"端点 URL 的主机名
endpoint_portAUTOCONNECT__ENDPOINT_PORT数字8082端点 URL 的可选端口覆盖值
endpoint_schemeAUTOCONNECT__ENDPOINT_SCHEME字符串"http"端点 URL 的 URL 方案(http/https)
hostnameAUTOCONNECT__HOSTNAME字符串机器主机名(例如 localhost
human_logsAUTOCONNECT__HUMAN_LOGS布尔值false是否使用人类可读的日志格式(例如时间戳、日志级别)
megaphone_api_tokenAUTOCONNECT__MEGAPHONE_API_TOKEN字符串远程设置 “Megaphone” API 服务器的访问令牌
megaphone_api_urlAUTOCONNECT__MEGAPHONE_API_URL字符串远程设置 “Megaphone” API 服务器的 URL
megaphone_poll_intervalAUTOCONNECT__MEGAPHONE_POLL_INTERVAL字符串轮询远程设置 “Megaphone” 服务器的周期(秒)
msg_limitAUTOCONNECT__MSG_LIMIT数字1000每个客户端存储的最大消息数
open_handshake_timeoutAUTOCONNECT__OPEN_HANDSHAKE_TIMEOUT数字5等待客户端发送有效 Hello 消息的时间(秒)
portAUTOCONNECT__PORT数字8080应用程序监听的端口
reliability_dsnAUTOCONNECT__RELIABILITY_DSN字符串可靠性数据存储的数据源名称(如果启用 --features=reliable_report
reliability_retry_countAUTOCONNECT__RELIABILITY_RETRY_COUNT数字3为保证可靠性,重试 Redis 事务写入的次数(如果启用 --features=reliable_report
resolve_hostnameAUTOCONNECT__RESOLVE_HOSTNAME布尔值false使用给定主机名的内部 IP 地址
router_hostnameAUTOCONNECT__ROUTER_HOSTNAME字符串用于节点间通信的主机名
router_portAUTOCONNECT__ROUTER_PORT数字8081自动连接节点间通信的路由器端口
statsd_hostAUTOCONNECT__STATSD_HOST字符串"localhost"statsd 收集器主机的名称
statsd_portAUTOCONNECT__STATSD_PORT端口8125statsd 收集器主机的端口
statsd_labelAUTOCONNECT__STATSD_LABEL字符串"autoconnect"用于 statsd 指标的标签

Autoendpoint

以下配置选项既可以在配置文件中指定,也可以通过环境变量的形式指定。

选项环境变量类型默认值描述
schemeAUTOEND__SCHEME字符串"http"端点 URL 的 URL 方案(http/https)
hostAUTOEND__HOST字符串"127.0.0.1"端点 URL 的机器主机(例如 localhost
portAUTOEND__PORT数字8000端点 URL 的应用程序端口覆盖值
endpoint_urlAUTOEND__ENDPOINT_URL字符串端点的完整 URL(如果设置,则覆盖 schemehostport
db_dsnAUTOEND__DB_DSN字符串后端数据库的数据源名称
db_settingsAUTOEND__DB_SETTINGS字符串数据库设置的序列化 JSON 结构(详见每个数据存储)
router_table_nameAUTOEND__ROUTER_TABLE_NAME字符串"router"用于路由器的数据库表名(注意,这是旧版设置,将在未来版本中移除)
message_table_nameAUTOEND__MESSAGE_TABLE_NAME字符串"message"用于消息的数据库表名(注意,这是旧版设置,将在未来版本中移除)
tracking_keysAUTOEND__TRACKING_KEYS字符串为保证可靠性而跟踪的 VAPID 公钥的逗号分隔列表(如果启用 --features=reliable_report
max_data_bytesAUTOEND__MAX_DATA_BYTES数字4096消息 data 字段中允许接受的最大字节数
crypto_keysAUTOEND__CRYPTO_KEYS字符串内部生成的值用于端点加密的加密密钥的逗号分隔列表(第一个密钥将用于加密新消息)
auth_keysAUTOEND__AUTH_KEYS字符串用于客户端端点身份验证的身份验证密钥的逗号分隔列表(第一个密钥将用于验证新消息)
human_logsAUTOEND__HUMAN_LOGS布尔值false是否使用人类可读的日志格式(例如时间戳、日志级别)
connection_timeout_millisAUTOEND__CONNECTION_TIMEOUT_MILLIS数字1000等待桥接连接超时前的毫秒数
request_timeout_millisAUTOEND__REQUEST_TIMEOUT_MILLIS数字3000等待桥接请求超时前的毫秒数
statsd_hostAUTOEND__STATSD_HOST字符串"localhost"statsd 收集器主机的名称
statsd_portAUTOEND__STATSD_PORT端口8125
statsd_labelAUTOEND__STATSD_LABEL字符串"autoendpoint"用于 statsd 指标的标签
reliability_dsnAUTOEND__RELIABILITY_DSN字符串可靠性数据存储的数据源名称(如果启用 --features=reliable_report
reliability_retry_countAUTOEND__RELIABILITY_RETRY_COUNT数字10为保证可靠性,重试 Redis 事务写入的次数(如果启用 --features=reliable_report
max_notification_ttlAUTOEND__MAX_NOTIFICATION_TTL数字2592000(30 天)通知消息允许的最大生存时间(TTL,秒)

密钥可通过 openssl rand -base64 32 命令行创建

NGINX 反向代理设置

nginx
    location / {
        # proxy_pass http://127.0.0.1:8080;
        proxy_pass http://127.0.0.1:8000;
        proxy_http_version 1.1;

        proxy_set_header Host $http_host;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;

        proxy_connect_timeout 3m;
        proxy_send_timeout 3m;
        proxy_read_timeout 3m;

        client_max_body_size 0; # Stream request body to backend
    }

Released under the Apache-2.0 License.