Files
algorithm/RUNNING.md
2026-02-08 14:42:58 +08:00

213 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 智能算法展示平台 - 运行指南
## 系统要求
- Docker 和 Docker Compose
- 或者 Python 3.8+ 和 Node.js 18+
## 部署选项
### 选项1Docker Compose 部署(推荐)
#### 完整部署(适用于网络良好环境)
```bash
# 进入部署目录
cd deploy
# 运行部署脚本
./deploy.sh
```
#### 网络受限环境部署
```bash
# 手动拉取镜像
docker pull postgres:14-alpine
docker pull redis:7-alpine
docker pull minio/minio:latest
docker pull python:3.9-slim
docker pull node:18-alpine
# 使用预拉取镜像的Compose文件
docker-compose -f compose-without-build.yml up -d
```
### 选项2本地开发模式
#### 后端服务
```bash
# 进入后端目录
cd backend
# 安装依赖
pip install -r requirements.txt
# 启动服务
uvicorn app.main:app --reload
```
#### 前端服务
```bash
# 进入前端目录
cd frontend
# 安装依赖
npm install
# 启动开发服务器
npm run dev
```
## 服务地址
部署完成后,可通过以下地址访问服务:
- **前端应用**: http://localhost:3000
- **后端API**: http://localhost:8000
- **API文档**: http://localhost:8000/docs
- **MinIO控制台**: http://localhost:9001 (admin/minioadmin)
- **PostgreSQL**: localhost:5432
- **Redis**: localhost:6379
## 环境配置
### Docker环境变量
创建 `.env` 文件:
```bash
# 在 deploy 目录下创建 .env 文件
OPENAI_API_KEY=your_openai_api_key_here
SECRET_KEY=your_secret_key_here
```
### 本地开发环境变量
在本地开发时,可以创建 `.env` 文件:
```bash
# backend/.env
DATABASE_URL=postgresql://admin:password@localhost:5432/algorithm_db
REDIS_URL=redis://localhost:6379/0
MINIO_ENDPOINT=localhost:9000
MINIO_ACCESS_KEY=minioadmin
MINIO_SECRET_KEY=minioadmin
MINIO_BUCKET_NAME=algorithm-data
MINIO_SECURE=false
OPENAI_API_KEY=your_openai_api_key_here
SECRET_KEY=your_secret_key_here
ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=30
```
```bash
# frontend/.env
VITE_API_BASE_URL=http://localhost:8000/api
```
## 验证部署
### 检查服务状态
```bash
# Docker Compose 环境
docker-compose -f docker-compose-full.yml ps
# 检查特定服务日志
docker-compose -f docker-compose-full.yml logs backend
docker-compose -f docker-compose-full.yml logs frontend
```
### API测试
```bash
# 测试健康检查
curl http://localhost:8000/health
# 测试算法API
curl http://localhost:8000/api/v1/algorithms
# 测试API文档
open http://localhost:8000/docs
```
## 常用命令
### Docker Compose 管理
```bash
# 启动所有服务
docker-compose -f docker-compose-full.yml up -d
# 停止所有服务
docker-compose -f docker-compose-full.yml down
# 重建并启动服务
docker-compose -f docker-compose-full.yml up -d --build
# 查看服务日志
docker-compose -f docker-compose-full.yml logs -f
# 重启特定服务
docker-compose -f docker-compose-full.yml restart backend
```
### 本地开发
```bash
# 后端开发
cd backend
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
# 前端开发
cd frontend
npm run dev -- --host 0.0.0.0 --port 3000
```
## 故障排除
如果遇到问题,请参考 [TROUBLESHOOTING.md](TROUBLESHOOTING.md) 文档。
## 清理部署
```bash
# 停止并删除所有容器
docker-compose -f docker-compose-full.yml down
# 删除卷(会清除所有数据)
docker-compose -f docker-compose-full.yml down -v
# 清理未使用的Docker资源
docker system prune -a
```
## 性能调优
### Docker资源限制
可以在 `docker-compose.yml` 中添加资源限制:
```yaml
services:
backend:
# ... 其他配置
deploy:
resources:
limits:
cpus: '1.0'
memory: 2G
reservations:
cpus: '0.5'
memory: 1G
```
### 环境特定配置
根据部署环境调整配置:
- **开发环境**: 使用较低的资源限制,启用热重载
- **测试环境**: 适度的资源配置,禁用不必要的日志
- **生产环境**: 充足的资源,启用监控和日志聚合