Files
ArticleReplaceBatch/docs/DEPLOYMENT_GUIDE.md

423 lines
6.4 KiB
Markdown
Raw Normal View History

2026-03-25 15:17:18 +08:00
# 部署指南
本文档提供了ArticleReplaceBatch项目的部署指南。
---
## 目录
- [环境要求](#环境要求)
- [本地部署](#本地部署)
- [服务器部署](#服务器部署)
- [容器化部署](#容器化部署)
- [常见问题](#常见问题)
---
## 环境要求
### 系统要求
- **操作系统**: Windows 10+, Linux (Ubuntu 20.04+), macOS 10.15+
- **Python版本**: 3.10 或更高版本
- **内存**: 最低 2GB推荐 4GB+
- **磁盘空间**: 最低 1GB
### 依赖要求
`requirements.txt` 文件。
---
## 本地部署
### 1. 获取代码
```bash
git clone <repository-url>
cd ArticleReplaceBatch
```
### 2. 创建虚拟环境
```bash
python -m venv venv
# Windows
venv\Scripts\activate
# Linux/Mac
source venv/bin/activate
```
### 3. 安装依赖
```bash
pip install -r requirements.txt
```
### 4. 配置环境
```bash
cp .env.example .env
# 编辑 .env 文件,填写必要的配置
```
### 5. 初始化配置
```bash
python -c "from config import CONFIG; print('配置初始化完成')"
```
### 6. 运行应用
```bash
# GUI模式
python ArticleReplace.py
# 命令行模式
python cli.py --help
```
---
## 服务器部署
### 1. 安装系统依赖
**Ubuntu/Debian:**
```bash
sudo apt update
sudo apt install -y python3 python3-venv python3-pip
sudo apt install -y xvfb # 无GUI运行需要
```
**CentOS/RHEL:**
```bash
sudo yum install -y python3 python3-venv python3-pip
sudo yum install -y xorg-x11-server-Xvfb
```
### 2. 创建部署目录
```bash
sudo mkdir -p /opt/article-replace
sudo chown $USER:$USER /opt/article-replace
cd /opt/article-replace
```
### 3. 部署应用
```bash
# 复制代码到部署目录
git clone <repository-url> .
git checkout main
# 创建虚拟环境
python3 -m venv venv
source venv/bin/activate
# 安装依赖
pip install -r requirements.txt
```
### 4. 配置环境
```bash
cp .env.example .env
# 编辑 .env 文件
nano .env
```
### 5. 创建服务文件
**创建 systemd 服务文件:**
```bash
sudo nano /etc/systemd/system/article-replace.service
```
**服务文件内容:**
```ini
[Unit]
Description=Article Replace Batch Service
After=network.target
[Service]
Type=simple
User=www-data
WorkingDirectory=/opt/article-replace
Environment="PATH=/opt/article-replace/venv/bin"
ExecStart=/opt/article-replace/venv/bin/python cli.py --excel /path/to/articles.xlsx --threads 3
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
```
### 6. 启动服务
```bash
# 重新加载systemd
sudo systemctl daemon-reload
# 启动服务
sudo systemctl start article-replace
# 设置开机自启
sudo systemctl enable article-replace
# 查看状态
sudo systemctl status article-replace
# 查看日志
sudo journalctl -u article-replace -f
```
---
## 容器化部署
### 1. 创建 Dockerfile
```dockerfile
FROM python:3.11-slim
# 设置工作目录
WORKDIR /app
# 安装系统依赖
RUN apt-get update && apt-get install -y \
xvfb \
&& rm -rf /var/lib/apt/lists/*
# 复制依赖文件
COPY requirements.txt .
# 安装Python依赖
RUN pip install --no-cache-dir -r requirements.txt
# 复制应用代码
COPY . .
# 创建必要目录
RUN mkdir -p logs backups articles picture
# 暴露端口(如果需要)
# EXPOSE 8000
# 设置环境变量
ENV PYTHONUNBUFFERED=1
# 默认命令
CMD ["python", "cli.py", "--help"]
```
### 2. 创建 .dockerignore
```
.git
.gitignore
__pycache__
*.pyc
*.pyo
*.pyd
venv
.env
logs/
backups/
archive/
build/
dist/
*.spec
.DS_Store
```
### 3. 构建镜像
```bash
docker build -t article-replace:latest .
```
### 4. 运行容器
```bash
# 交互式运行
docker run -it --rm \
-v $(pwd)/data:/app/data \
-v $(pwd)/logs:/app/logs \
article-replace:latest \
python cli.py --excel /app/data/articles.xlsx --threads 3
# 后台运行
docker run -d \
--name article-replace \
-v $(pwd)/data:/app/data \
-v $(pwd)/logs:/app/logs \
article-replace:latest \
python cli.py --excel /app/data/articles.xlsx --threads 3
# 查看日志
docker logs -f article-replace
```
### 5. 使用 Docker Compose
**创建 docker-compose.yml:**
```yaml
version: '3.8'
services:
article-replace:
build: .
container_name: article-replace
volumes:
- ./data:/app/data
- ./logs:/app/logs
- ./config:/app/config
environment:
- PYTHONUNBUFFERED=1
command: python cli.py --excel /app/data/articles.xlsx --threads 3
restart: unless-stopped
```
**启动服务:**
```bash
docker-compose up -d
# 查看日志
docker-compose logs -f
# 停止服务
docker-compose down
```
---
## 监控和维护
### 日志管理
```bash
# 查看应用日志
tail -f logs/article_replace.log
# 清理旧日志
find logs/ -name "*.log" -mtime +7 -delete
```
### 备份管理
```bash
# 备份配置
cp config.ini backups/config_$(date +%Y%m%d).ini
# 备份数据
tar -czf backups/data_$(date +%Y%m%d).tar.gz articles/ picture/
```
### 性能监控
```bash
# 查看进程状态
ps aux | grep ArticleReplace
# 查看内存使用
top -p $(pgrep -f ArticleReplace)
```
---
## 安全建议
1. **环境变量**: 不要将敏感信息提交到版本控制系统
2. **文件权限**: 确保 `.env` 文件权限设置为 600
3. **防火墙**: 如果暴露端口,配置防火墙规则
4. **更新**: 定期更新依赖包以修复安全漏洞
---
## 常见问题
### Q: 无GUI环境下如何运行
A: 使用命令行模式或 xvfb。
```bash
# 使用命令行模式
python cli.py --excel articles.xlsx --threads 3
# 或使用 xvfb (Linux)
xvfb-run -a python ArticleReplace.py
```
### Q: 如何处理依赖冲突?
A: 使用虚拟环境隔离依赖。
```bash
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
```
### Q: 如何设置开机自启?
A: 使用 systemd 服务Linux或任务计划程序Windows
### Q: 内存不足怎么办?
A: 增加系统内存或减少并发线程数。
```bash
# 减少线程数
python cli.py --excel articles.xlsx --threads 1
```
---
## 升级指南
### 1. 备份数据
```bash
# 备份配置和数据
cp config.ini backups/
tar -czf backups/data_backup_$(date +%Y%m%d).tar.gz articles/ picture/
```
### 2. 获取新版本
```bash
git pull origin main
```
### 3. 更新依赖
```bash
pip install -r requirements.txt --upgrade
```
### 4. 验证升级
```bash
python dev.py test
```
### 5. 重启服务
```bash
sudo systemctl restart article-replace
# 或
docker-compose restart
```
---
**文档版本**: v1.0
**最后更新**: 2026-03-07
**维护者**: opencode