mirror of
https://github.com/fastapiadmin/FastapiAdmin.git
synced 2026-09-20 20:39:55 +00:00
refactor: 迁移前端资源文件至web目录 feat: 新增多种图标资源 style: 统一代码风格和格式化配置 docs: 更新README和文档说明 chore: 更新依赖和配置文件 fix: 修复部分类型定义和枚举 perf: 优化路由和组件加载逻辑
3.9 KiB
3.9 KiB
FastapiAdmin 部署说明
项目结构
docker/
├── backend/ # 后端服务配置
│ └── Dockerfile # 后端Dockerfile
├── nginx/ # Nginx配置
│ ├── nginx.conf # Nginx配置文件
│ ├── ssl/ # SSL证书目录
│ ├── web/ # 前端静态文件
│ ├── app/ # 小程序静态文件
│ └── docs/ # 文档静态文件
├── mysql/ # MySQL数据目录
│ └── data/ # MySQL数据持久化目录
├── redis/ # Redis数据目录
│ └── data/ # Redis数据持久化目录
├── docker-compose.yaml # Docker Compose配置文件
├── .env # 环境变量配置文件
├── .env.example # 环境变量示例文件
└── README.md # 部署说明文档
部署准备
系统依赖
- Git
- Docker
- Docker Compose
- Node.js (前端构建需要)
- pnpm (前端构建需要)
环境配置
-
配置环境变量
复制
.env.example文件为.env,并根据实际情况修改配置:cp .env.example .env主要配置项:
MYSQL_ROOT_PASSWORD: MySQL根密码MYSQL_DATABASE: 数据库名MYSQL_USER: 数据库用户MYSQL_PASSWORD: 数据库密码REDIS_PASSWORD: Redis密码BACKEND_PORT: 后端服务端口HTTP_PORT: HTTP端口HTTPS_PORT: HTTPS端口
-
SSL证书配置 (可选)
如果需要HTTPS,将SSL证书文件放在
nginx/ssl/目录下:server.key: 私钥文件server.pem: 证书文件
部署流程
1. 执行部署脚本
在项目根目录执行部署脚本:
./deploy.sh
部署脚本会自动执行以下步骤:
- 加载环境变量
- 检查系统依赖
- 停止现有容器
- 更新代码
- 构建前端(可选)
- 构建镜像
- 启动容器
- 显示日志
2. 命令选项
部署脚本支持以下命令选项:
./deploy.sh start- 启动所有容器./deploy.sh stop- 停止所有容器./deploy.sh restart- 重启所有容器./deploy.sh logs- 查看所有容器日志./deploy.sh help- 显示帮助信息
访问信息
部署完成后,可以通过以下地址访问:
- 官网: https://域名(或ip:端口)
- 前端: https://域名(或ip:端口)/web
- 小程序: https://域名(或ip:端口)/app
- 登录信息: 账号 admin,密码 123456
日志管理
查看容器日志
# 查看所有容器日志
./deploy.sh logs
# 查看实时日志
cd docker
docker compose logs -f [服务名]
# 服务名:backend, nginx, mysql, redis
清理旧镜像
部署脚本会自动清理72小时前的旧镜像,以节省磁盘空间。
常见问题
1. 环境变量文件不存在
如果 .env 文件不存在,部署脚本会自动从 .env.example 创建。
2. 前端构建失败
如果服务器资源不足,建议在本地构建前端,然后将 dist 目录上传到 docker/nginx/ 对应目录。
3. 容器启动失败
检查容器日志,查看具体错误信息:
cd docker
docker compose logs [服务名]
4. 数据库连接失败
确保 .env 文件中的数据库配置正确,并且MySQL容器正常运行。
5. 端口冲突
如果端口被占用,修改 .env 文件中的端口配置。
安全建议
- 修改默认密码:部署后请修改默认的数据库密码和Redis密码
- 更新SSL证书:使用有效的SSL证书,定期更新
- 限制访问:配置防火墙,限制不必要的端口访问
- 定期备份:定期备份数据库和重要数据
版本更新
当项目有新版本时,执行部署脚本即可自动更新:
./deploy.sh
脚本会自动拉取最新代码,构建新镜像,重启容器。