跳转到内容

rchat-server 命令行

rchat-server [OPTIONS]
参数环境变量默认值含义
-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_LEVELinfo日志详细程度: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无打印帮助。
Terminal window
# 生产环境:TLS 来自配置文件
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
  1. 解析参数并读取配置文件。
  2. 查找中继身份密钥。如果使用了 --init-relay-identity、--print-relay-pin 或 --rotate-relay-identity,执行相应操作后退出。否则加载该密钥;从配置文件运行的中继缺少它时拒绝启动。
  3. 确定 TLS 模式并校验所有设置。任何错误都会在绑定之前停止服务器。
  4. 准备 TLS:加载静态证书,或准备 ACME 缓存并启动 ACME 客户端。
  5. 绑定并开始服务;如果 [metrics] enabled = true,同时启动指标端点。
信号效果
SIGHUP(systemctl reload)静态证书:重新读取 cert_path 和 key_path,不断开连接;新证书失败时保留旧证书。ACME 或 --no-tls:没有可重新加载的内容。不会重新读取配置文件。
SIGTERM(systemctl stop)停止服务器。开启加密队列持久化时,会先保存队列。