Files
chan.py/web/DEPLOY_GUIDE.md
T
2025-06-10 01:16:09 +08:00

212 lines
4.4 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.
# 缠论Web应用部署指南
本指南提供在服务器上直接部署缠论Web应用的步骤,无需使用Nginx等反向代理。
## 注意:Ubuntu 22.04+系统的特殊处理
最新版本的Ubuntu系统对Python包管理有额外限制,不允许直接用pip在系统级别安装包。因此,我们提供了使用虚拟环境的部署方法。
## 方法一:使用虚拟环境部署脚本(适用于Ubuntu 22.04+,推荐)
这是最适合现代Ubuntu系统的方法:
1. 登录到服务器
2. 进入应用目录:
```
cd /path/to/user_data/Chan/web
```
3. 给脚本添加执行权限:
```
chmod +x deploy_venv.sh stop_venv.sh status_venv.sh
```
4. 启动服务:
```
./deploy_venv.sh
```
5. 检查服务状态:
```
./status_venv.sh
```
6. 如需停止服务:
```
./stop_venv.sh
```
## 方法二:标准部署脚本(适用于旧版Ubuntu或其他系统)
如果您的系统允许直接安装Python包:
1. 登录到服务器
2. 进入应用目录:
```
cd /path/to/user_data/Chan/web
```
3. 给脚本添加执行权限:
```
chmod +x deploy.sh stop.sh status.sh
```
4. 启动服务:
```
./deploy.sh
```
5. 检查服务状态:
```
./status.sh
```
6. 如需停止服务:
```
./stop.sh
```
## 方法三:系统服务(systemd)
如果希望应用随系统启动自动运行,可以设置systemd服务:
### 使用虚拟环境的systemd服务(推荐)
1. 编辑服务文件中的用户名、用户组和路径:
```
vi chanlun-web-venv.service
```
修改以下行:
- `User=<用户名>` - 改为您的用户名
- `Group=<用户组>` - 改为您的用户组
- 所有包含`/path/to/`的路径
2. 将服务文件复制到systemd目录:
```
sudo cp chanlun-web-venv.service /etc/systemd/system/
```
3. 重新加载systemd配置:
```
sudo systemctl daemon-reload
```
4. 启用并启动服务:
```
sudo systemctl enable chanlun-web-venv
sudo systemctl start chanlun-web-venv
```
5. 检查服务状态:
```
sudo systemctl status chanlun-web-venv
```
### 使用系统Python的systemd服务(仅适用于旧版系统)
1. 编辑服务文件:
```
vi chanlun-web.service
```
2. 按照上述相同的步骤配置和启动服务。
## 方法四:手动启动
如果只需要临时运行,可以手动启动:
### 使用虚拟环境(推荐)
1. 创建并激活虚拟环境:
```
python3 -m venv venv
source venv/bin/activate
```
2. 安装依赖:
```
pip install -r requirements.txt
```
3. 使用gunicorn启动(前台运行):
```
venv/bin/gunicorn -w 4 -b 0.0.0.0:8123 app:app
```
或后台运行:
```
venv/bin/gunicorn -w 4 -b 0.0.0.0:8123 --access-logfile logs/access.log --error-logfile logs/error.log --daemon app:app
```
### 直接使用系统Python(仅适用于旧版系统)
1. 安装依赖:
```
pip install -r requirements.txt
```
2. 使用gunicorn启动(前台运行):
```
gunicorn -w 4 -b 0.0.0.0:8123 app:app
```
## 防火墙设置
请确保服务器防火墙开放了8123端口:
```
# 对于使用ufw的系统(如Ubuntu
sudo ufw allow 8123/tcp
# 对于使用firewalld的系统(如CentOS
sudo firewall-cmd --permanent --add-port=8123/tcp
sudo firewall-cmd --reload
```
## 访问应用
部署完成后,可以通过以下URL访问应用:
```
http://服务器IP:8123
```
## 可选:使用screen运行
如果SSH连接可能不稳定,可以使用screen在后台会话中运行:
### 使用虚拟环境的screen会话(推荐)
```
screen -S chanlun-web
cd /path/to/user_data/Chan/web
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python app.py
```
然后按下`Ctrl+A`然后按`D`来分离会话。要重新连接会话:
```
screen -r chanlun-web
```
## 故障排除
1. 如果服务不能启动,检查日志:
```
cat logs/error.log
```
2. 确保安装了所有依赖:
```
# 在虚拟环境中
source venv/bin/activate
pip install -r requirements.txt
```
3. 检查端口是否被占用:
```
netstat -tulpn | grep 8123
```
4. 如果gunicorn无法找到,确保使用完整路径:
```
# 对于虚拟环境
./venv/bin/gunicorn -w 4 -b 0.0.0.0:8123 app:app
```
5. 如果出现"externally-managed-environment"错误,这表明您正在使用最新的Ubuntu系统,必须使用虚拟环境方法。