
战略品牌合作方
VMRACK.NET | 让Dujiao-Next部署更简单
⚡️官方合作闪购款,仅需76刀/年,三网优化线路,助力您业务起飞,支持:支付宝/paypal/USDT。点我享低价独家闪购!🎉







更新时间:2026-07-26
本指南介绍如何将 Dujiao-Next 从旧版本升级到新版本。
v1.4.0 把用户前台与管理后台的前端内嵌进了后端二进制,部署形态从「三端分离」变成「单进程」。这是一次一次性的部署结构调整,数据完全兼容,但部署方式需要调整。
| v1.3.x 及更早 | v1.4.0 起 | |
|---|---|---|
| 部署单元 | api + user + admin 三个服务 | 一个进程 |
| Docker 镜像 | dujiaonext/api、dujiaonext/user、dujiaonext/admin | 只有 dujiaonext/dujiao-next(旧名 dujiaonext/api 仍作为过渡别名同步推送) |
| 容器数量 | 4-5 个 | 2-3 个 |
| 发布产物 | dujiao-next_*.tar.gz(纯 API)+ dujiao-all_*.tar.gz(含前端) | 只有 dujiao-next_*.tar.gz |
| 二进制名 | dujiao-api / dujiao-server | dujiao-next |
| 域名 | 前台、后台各一个 | 一个 |
| 后台入口 | 独立域名的 / | 同一站点的 web.admin_path |
| Nginx | 需为 /api、/uploads、/sitemap.xml、/robots.txt 分别配置反代 | 整站一条 location / |
| 源码仓库 | dujiao-next、user、admin 三个 | 前端并入 dujiao-next 的 frontend/ |
数据层没有任何破坏性变更:数据库、uploads/、config.yml 全部可以直接复用。
备份(见下方第 1 节)。
停止旧服务:
docker compose -f <你的 compose 文件> down修改 compose 文件:删除 user 与 admin 两个 service,只保留 redis(+ postgres)与 dujiao-next。 完整示例见 Docker Compose 部署。
在 config.yml 补上 web 段,设置一个不易猜测的后台路径:
web:
admin_path: "/dj-mgmt-7x9k2"把 .env 里的 TAG 改成 v1.4.0,删掉不再使用的 USER_PORT / ADMIN_PORT。
启动并检查:
docker compose --env-file .env -f <你的 compose 文件> pull
docker compose --env-file .env -f <你的 compose 文件> up -d
docker compose logs -f dujiao-next日志出现 Embedded SPAs: admin (/dj-mgmt-7x9k2), user (/) 即为成功。
调整 Nginx:把原来的两个 server 块合并为一个,整站转发到应用端口。 后台域名可以停用,也可以继续解析到同一个服务。
dujiao-next_*.tar.gz 并解压。db/、uploads/、config.yml 放进新的运行目录。config.yml 补上 web.admin_path。ExecStart(二进制名从 dujiao-api / dujiao-server 改为 dujiao-next), 然后 systemctl daemon-reload。Embedded SPAs。user/dist、admin/dist 的 root 配置可以删除。https://admin.example.com/ 变成 https://shop.example.com/<web.admin_path>, 记得通知所有管理员并更新收藏夹。web.admin_path 后必须重启进程才会生效。dujiaonext/user、dujiaonext/admin 镜像不再更新,可以从服务器上清理掉。必须在升级前备份以下内容:
config.yml)uploads/)参考 备份与恢复 指南。
升级前务必阅读目标版本的 GitHub Release 说明,了解:
升级包含支付回调金额/币种严格校验或 DujiaoPay 配置变更时:
provider_type=dujiaopay 且状态为“待支付”的记录,优先等待其支付完成或过期后再升级。fiat_currency 与这些支付记录的币种一致;在途订单清空前不要修改该渠道的法币配置。readonly_auditor、operations、support、integration、finance、system_admin)的测试管理员,供升级后做权限冒烟。新版会在签名、渠道、第三方订单号、商户订单号和金额全部匹配,且旧支付记录没有新版法币快照时,受限采纳 Webhook 中的签名币种;这项升级前检查仍可避免依赖兼容分支。已有新版快照的支付若发生币种不一致,成功回调仍会被安全校验拒绝。若已经发生,应保留原始回调与支付记录并进行人工对账,不要手工绕过金额或币种校验。
systemctl stop dujiaocp db/dujiao.db db/dujiao.db.bak.$(date +%Y%m%d)
cp config.yml config.yml.bak
cp -r uploads uploads.bakwget https://github.com/dujiao-next/dujiao-next/releases/download/vX.Y.Z/dujiao-next_vX.Y.Z_Linux_x86_64.tar.gz
tar -xzf dujiao-next_*.tar.gz dujiao-next前端随二进制一起更新,不需要另外替换静态文件。
对比 config.yml.example 检查是否有新增配置项,按需添加到 config.yml。
systemctl start dujiao数据库结构变更会在启动时由 GORM 自动迁移完成,无需手动执行 SQL。
git pull origin main
# 一键构建(含前端)
goreleaser build --snapshot --single-target --clean或手工构建,步骤见 手动部署。
docker compose exec dujiao-next cp /app/db/dujiao.db /app/db/dujiao.db.bak
docker compose cp dujiao-next:/app/config.yml ./config.yml.bak# 修改 .env 中的 TAG 为目标版本
docker compose --env-file .env -f <你的方案文件> pulldocker compose --env-file .env -f <你的方案文件> up -ddocker compose logs -f dujiao-next升级完成后按以下步骤验证:
/<web.admin_path>,确认管理员可正常登录如果升级后出现问题:
systemctl stop dujiao
# 恢复数据库与配置
cp db/dujiao.db.bak.YYYYMMDD db/dujiao.db
cp config.yml.bak config.yml
# 换回旧版二进制
systemctl start dujiao从 v1.4.0 回滚到 v1.3.x 时,还需要把 user / admin 前端重新部署起来,并还原 Nginx 配置。
docker compose down
# 把 .env 的 TAG 改回旧版本,恢复数据库备份
docker compose --env-file .env -f <你的方案文件> up -d