Deployment Guide

部署教程

本文介绍如何在 VPS 上通过 Docker 部署 DMG 综合包网系统,包括后端 API 平台、前端 H5 应用、站点配置与域名绑定。建议使用宝塔面板(或同类服务器管理面板)完成环境准备与反向代理。

01购买 VPS 与域名

部署前请准备一台可公网访问的 Linux 服务器,以及已解析到该服务器 IP 的域名(建议至少两个子域名:API 与前端)。

推荐配置

项目建议
操作系统Ubuntu 22.04 / Debian 12
CPU / 内存2 核 / 4 GB 及以上
磁盘40 GB SSD 及以上
带宽按目标用户地区选择,建议 ≥ 5 Mbps

域名规划示例

  • admin.example.com — DmgAdmin 运营后台与移动端 API
  • www.example.comapp.example.com — 玩家端 H5(DmgAPP Web)
提示:域名 DNS 需先将 A 记录指向 VPS 公网 IP,后续申请 SSL 证书时才可正常签发。

02登录面板后台

在 VPS 上安装宝塔面板(aaPanel / BT Panel)或您惯用的服务器管理面板,通过浏览器登录面板后台。

  1. 使用 SSH 或云厂商控制台登录 VPS。
  2. 按面板官方文档完成安装(首次安装会输出面板地址、用户名与密码)。
  3. 在浏览器打开面板地址并登录,确认可正常访问「文件」「Docker」「网站」等功能模块。
安全建议:修改默认端口、启用面板二次验证,并在云厂商安全组中仅放行必要端口(如 22、80、443、面板端口)。

03安装 Docker 环境

推荐使用 Kejilion.sh 一键脚本安装 Docker 与 Docker Compose。在服务器终端执行:

bash <(curl -sL kejilion.sh) docker install

若使用宝塔面板,也可在面板中找到 Docker 或「应用商店 → Docker」,使用一键安装完成安装。

  1. 进入面板「软件商店」或「Docker」页面。
  2. 安装 Docker 引擎及 Compose 插件(V2)。
  3. 安装完成后,在终端或面板终端执行以下命令确认:
docker --version
docker compose version
注意:若使用非 root 用户运行 Docker,需将用户加入 docker 组,或始终通过面板提供的 root 终端执行部署命令。

04部署后端服务(DmgAdmin)

本步骤部署 DmgAdmin 运营后台(含移动端 REST API)。将下方 docker-compose.yamlappsettings.json 保存到服务器目录(如 /www/dmg/DmgAdmin/),按说明修改配置后执行 docker compose up -d 即可启动。另需在同目录创建空的 appsettings.Production.json(内容可为 {}),供 compose 挂载。

mkdir -p /www/dmg/DmgAdmin
cd /www/dmg/DmgAdmin
mkdir -p Logs keys wwwroot/uploads wwwroot/avatars wwwroot/game
nano docker-compose.yaml      # 全选复制下方内容,粘贴后 Ctrl+O 保存、Ctrl+X 退出
nano appsettings.json         # 同上,粘贴下方 appsettings.json
echo '{}' > appsettings.Production.json

也可在宝塔面板「文件」中新建同名文件并粘贴内容;vi / vim 用户将 nano 替换为对应编辑器即可。

docker-compose.yaml
appsettings.json

修改 appsettings.json

保存配置文件后,务必根据实际环境修改以下字段:

配置项说明示例
DmgApi:BaseUrl上游 DmgAPI 游戏接口地址https://api.example.com
DmgApi:AccountDmgAPI 分配的商户账号由 DMG 提供
DmgApi:ApiKeyDmgAPI 分配的 API 密钥由 DMG 提供
APIDomain本后台对外访问域名(移动端 API 回调等)https://admin.example.com
AllowedOrigins允许跨域的前端域名列表玩家 H5 / APP WebView 域名
Payment:UsdtAddressUSDT 收款地址按运营需求填写
TelegramBot:*Telegram 机器人通知(生产环境启用)Bot Token、名称、通知 Chat ID
提示:ConnectionStrings:Default 中的 Password=CHANGE_ME 必须与 compose 里 MYSQL_ROOT_PASSWORD 一致;Server=mysql 为 compose 内 MySQL 服务名。MySQL 8 在非 SSL 连接下需保留 AllowPublicKeyRetrieval=true,否则会出现 RSA public key 相关认证错误。

05部署前端应用

将下方 docker-compose.yaml 保存至独立目录(建议 /www/dmg/DmgAPP),与后端分开管理。保存后执行 docker compose pulldocker compose up -d 即可启动。

mkdir -p /www/dmg/DmgAPP
cd /www/dmg/DmgAPP
nano docker-compose.yaml      # 全选复制下方内容,粘贴后 Ctrl+O 保存、Ctrl+X 退出

也可在宝塔面板「文件」中新建同名文件并粘贴内容;vi / vim 用户将 nano 替换为对应编辑器即可。

docker-compose.yaml

06启动与验证

配置保存完成后,在后端与前端目录拉取镜像并启动;首次启动后端会自动创建 MySQL 数据卷,健康检查通过后再启动 DmgAdmin。

cd /www/dmg/DmgAdmin && docker compose pull && docker compose up -d
cd /www/dmg/DmgAPP && docker compose pull && docker compose up -d

docker ps
curl -I http://127.0.0.1:8015/admin
curl -I http://127.0.0.1:8085

临时访问:后台 http://服务器IP:8015/admin,前端 H5 http://服务器IP:8085(正式上线前请绑定域名并启用 HTTPS)。

07配置站点信息

后端首次启动后,登录 DmgAdmin 运营后台,在系统设置中完善站点信息,确保前端与对外链接正确。

  1. 访问后台登录页(如 https://admin.example.com/admin),使用开通的管理员账号登录。
  2. 进入 系统管理 → 站点设置(或同级菜单)。
  3. 按需填写以下信息:
  • 站点名称、LOGO、页脚文案等品牌信息
  • 对外访问域名 / 站点 URL(与即将绑定的域名一致)
  • 注册页、找回密码等链接路径
  • 客服、Telegram 等联系方式(如有)

确认 appsettings.jsonAPIDomainAllowedOrigins 已与实际上线域名一致;修改后需重启容器:docker compose restart dmgadmin

重要:生产环境请将 DetailedErrors 设为 false,并妥善保管 MySQL 与 API 密钥。

08绑定域名与 HTTPS

在面板「网站」中为 API 与前端分别添加站点,通过反向代理转发到本机 Docker 端口,并申请 SSL 证书。

API / 后台域名(示例 admin.example.com

  • 反向代理目标:http://127.0.0.1:8015
  • 开启 HTTPS(Let's Encrypt 或上传证书)
  • 必须开启 WebSocket 转发(Blazor Server / SignalR 依赖 /_blazor 长连接)

Nginx 反向代理关键配置示例:

location / {
    proxy_pass http://127.0.0.1:8015;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_read_timeout 3600s;
}

前端 H5 域名(示例 www.example.com

  • 反向代理目标:http://127.0.0.1:8085
  • 开启 HTTPS,强制 HTTP 跳转 HTTPS

上线检查清单

  • API 域名可访问,后台可正常登录且无 WebSocket 断连
  • 前端 H5 可打开并正常调用 API
  • 站点设置中的域名与实际上线域名一致
  • 云安全组已放行 80 / 443

部署过程中如需协助,或需要获取最新部署包与镜像版本,欢迎联系我们。

Telegram 技术支持