| 参数 | 环境变量 | 默认值 | 含义 |
|---|
-c, --config <PATH> | 无 | /etc/rchat/server.toml | 配置文件。文件缺失或不可读是启动错误。 |
-b, --bind <ADDR> | RCHAT_BIND_ADDR | 取自 bind_addr | 监听地址,覆盖配置文件,例如 0.0.0.0:443 或 127.0.0.1:8443。 |
-l, --log-level <LEVEL> | RCHAT_LOG_LEVEL | info | 日志详细程度:error、warn、info、debug 或 trace。也接受 tracing 过滤指令,例如 rchat_server=debug。 |
--init-relay-identity | 无 | | 在 relay_identity_path 创建中继身份密钥,打印其固定值后退出。不会覆盖已有密钥。以服务用户身份运行一次。 |
--print-relay-pin | 无 | | 打印中继的固定值(rk:1:…)和版本后退出。 |
--rotate-relay-identity | 无 | | 以版本 + 1 创建新的身份密钥,写入由旧密钥签名的交接,删除旧密钥,打印新的固定值后退出。请先停止中继,之后再启动。 |
--no-tls | 无 | 关闭 | 仅限开发。 提供不带 TLS 的明文 WebSocket,忽略 [server.tls] 和 [server.acme]。要求设置 [server] dev_origin。在非回环地址上拒绝启动。 |
--insecure-public-plaintext | 无 | 关闭 | 与 --no-tls 一起使用时允许非回环地址。网络上的任何人都能读取和篡改所有流量。需要 --no-tls。 |
-h, --help | 无 | | 打印帮助。 |
rchat-server --config /etc/rchat/server.toml
sudo -u rchat /usr/local/bin/rchat-server --config /etc/rchat/server.toml --init-relay-identity
sudo -u rchat /usr/local/bin/rchat-server --config /etc/rchat/server.toml --print-relay-pin
# 位于本机 TCP 前端之后(中继仍自行终止 TLS)
rchat-server --config /etc/rchat/server.toml --bind 127.0.0.1:8443
# 本地开发:回环地址上的明文;dev.toml 中设置了 dev_origin
rchat-server --config dev.toml --no-tls
- 解析参数并读取配置文件。
- 查找中继身份密钥。如果使用了
--init-relay-identity、--print-relay-pin 或 --rotate-relay-identity,执行相应操作后退出。否则加载该密钥;从配置文件运行的中继缺少它时拒绝启动。
- 确定 TLS 模式并校验所有设置。任何错误都会在绑定之前停止服务器。
- 准备 TLS:加载静态证书,或准备 ACME 缓存并启动 ACME 客户端。
- 绑定并开始服务;如果
[metrics] enabled = true,同时启动指标端点。
| 信号 | 效果 |
|---|
SIGHUP(systemctl reload) | 静态证书:重新读取 cert_path 和 key_path,不断开连接;新证书失败时保留旧证书。ACME 或 --no-tls:没有可重新加载的内容。不会重新读取配置文件。 |
SIGTERM(systemctl stop) | 停止服务器。开启加密队列持久化时,会先保存队列。 |