
戰略品牌合作夥伴
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