VMRACK.NET | 让Dujiao-Next部署更简单
手动部署(API / User / Admin)
更新时间:2026-02-27
若你尚未确定部署方式,建议先阅读 部署总览与选型建议。
本文档适合希望完全掌控部署过程的开发者,分为「编译」与「运行」两部分。
1. 获取源码
bash
mkdir dujiao-next && cd dujiao-next
# API(主项目)
git clone https://github.com/dujiao-next/dujiao-next.git api
# User(用户前台)
git clone https://github.com/dujiao-next/user.git user
# Admin(后台)
git clone https://github.com/dujiao-next/admin.git admin若你当前使用的是历史单仓目录(
web/),请将下文user/替换为web/。
2. 后端 API 部署
2.1 安装依赖并构建
bash
cd api
go mod tidy
go build -o dujiao-api ./cmd/server2.2 配置文件
bash
cp config.yml.example config.yml
# 按实际环境修改 config.yml关键项至少要确认:
server.mode(debug/release)database.driver/database.dsnjwt.secret/user_jwt.secretredis、queue、email(按需启用)
⚠️ 重要安全提醒:上线前必须修改
jwt.secret与user_jwt.secret,并使用至少 32 位高强度随机字符串。严禁使用模板默认值,否则可能导致 Token 可伪造,存在严重安全风险。
2.3 初始化数据(可选)
bash
go run ./cmd/seed2.4 运行 API
bash
./dujiao-api默认监听:http://0.0.0.0:8080
2.5 默认后台管理员账号(首次初始化)
当数据库中 admins 表为空时,系统会在 API 首次启动时尝试创建默认管理员:
- 默认账号:
admin - 默认密码:
admin123
强烈建议:首次登录后台后,立刻在“后台 -> 修改密码”中更换为强密码。
说明:
- 你可以在启动 API 前设置环境变量覆盖默认值:
DJ_DEFAULT_ADMIN_USERNAMEDJ_DEFAULT_ADMIN_PASSWORD
- 若
server.mode=release且未设置DJ_DEFAULT_ADMIN_PASSWORD,系统会跳过默认管理员初始化(不会自动创建admin/admin123)。
3. 用户前台 User 部署
3.1 安装依赖与构建
bash
cd ../user
npm install
npm run build构建产物目录:user/dist
3.2 运行方式
你可以选择:
- 用 Nginx 托管
user/dist - 或临时使用
npm run preview验证
4. 后台 Admin 部署
4.1 安装依赖与构建
bash
cd ../admin
npm install
npm run build构建产物目录:admin/dist
4.2 运行方式
你可以选择:
- 用 Nginx 托管
admin/dist(建议绑定/admin路径) - 或临时使用
npm run preview验证
5. Nginx 反向代理配置
User 与 Admin 前端各自通过 /api、/uploads 路径反向代理到 API 服务(127.0.0.1:8080),需分别配置两个域名。
5.1 分域名部署示例
- 前台:
user.example.com→user/dist - 后台:
admin.example.com→admin/dist
nginx
# 前台 User
server {
listen 80;
server_name user.example.com;
root /var/www/dujiao-next/user/dist;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
location /api/ {
proxy_pass http://127.0.0.1:8080/api/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /uploads/ {
proxy_pass http://127.0.0.1:8080/uploads/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
# 后台 Admin
server {
listen 80;
server_name admin.example.com;
root /var/www/dujiao-next/admin/dist;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
location /api/ {
proxy_pass http://127.0.0.1:8080/api/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location /uploads/ {
proxy_pass http://127.0.0.1:8080/uploads/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}6. 启停与升级建议
- API 建议使用
systemd/supervisor托管 - 发布时按顺序执行:
- 停止 API
- 更新代码并重新构建
- 替换
user/dist、admin/dist - 启动 API
- 检查健康接口:
GET /health
