01
准备
一台能运行 Docker 与 Docker Compose 的服务器。从产品仓库取得 docker-compose.yml 与 .env.example,放在同一目录。
web控制台,映射
38472:3000,并把 /api/** 代理到 serverserver中枢服务(容器内 4000 端口,不对外),数据目录挂载
./dataredisRedis 7.4,开启 AOF 与密码认证
mysqlMySQL 8.4,utf8mb4
02
配置 .env
cp .env.example .env至少修改标记为「必须」的五项。生产环境默认通过 TLS 反向代理访问控制台。
SESSION_SECRET控制台会话签名密钥必须
ACCESS_KEY网页、Windows / Android 客户端和所有 Agent 共用的唯一访问密钥;升级时即使旧 .env 仍有 AGENT_SHARED_SECRET,也以它为准必须
MYSQL_ROOT_PASSWORDMySQL root 密码必须
MYSQL_PASSWORD应用数据库用户密码必须
REDIS_PASSWORDRedis 认证密码;REDIS_URL 需配置相同的密码必须
TRUST_PROXY只有当 server 仅能从受信反向代理访问时才设为 true,否则保持 false按需
SESSION_COOKIE_SECURE默认 true;仅在明确受信的 HTTP 网络中改为 false按需
AGENT_REQUIRE_HTTPS默认 true;仅在明确受信的 HTTP 网络中改为 false按需
03
启动
生产环境必须使用固定版本或不可变 digest:
DSC_VERSION=<版本号> docker compose pull
DSC_VERSION=<版本号> docker compose up -d开发或测试环境如果确实需要移动标签,可以显式选择 latest:
DSC_VERSION=latest docker compose pull
DSC_VERSION=latest docker compose up -dserver 提供 /api/health/readiness 与 /api/health/liveness 探测端点。
04
反向代理与 TLS
- 默认建议 HTTPS。
SESSION_COOKIE_SECURE与AGENT_REQUIRE_HTTPS默认开启;只有在明确受信的网络中才改用 HTTP。 - 只有当 server 仅能从受信代理访问时才设置
TRUST_PROXY=true。 - 实时查看依赖 Agent 主动连接
/api/agent/realtime:外部入口、反向代理或 FRP / NPS 需要允许该路径的 WebSocket Upgrade,空闲超时应大于 20 秒。 - 使用 frps 时,把内网与外网端口同时指向
38472。 - 实时通道首版只支持单个中枢进程 / 副本,不能直接横向复制。
05
接入设备
在各终端填写同一个公开入口与 ACCESS_KEY。不要把 Docker 容器内部的 4000 端口填入客户端。
- 局域网 HTTP
- http://服务器IP:38472
- 局域网
- https://服务器域名:38472
- 公网
- https://你的域名
- 受控 HTTP 内网穿透
- http://公网IP:转发端口
然后 下载客户端,或在无桌面的机器上用静默参数安装。
06
升级与备份
- 升级:把
DSC_VERSION换成新的固定版本,重新pull与up -d。 - 备份:
mysql-data、redis-data两个数据卷与./data目录(其中保存实时通道的设备凭据哈希)。 - Windows 端用 setup / update 包升级,Linux 端用新的 .deb;两种方式都会保留机器级配置。