chore(repo): clean template leftovers and refresh README for current deployment
This commit is contained in:
129
README.md
129
README.md
@@ -4,6 +4,15 @@
|
||||
|
||||
---
|
||||
|
||||
## 近期更新(2026-02)
|
||||
|
||||
- Socket.IO 运行模式已切换为 `eventlet`(生产优先)。
|
||||
- 管理端前端增加请求缓存/去重,降低报表页重复请求压力。
|
||||
- 默认 Docker 端口映射更新为 `51232 -> 51233`。
|
||||
- 已清理仓库中的历史清理报告与明显冗余文件。
|
||||
|
||||
---
|
||||
|
||||
## 项目简介
|
||||
|
||||
本项目是一个 **Docker 容器化应用**,使用 Flask + Vue 3 + Requests + wkhtmltoimage + SQLite 构建,提供:
|
||||
@@ -36,7 +45,7 @@
|
||||
|
||||
## 技术栈
|
||||
|
||||
- **后端**: Python 3.11+, Flask, Flask-SocketIO
|
||||
- **后端**: Python 3.10+, Flask, Flask-SocketIO
|
||||
- **前端**: Vue 3 + Vite + Element Plus (SPA)
|
||||
- **数据库**: SQLite + 连接池
|
||||
- **自动化**: Requests + BeautifulSoup (浏览)
|
||||
@@ -92,7 +101,7 @@ zsglpt/
|
||||
├── static/ # 前端构建产物
|
||||
│ ├── app/ # 用户端 SPA 资源
|
||||
│ └── admin/ # 管理端 SPA 资源
|
||||
└── tests/ # 测试用例
|
||||
└── scripts/ # 维护脚本(例如健康监控)
|
||||
```
|
||||
|
||||
---
|
||||
@@ -134,7 +143,7 @@ ssh -i /path/to/key root@your-server-ip
|
||||
在项目根目录创建 `.env` 文件:
|
||||
|
||||
```bash
|
||||
cd /www/wwwroot/zsgpt2
|
||||
cd /www/wwwroot/zsglpt
|
||||
|
||||
# 生成随机密钥
|
||||
python3 -c "from cryptography.fernet import Fernet; print(f'ENCRYPTION_KEY_RAW={Fernet.generate_key().decode()}')" > .env
|
||||
@@ -149,7 +158,7 @@ chmod 600 .env
|
||||
|
||||
```bash
|
||||
# 从旧服务器复制 .env 文件
|
||||
scp root@old-server:/www/wwwroot/zsgpt2/.env /www/wwwroot/zsgpt2/
|
||||
scp root@old-server:/www/wwwroot/zsglpt/.env /www/wwwroot/zsglpt/
|
||||
```
|
||||
|
||||
#### ⚠️ 重要警告
|
||||
@@ -165,16 +174,16 @@ scp root@old-server:/www/wwwroot/zsgpt2/.env /www/wwwroot/zsgpt2/
|
||||
|
||||
### 步骤1: 上传项目文件
|
||||
|
||||
将整个 `zsgpt2` 文件夹上传到服务器的 `/www/wwwroot/` 目录:
|
||||
将整个 `zsglpt` 文件夹上传到服务器的 `/www/wwwroot/` 目录:
|
||||
|
||||
```bash
|
||||
# 在本地执行(Windows PowerShell 或 Git Bash)
|
||||
scp -r C:\Users\Administrator\Desktop\zsgpt2 root@your-server-ip:/www/wwwroot/
|
||||
scp -r C:\Users\Administrator\Desktop\zsglpt root@your-server-ip:/www/wwwroot/
|
||||
|
||||
# 或者使用 FileZilla、WinSCP 等工具上传
|
||||
```
|
||||
|
||||
上传后,服务器上的路径应该是:`/www/wwwroot/zsgpt2/`
|
||||
上传后,服务器上的路径应该是:`/www/wwwroot/zsglpt/`
|
||||
|
||||
### 步骤2: SSH登录服务器
|
||||
|
||||
@@ -185,7 +194,7 @@ ssh root@your-server-ip
|
||||
### 步骤3: 进入项目目录
|
||||
|
||||
```bash
|
||||
cd /www/wwwroot/zsgpt2
|
||||
cd /www/wwwroot/zsglpt
|
||||
```
|
||||
|
||||
### 步骤4: 创建必要的目录
|
||||
@@ -202,7 +211,7 @@ chmod 777 data logs 截图
|
||||
docker build -t knowledge-automation .
|
||||
|
||||
# 启动容器
|
||||
docker-compose up -d
|
||||
docker compose up -d
|
||||
|
||||
# 查看容器状态
|
||||
docker ps | grep knowledge-automation
|
||||
@@ -217,8 +226,8 @@ docker logs -f knowledge-automation-multiuser
|
||||
如果看到以下信息,说明启动成功:
|
||||
```
|
||||
服务器启动中...
|
||||
用户访问地址: http://0.0.0.0:5000
|
||||
后台管理地址: http://0.0.0.0:5000/yuyx
|
||||
用户访问地址: http://0.0.0.0:51233
|
||||
后台管理地址: http://0.0.0.0:51233/yuyx
|
||||
```
|
||||
|
||||
---
|
||||
@@ -252,7 +261,7 @@ server {
|
||||
|
||||
# 反向代理
|
||||
location / {
|
||||
proxy_pass http://127.0.0.1:5001;
|
||||
proxy_pass http://127.0.0.1:51232;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
@@ -294,15 +303,15 @@ certbot renew --dry-run
|
||||
|
||||
### 用户端
|
||||
|
||||
- **HTTP**: `http://your-server-ip:5001`
|
||||
- **HTTP**: `http://your-server-ip:51232`
|
||||
- **域名**: `http://your-domain.com` (配置Nginx后)
|
||||
- **HTTPS**: `https://your-domain.com` (配置SSL后)
|
||||
|
||||
### 后台管理
|
||||
|
||||
- **路径**: `/yuyx`
|
||||
- **默认账号**: `admin`
|
||||
- **默认密码**: `admin`
|
||||
- **后台地址**: `/yuyx`
|
||||
- **管理员账号**: 以数据库现有账号为准(首次运行默认创建 `admin`)
|
||||
- **管理员密码**: 首次运行随机生成,请查看容器启动日志
|
||||
|
||||
**首次登录后请立即修改密码!**
|
||||
|
||||
@@ -360,7 +369,7 @@ docker logs -f knowledge-automation-multiuser
|
||||
docker logs --tail 100 knowledge-automation-multiuser
|
||||
|
||||
# 查看应用日志文件
|
||||
tail -f /www/wwwroot/zsgpt2/logs/app.log
|
||||
tail -f /www/wwwroot/zsglpt/logs/app.log
|
||||
```
|
||||
|
||||
### 进入容器
|
||||
@@ -378,14 +387,14 @@ docker exec knowledge-automation-multiuser python -c "print('Hello')"
|
||||
如果修改了代码,需要重新构建:
|
||||
|
||||
```bash
|
||||
cd /www/wwwroot/zsgpt2
|
||||
cd /www/wwwroot/zsglpt
|
||||
|
||||
# 停止并删除旧容器
|
||||
docker-compose down
|
||||
docker compose down
|
||||
|
||||
# 重新构建并启动
|
||||
docker-compose build
|
||||
docker-compose up -d
|
||||
docker compose build
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
---
|
||||
@@ -398,13 +407,13 @@ docker-compose up -d
|
||||
cd /www/wwwroot
|
||||
|
||||
# 备份整个项目
|
||||
tar -czf zsgpt2_backup_$(date +%Y%m%d).tar.gz zsgpt2/
|
||||
tar -czf zsglpt_backup_$(date +%Y%m%d).tar.gz zsglpt/
|
||||
|
||||
# 仅备份数据库
|
||||
cp /www/wwwroot/zsgpt2/data/app_data.db /backup/app_data_$(date +%Y%m%d).db
|
||||
cp /www/wwwroot/zsglpt/data/app_data.db /backup/app_data_$(date +%Y%m%d).db
|
||||
|
||||
# 备份截图
|
||||
tar -czf screenshots_$(date +%Y%m%d).tar.gz /www/wwwroot/zsgpt2/截图/
|
||||
tar -czf screenshots_$(date +%Y%m%d).tar.gz /www/wwwroot/zsglpt/截图/
|
||||
```
|
||||
|
||||
### 2. 恢复数据
|
||||
@@ -415,10 +424,10 @@ docker stop knowledge-automation-multiuser
|
||||
|
||||
# 恢复整个项目
|
||||
cd /www/wwwroot
|
||||
tar -xzf zsgpt2_backup_20251027.tar.gz
|
||||
tar -xzf zsglpt_backup_20251027.tar.gz
|
||||
|
||||
# 恢复数据库
|
||||
cp /backup/app_data_20251027.db /www/wwwroot/zsgpt2/data/app_data.db
|
||||
cp /backup/app_data_20251027.db /www/wwwroot/zsglpt/data/app_data.db
|
||||
|
||||
# 重启容器
|
||||
docker start knowledge-automation-multiuser
|
||||
@@ -436,7 +445,7 @@ crontab -e
|
||||
|
||||
```bash
|
||||
# 每天凌晨3点备份
|
||||
0 3 * * * tar -czf /backup/zsgpt2_$(date +\%Y\%m\%d).tar.gz /www/wwwroot/zsgpt2/data
|
||||
0 3 * * * tar -czf /backup/zsglpt_$(date +\%Y\%m\%d).tar.gz /www/wwwroot/zsglpt/data
|
||||
```
|
||||
|
||||
---
|
||||
@@ -445,19 +454,19 @@ crontab -e
|
||||
|
||||
### 1. 容器启动失败
|
||||
|
||||
**问题**: `docker-compose up -d` 失败
|
||||
**问题**: `docker compose up -d` 失败
|
||||
|
||||
**解决方案**:
|
||||
```bash
|
||||
# 查看详细错误
|
||||
docker-compose logs
|
||||
docker compose logs
|
||||
|
||||
# 检查端口占用
|
||||
netstat -tlnp | grep 5001
|
||||
netstat -tlnp | grep 51232
|
||||
|
||||
# 重新构建
|
||||
docker-compose build --no-cache
|
||||
docker-compose up -d
|
||||
docker compose build --no-cache
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
### 2. 502 Bad Gateway
|
||||
@@ -470,10 +479,10 @@ docker-compose up -d
|
||||
docker ps | grep knowledge-automation
|
||||
|
||||
# 检查端口是否监听
|
||||
netstat -tlnp | grep 5001
|
||||
netstat -tlnp | grep 51232
|
||||
|
||||
# 测试直接访问
|
||||
curl http://127.0.0.1:5001
|
||||
curl http://127.0.0.1:51232
|
||||
|
||||
# 检查Nginx配置
|
||||
nginx -t
|
||||
@@ -489,7 +498,7 @@ nginx -t
|
||||
docker restart knowledge-automation-multiuser
|
||||
|
||||
# 如果问题持续,优化数据库
|
||||
cd /www/wwwroot/zsgpt2
|
||||
cd /www/wwwroot/zsglpt
|
||||
cp data/app_data.db data/app_data.db.backup
|
||||
sqlite3 data/app_data.db "VACUUM;"
|
||||
```
|
||||
@@ -512,8 +521,8 @@ services:
|
||||
然后重启:
|
||||
|
||||
```bash
|
||||
docker-compose down
|
||||
docker-compose up -d
|
||||
docker compose down
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
### 5. 截图工具未安装
|
||||
@@ -555,13 +564,13 @@ wkhtmltoimage --version
|
||||
|
||||
```bash
|
||||
# 清理7天前的截图
|
||||
find /www/wwwroot/zsgpt2/截图 -name "*.jpg" -mtime +7 -delete
|
||||
find /www/wwwroot/zsglpt/截图 -name "*.jpg" -mtime +7 -delete
|
||||
|
||||
# 清理旧日志
|
||||
find /www/wwwroot/zsgpt2/logs -name "*.log" -mtime +30 -delete
|
||||
find /www/wwwroot/zsglpt/logs -name "*.log" -mtime +30 -delete
|
||||
|
||||
# 优化数据库
|
||||
sqlite3 /www/wwwroot/zsgpt2/data/app_data.db "VACUUM;"
|
||||
sqlite3 /www/wwwroot/zsglpt/data/app_data.db "VACUUM;"
|
||||
```
|
||||
|
||||
---
|
||||
@@ -582,9 +591,9 @@ firewall-cmd --permanent --add-port=80/tcp
|
||||
firewall-cmd --permanent --add-port=443/tcp
|
||||
firewall-cmd --reload
|
||||
|
||||
# 禁止直接访问5001端口(仅Nginx可访问)
|
||||
iptables -A INPUT -p tcp --dport 5001 -s 127.0.0.1 -j ACCEPT
|
||||
iptables -A INPUT -p tcp --dport 5001 -j DROP
|
||||
# 禁止直接访问51232端口(仅Nginx可访问)
|
||||
iptables -A INPUT -p tcp --dport 51232 -s 127.0.0.1 -j ACCEPT
|
||||
iptables -A INPUT -p tcp --dport 51232 -j DROP
|
||||
```
|
||||
|
||||
### 3. 启用HTTPS
|
||||
@@ -625,13 +634,13 @@ systemctl restart sshd
|
||||
|
||||
```bash
|
||||
# 统计今日任务数
|
||||
grep "浏览完成" /www/wwwroot/zsgpt2/logs/app.log | grep $(date +%Y-%m-%d) | wc -l
|
||||
grep "浏览完成" /www/wwwroot/zsglpt/logs/app.log | grep $(date +%Y-%m-%d) | wc -l
|
||||
|
||||
# 查看错误日志
|
||||
grep "ERROR" /www/wwwroot/zsgpt2/logs/app.log | tail -20
|
||||
grep "ERROR" /www/wwwroot/zsglpt/logs/app.log | tail -20
|
||||
|
||||
# 查看最近的登录
|
||||
grep "登录成功" /www/wwwroot/zsgpt2/logs/app.log | tail -10
|
||||
grep "登录成功" /www/wwwroot/zsglpt/logs/app.log | tail -10
|
||||
```
|
||||
|
||||
### 3. 数据库维护
|
||||
@@ -655,7 +664,7 @@ EOF
|
||||
|
||||
```bash
|
||||
# 停止容器
|
||||
docker-compose down
|
||||
docker compose down
|
||||
|
||||
# 备份数据
|
||||
cp -r data data.backup
|
||||
@@ -665,8 +674,8 @@ cp -r 截图 截图.backup
|
||||
# 使用 scp 或 FTP 工具上传
|
||||
|
||||
# 重新构建并启动
|
||||
docker-compose build
|
||||
docker-compose up -d
|
||||
docker compose build
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
### 2. 数据库迁移
|
||||
@@ -685,8 +694,8 @@ docker logs knowledge-automation-multiuser | grep "数据库"
|
||||
|
||||
| 端口 | 说明 | 映射 |
|
||||
|------|------|------|
|
||||
| 5000 | 容器内应用端口 | - |
|
||||
| 5001 | 主机映射端口 | 容器5000 → 主机5001 |
|
||||
| 51233 | 容器内应用端口 | - |
|
||||
| 51232 | 主机映射端口 | 容器51233 → 主机51232 |
|
||||
| 80 | HTTP端口 | Nginx |
|
||||
| 443 | HTTPS端口 | Nginx |
|
||||
|
||||
@@ -737,7 +746,7 @@ docker logs knowledge-automation-multiuser | grep "数据库"
|
||||
遇到问题时,请按以下顺序检查:
|
||||
|
||||
1. **容器日志**: `docker logs knowledge-automation-multiuser`
|
||||
2. **应用日志**: `cat /www/wwwroot/zsgpt2/logs/app.log`
|
||||
2. **应用日志**: `cat /www/wwwroot/zsglpt/logs/app.log`
|
||||
3. **Nginx日志**: `cat /var/log/nginx/zsgpt_error.log`
|
||||
4. **系统资源**: `docker stats`, `htop`, `df -h`
|
||||
|
||||
@@ -749,8 +758,8 @@ docker logs knowledge-automation-multiuser | grep "数据库"
|
||||
|
||||
---
|
||||
|
||||
**文档版本**: v2.0
|
||||
**更新日期**: 2026-01-08
|
||||
**文档版本**: v2.1
|
||||
**更新日期**: 2026-02-07
|
||||
**适用版本**: Docker多用户版 + Vue SPA
|
||||
|
||||
---
|
||||
@@ -759,26 +768,26 @@ docker logs knowledge-automation-multiuser | grep "数据库"
|
||||
|
||||
```bash
|
||||
# 1. 上传文件
|
||||
scp -r zsgpt2 root@your-ip:/www/wwwroot/
|
||||
scp -r zsglpt root@your-ip:/www/wwwroot/
|
||||
|
||||
# 2. SSH登录
|
||||
ssh root@your-ip
|
||||
|
||||
# 3. 进入目录并创建必要目录
|
||||
cd /www/wwwroot/zsgpt2
|
||||
cd /www/wwwroot/zsglpt
|
||||
mkdir -p data logs 截图
|
||||
chmod 777 data logs 截图
|
||||
|
||||
# 4. 启动容器
|
||||
docker-compose up -d
|
||||
docker compose up -d
|
||||
|
||||
# 5. 查看日志
|
||||
docker logs -f knowledge-automation-multiuser
|
||||
|
||||
# 6. 访问系统
|
||||
# 浏览器打开: http://your-ip:5001
|
||||
# 后台管理: http://your-ip:5001/yuyx
|
||||
# 默认账号: admin / admin
|
||||
# 浏览器打开: http://your-ip:51232
|
||||
# 后台管理: http://your-ip:51232/yuyx
|
||||
# 默认管理员账号见容器启动日志(首次运行会生成随机密码)
|
||||
```
|
||||
|
||||
完成!🎉
|
||||
|
||||
Reference in New Issue
Block a user