部署方案
前后端部署

平台部署

准备工作

项目要求
操作系统Linux(推荐 Ubuntu 22.04+)/ macOS
DockerDocker Engine 24+ 和 Docker Compose V2
硬件≥ 2 核 CPU / 4 GB 内存 / 40 GB 磁盘
网络开放 80、443 端口,域名(可选,用于 HTTPS)
⚠️

平台镜像为私有镜像,部署前需要获取授权凭据。请联系我们获取访问权限。

快速部署

登录镜像仓库

docker login registry.pandatest.net

初始化部署目录

mkdir -p pandatest && cd pandatest

下载发布包后,目录结构如下:

pandatest/
├── docker-compose.prod.yml
├── .env                         # 环境配置(需手动创建)
└── deploy/
    ├── manifests/
    │   └── release-1.1.3.json   # 版本清单
    └── scripts/
        ├── server-doctor.sh     # 部署预检查
        ├── server-install.sh    # 安装
        ├── server-upgrade.sh    # 升级
        └── server-rollback.sh   # 回滚

配置环境变量

创建 .env 文件,填入以下内容:

# ===== 必填 =====
SECRET_KEY=your-random-secret-key-here
ALLOWED_HOSTS=your-domain.com,localhost
FRONTEND_URL=https://your-domain.com
CORS_ALLOWED_ORIGINS=https://your-domain.com
 
# ===== 数据库 & 存储 =====
DB_PASSWORD=your-strong-db-password
MINIO_ROOT_PASSWORD=your-strong-minio-password
 
# ===== 初始管理员(仅首次部署) =====
CREATE_ADMIN=True
ADMIN_USERNAME=admin
ADMIN_EMAIL=admin@your-domain.com
ADMIN_PASSWORD=your-admin-password
⚠️

请务必将 SECRET_KEYDB_PASSWORDMINIO_ROOT_PASSWORDADMIN_PASSWORD 替换为强随机密码。

预检查 & 安装

# 检查环境是否就绪
bash deploy/scripts/server-doctor.sh --version 1.1.3
 
# 执行安装
bash deploy/scripts/server-install.sh --version 1.1.3

验证

# 确认所有容器正常运行
docker compose -f docker-compose.prod.yml ps
 
# 查看后端启动日志
docker compose -f docker-compose.prod.yml logs -f backend

首次启动时,后端会自动完成数据库迁移和管理员账号创建。浏览器访问 http://your-domain.com 即可使用。

升级 & 回滚

# 升级到新版本
bash deploy/scripts/server-doctor.sh  --version 1.1.3
bash deploy/scripts/server-upgrade.sh --version 1.1.3
 
# 回滚到上一版本
bash deploy/scripts/server-rollback.sh --version 1.1.2

升级前会自动备份数据库。完整流程见 升级指南回滚指南

HTTPS 配置

sudo apt install certbot
sudo certbot certonly --standalone -d your-domain.com
docker compose -f docker-compose.prod.yml restart frontend

证书会自动挂载到前端容器,到期前 certbot 自动续期。

数据备份

# 备份数据库
docker exec pandatest-postgres pg_dump -U postgres pandatest > backup_$(date +%Y%m%d).sql
 
# 恢复数据库
cat backup.sql | docker exec -i pandatest-postgres psql -U postgres pandatest

对象存储数据保存在 Docker Volume 中,可通过存储管理控制台(:9001)或命令行工具备份。

常用命令

docker compose -f docker-compose.prod.yml logs -f          # 查看实时日志
docker compose -f docker-compose.prod.yml restart backend   # 重启后端
docker compose -f docker-compose.prod.yml down              # 停止所有服务
docker compose -f docker-compose.prod.yml down -v           # 停止并清除数据(慎用)

环境变量参考

必填

变量说明示例
SECRET_KEY应用密钥随机字符串
ALLOWED_HOSTS允许的域名your-domain.com
FRONTEND_URL前端访问地址https://your-domain.com
DB_PASSWORD数据库密码强密码
MINIO_ROOT_PASSWORD对象存储密码强密码

可选

变量说明默认值
DEBUG调试模式False
DB_NAME数据库名pandatest
DB_USER数据库用户postgres
CREATE_ADMIN是否创建初始管理员False
ADMIN_USERNAME管理员用户名admin
ADMIN_PASSWORD管理员密码
EMAIL_HOSTSMTP 服务器
GITHUB_CLIENT_IDGitHub OAuth
GOOGLE_CLIENT_IDGoogle OAuth

常见问题

后端无法启动

  1. 检查各服务容器是否健康:docker compose ps
  2. 查看详细日志:docker compose logs backend
  3. 确认 .env 中数据库密码配置正确

无法访问页面

  1. 确认端口 80/443 未被占用
  2. 检查 frontend 容器日志:docker compose logs frontend
  3. 确认 ALLOWED_HOSTS 包含你的域名

存储服务异常

  1. 确认存储服务容器健康:docker compose ps
  2. 确认 .envMINIO_ROOT_USERMINIO_ROOT_PASSWORD 配置正确

如需获取镜像访问权限或技术支持,请联系:contact@pandatest.net