mirror of
https://github.com/fastapiadmin/FastapiAdmin.git
synced 2026-09-21 12:52:26 +00:00
refactor: 迁移前端资源文件至web目录 feat: 新增多种图标资源 style: 统一代码风格和格式化配置 docs: 更新README和文档说明 chore: 更新依赖和配置文件 fix: 修复部分类型定义和枚举 perf: 优化路由和组件加载逻辑
164 lines
3.9 KiB
Markdown
164 lines
3.9 KiB
Markdown
# 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 (前端构建需要)
|
|
|
|
### 环境配置
|
|
|
|
1. **配置环境变量**
|
|
|
|
复制 `.env.example` 文件为 `.env`,并根据实际情况修改配置:
|
|
|
|
```bash
|
|
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端口
|
|
|
|
2. **SSL证书配置** (可选)
|
|
|
|
如果需要HTTPS,将SSL证书文件放在 `nginx/ssl/` 目录下:
|
|
- `server.key`: 私钥文件
|
|
- `server.pem`: 证书文件
|
|
|
|
## 部署流程
|
|
|
|
### 1. 执行部署脚本
|
|
|
|
在项目根目录执行部署脚本:
|
|
|
|
```bash
|
|
./deploy.sh
|
|
```
|
|
|
|
部署脚本会自动执行以下步骤:
|
|
|
|
1. 加载环境变量
|
|
2. 检查系统依赖
|
|
3. 停止现有容器
|
|
4. 更新代码
|
|
5. 构建前端(可选)
|
|
6. 构建镜像
|
|
7. 启动容器
|
|
8. 显示日志
|
|
|
|
### 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
|
|
|
|
## 日志管理
|
|
|
|
### 查看容器日志
|
|
|
|
```bash
|
|
# 查看所有容器日志
|
|
./deploy.sh logs
|
|
|
|
# 查看实时日志
|
|
cd docker
|
|
docker compose logs -f [服务名]
|
|
|
|
# 服务名:backend, nginx, mysql, redis
|
|
```
|
|
|
|
### 清理旧镜像
|
|
|
|
部署脚本会自动清理72小时前的旧镜像,以节省磁盘空间。
|
|
|
|
## 常见问题
|
|
|
|
### 1. 环境变量文件不存在
|
|
|
|
如果 `.env` 文件不存在,部署脚本会自动从 `.env.example` 创建。
|
|
|
|
### 2. 前端构建失败
|
|
|
|
如果服务器资源不足,建议在本地构建前端,然后将 `dist` 目录上传到 `docker/nginx/` 对应目录。
|
|
|
|
### 3. 容器启动失败
|
|
|
|
检查容器日志,查看具体错误信息:
|
|
|
|
```bash
|
|
cd docker
|
|
docker compose logs [服务名]
|
|
```
|
|
|
|
### 4. 数据库连接失败
|
|
|
|
确保 `.env` 文件中的数据库配置正确,并且MySQL容器正常运行。
|
|
|
|
### 5. 端口冲突
|
|
|
|
如果端口被占用,修改 `.env` 文件中的端口配置。
|
|
|
|
## 安全建议
|
|
|
|
1. **修改默认密码**:部署后请修改默认的数据库密码和Redis密码
|
|
2. **更新SSL证书**:使用有效的SSL证书,定期更新
|
|
3. **限制访问**:配置防火墙,限制不必要的端口访问
|
|
4. **定期备份**:定期备份数据库和重要数据
|
|
|
|
## 版本更新
|
|
|
|
当项目有新版本时,执行部署脚本即可自动更新:
|
|
|
|
```bash
|
|
./deploy.sh
|
|
```
|
|
|
|
脚本会自动拉取最新代码,构建新镜像,重启容器。
|