Become a sponsor

本章概要
从服务器准备到应用上线的完整部署操作清单,适用于生产环境首次部署和后续版本更新。
本章提供从服务器准备到应用上线的完整部署操作清单,适用于生产环境首次部署和后续版本更新。
timedatectl set-timezone Asia/ShanghaiPython 环境:
apt install python3-pip 或 yum install python3-pippython3 -m venv /opt/venvsource /opt/venv/bin/activatepip install -r requirements.txt数据库:
CREATE DATABASE djangoadmin.fastapi.elevue DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;.env 中的数据库配置python scripts/init_db.pyRedis:
.env 中的 Redis 配置redis-cli pingNode.js(前端构建):
npm install -g pnpmcd ui && pnpm installpnpm build后端:
.env 文件(数据库、Redis、JWT_SALT 等)python -c "import secrets; print(secrets.token_urlsafe(48))"python src/main.pysupervisorctl start fastapi前端:
ui/dist/ 目录)server {
listen 80;
server_name your-domain.com;
# 前端静态文件
root /opt/project/ui/dist;
index index.html;
# 前端路由
location / {
try_files $uri $uri/ /index.html;
}
# 后端 API 反向代理
location /api/ {
proxy_pass http://127.0.0.1:8031;
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/ {
alias /opt/project/uploads/;
expires 30d;
}
}nginx -tnginx -s reloadtail -f logs/app.logsupervisorctl statusgit pull origin mainpip install -r requirements.txtalembic upgrade headsupervisorctl restart fastapitail -f logs/app.loggit pull origin mainpnpm installpnpm buildui/dist/ 目录mysqldump -uroot -p djangoadmin.fastapi.elevue > backup.sqlalembic upgrade head.env 文件docker-compose builddocker-compose up -ddocker-compose psdocker-compose logs -fdocker-compose exec app python scripts/init_db.pyFASTAPI_DEBUG=FalseFASTAPI_DEMO=False(生产环境)*)# 回滚代码
git checkout <上一个稳定版本tag>
# 回滚数据库迁移
alembic downgrade -1
# 重启服务
supervisorctl restart fastapi# 替换为上一版本的构建产物
cp -r /opt/backup/dist /opt/project/ui/dist# 从备份恢复
mysql -uroot -p djangoadmin.fastapi.elevue < backup.sql部署 Checklist 覆盖了从服务器准备到应用上线的完整流程。首次部署建议按顺序逐项检查,版本更新时使用更新 Checklist 快速操作。生产环境务必做好备份和监控。