# FastapiAdmin 部署文档 本文档详细描述了 FastapiAdmin 项目的部署流程、环境要求、配置说明及常见问题排查方法。 ## 项目简介 FastapiAdmin 是一个基于 FastAPI 和 Vue3 的管理系统,包含后端 API、前端界面、移动端应用和文档网站。项目采用 Docker 容器化部署,便于在不同环境中快速部署和运行。 ## 项目结构 ```sh FastapiAdmin/ ├── backend/ # 后端应用代码 ├── frontend/ # 前端应用代码 ├── devops/ # 部署配置文件 │ ├── backend/ # 后端部署目录 │ ├── mysql/ # MySQL 部署目录 │ ├── nginx/ # Nginx 部署目录 │ ├── redis/ # Redis 部署目录 │ └── README.md # 部署说明文档 ├── deploy.sh # 一键部署脚本 └── docker-compose.yaml # Docker 编排文件 ``` ## 系统要求 在部署项目之前,请确保服务器满足以下要求: - **操作系统**:Linux (推荐 Ubuntu 20.04+) 或 macOS - **Docker**:20.10.0 或更高版本 - **Docker Compose**:2.0.0 或更高版本 - **Git**:2.0.0 或更高版本 - **Node.js**:16.0.0 或更高版本 - **npm/pnpm**:8.0.0 或更高版本 - **内存**:至少 4GB RAM - **磁盘空间**:至少 20GB 可用空间 ## 部署前准备 ### 1. 环境检查 首先,检查系统是否已安装必要的依赖: ```bash # 检查 Docker 版本 docker --version # 检查 Docker Compose 版本 docker compose version # 检查 Git 版本 git --version # 检查 Node.js 版本 node --version # 检查 npm 版本 npm --version # 检查 pnpm 版本 pnpm --version ``` 如果缺少任何依赖,请先安装它们。 ### 2. 克隆项目 如果尚未克隆项目代码,可以使用以下命令: ```bash git clone https://gitee.com/tao__tao/fastapiadmin.git cd fastapiadmin ``` ## 一键部署 项目提供了一键部署脚本 `deploy.sh`,可以自动完成从代码拉取到服务启动的全过程。 ### 1. 赋予脚本执行权限 ```bash chmod +x deploy.sh ``` ### 2. 执行部署脚本 ```bash ./deploy.sh ``` 部署脚本会自动执行以下步骤: - 检查系统依赖 - 停止现有容器(如果存在) - 拉取最新代码 - 构建 Docker 镜像 - 启动容器 - 显示容器状态和日志 ## 部署脚本命令详解 部署脚本支持以下命令行参数: ### 完整部署(默认) ```bash ./deploy.sh ``` 执行完整的部署流程,包括检查依赖、停止容器、更新代码、构建镜像、启动容器和显示日志。 ### 仅停止服务 ```bash ./deploy.sh --stop ``` 停止所有正在运行的项目容器。 ### 启动服务 ```bash ./deploy.sh --start ``` 启动所有服务(等同于执行完整部署流程)。 ### 查看日志 ```bash ./deploy.sh --logs # 或简写 ./deploy.sh -l ``` 显示所有容器的日志信息。 ### 查看帮助信息 ```bash ./deploy.sh --help # 或简写 ./deploy.sh -h ``` 显示脚本使用说明。 ## 部署流程详解 部署脚本的执行流程如下: 1. **权限和依赖检查** - 检查脚本执行权限 - 检查系统依赖(git、docker、node、npm、pnpm) 2. **停止现有容器** - 如果项目目录存在,停止并删除现有容器 - 如果项目目录不存在,从 Git 仓库克隆代码 3. **更新代码** - 拉取最新的代码更新 - 检测前端、移动端和文档目录是否存在 4. **构建前端(当前已注释,如需启用请取消注释 deploy.sh 中的 build_frontend 调用)** - 安装前端依赖并构建前端工程 - 安装移动端依赖并构建移动端工程 - 安装文档依赖并构建文档 5. **构建镜像和启动容器** - 构建项目所需的 Docker 镜像 - 启动所有服务容器 - 清理 72 小时前的旧镜像 6. **显示容器状态和日志** - 显示所有容器的运行状态 - 显示各服务的日志信息 ## 服务访问 部署完成后,可以通过以下地址访问各服务: - **前端管理系统**:[https://service.fastapiadmin.com/web](https://service.fastapiadmin.com/web) - **移动端应用**:[https://service.fastapiadmin.com/app](https://service.fastapiadmin.com/app) - **项目文档**:[https://service.fastapiadmin.com](https://service.fastapiadmin.com) - **API 文档**:[https://service.fastapiadmin.com/api/v1/docs](https://service.fastapiadmin.com/api/v1/docs) 默认登录信息: - **用户名**:admin - **密码**:123456 > **注意**:实际部署时,请根据服务器配置修改域名或使用 IP 地址访问。 ## 容器管理 ### 查看容器状态 ```bash docker compose ps ``` ### 查看实时日志 ```bash # 查看所有服务的实时日志 docker compose logs -f # 查看单个服务的实时日志(例如后端服务) docker compose logs -f backend ``` ### 停止服务 ```bash docker compose down ``` ### 重启服务 ```bash docker compose restart ``` ### 进入容器 ```bash # 进入后端容器 docker compose exec backend bash # 进入数据库容器 docker compose exec mysql bash ``` ## 问题排查 ### 常见问题 #### 1. 端口冲突 如果启动容器时出现端口冲突,请检查是否有其他服务占用了相同的端口,并在 docker-compose.yaml 中修改端口映射。 #### 2. 数据库连接失败 - 检查数据库容器是否正常运行 - 确认数据库配置是否正确(用户名、密码、数据库名) - 查看后端服务日志获取详细错误信息 #### 3. 前端访问后端 API 失败 - 检查 Nginx 配置是否正确 - 确认 API 路径配置是否匹配 - 查看浏览器控制台的网络请求和错误信息 ### 配置文件 以下是可能需要修改的关键配置文件: 1. **后端配置**:`backend/env/.env.prod.py` 2. **前端配置**:`frontend/vite.config.ts` 和 `frontend/.env.production` 3. **Docker 配置**:`docker-compose.yaml` 4. **Nginx 配置**:`devops/nginx/nginx.conf` ### 日志查看 遇到问题时,建议先查看相关服务的日志: ```bash # 查看后端服务日志 docker compose logs backend # 查看 Nginx 服务日志 docker compose logs nginx # 查看 MySQL 服务日志 docker compose logs mysql # 查看 Redis 服务日志 docker compose logs redis ``` ## 安全建议 1. **修改默认密码**:部署后请立即修改默认的管理员密码 2. **配置 HTTPS**:在生产环境中请配置 SSL 证书,启用 HTTPS 3. **限制访问**:根据实际需求配置防火墙规则,限制对敏感服务的访问 4. **定期更新**:定期拉取最新代码并更新部署,以获取安全补丁和新功能 ## 维护建议 1. **定期备份**:定期备份数据库和重要配置文件 2. **监控服务**:设置服务监控,及时发现并处理异常情况 3. **清理镜像**:定期清理不再使用的 Docker 镜像,释放磁盘空间 ## 联系与支持 如有任何问题或需要技术支持,请联系项目维护者。