Skip to content

服务器部署

本指南描述当前推荐的私有化生产拓扑:MySQL、Redis 和 Nginx 运行在宿主机;后端、两个 Vue 管理端、钰信 Web、kkFileView 与 LiveKit 使用容器运行。不要在已有宿主机 MySQL/Redis 的服务器上重复启动同端口的数据库容器。

前置条件

  • Linux 服务器、Docker Compose、宿主机 MySQL 8、Redis 6+、Nginx。
  • 已解析的域名:租户端、平台端、API、钰信 Web、文件预览、LiveKit。
  • 80/443 TCP;LiveKit 还需要 7881/tcp7882/udp443/udp41000-41040/udp
  • 受信任 TLS 证书和可公网路由的 LiveKit 节点地址。

目录与配置

生产推荐部署目录:/opt/shengyu/saas-deploy。复制仓库中的 docker-compose.ymldeploy/aliyun/docker-compose.prod-host.yml、Nginx 模板和生产环境变量示例到该目录。

生产敏感配置写入 docker.prod.env,权限设置为 600。至少配置数据库、Redis、LiveKit key/secret、正式域名以及前端 API 基地址。不要将真实密码或密钥提交到 Git。

bash
cd /opt/shengyu/saas-deploy
docker compose --env-file docker.prod.env \
  -f docker-compose.yml \
  -f docker-compose.prod-host.yml up -d

Nginx 与 HTTPS

Nginx 对外暴露域名,反代至本机容器端口:租户端 8080、平台端 8081、钰信 Web 8082、后端 48080、IM WebSocket 9000、kkFileView 48090 与 LiveKit 7880

API 站点必须同时代理 /admin-api/platform-api/app-api/ws,并配置 client_max_body_size 200m,否则移动端图片和版本安装包可能收到 413。启用证书后,所有 HTTP 站点应 301 跳转至 HTTPS。

文件与安装包持久化

后端本地文件目录应挂载到宿主机,例如:

text
/opt/shengyu/saas-deploy/data/file
  -> /usr/www/app/saas/file(shengyu-server 容器内)

该目录保存文件服务内容和应用版本上传的安装包。重建 shengyu-server 容器前必须保留该宿主机目录。

上线验证

bash
docker ps
curl -I https://tenant.example.com/
curl -I https://platform.example.com/
curl -I https://im.example.com/
sudo nginx -t

将示例域名替换为实际域名。随后完成登录、消息、图片上传、通话、文件预览和移动端版本检查的业务验证。

回滚原则

发布前备份当前 Jar、每个前端静态目录、Nginx 配置、数据库增量执行记录与环境变量文件。发生问题时先停止新容器或替换旧静态文件;数据库增量必须有单独回滚策略,不能用删除整库的方式回滚。