162 lines
3.5 KiB
Markdown
Executable File
162 lines
3.5 KiB
Markdown
Executable File
# 4AN项目部署指南
|
|
|
|
## 环境变量配置
|
|
|
|
配置文件`app/config.py`已更新为支持环境变量。所有配置项可通过环境变量设置,包括:
|
|
|
|
- `SECRET_KEY`: 应用密钥
|
|
- `DATABASE_URI`: 数据库连接URI
|
|
- `LZMX_WEBHOOK_URL`: 临猪消息Webhook
|
|
- `UPLOAD_FOLDER`: 文件上传目录
|
|
- `KEY110_DB_HOST`: 1key110数据库主机
|
|
- `KEY110_DB_USER`: 1key110数据库用户
|
|
- `KEY110_DB_PASSWORD`: 1key110数据库密码
|
|
- `KEY110_DB_DATABASE`: 1key110数据库名称
|
|
|
|
## 使用Supervisor管理项目
|
|
|
|
### 安装依赖
|
|
|
|
项目需要安装python-dotenv包以支持环境变量:
|
|
|
|
```bash
|
|
/mnt/nfs/.venv/bin/pip install python-dotenv
|
|
```
|
|
|
|
### 环境变量文件
|
|
|
|
我们已创建环境变量文件 `/opt/1panel/docker/compose/4an/4an.env`,其中包含所有配置参数:
|
|
|
|
```
|
|
# 应用密钥
|
|
SECRET_KEY=
|
|
|
|
# 数据库连接
|
|
DATABASE_URI=mysql+pymysql://4an:GtbJp6Ai5azntnTB@10.10.10.253/4an
|
|
|
|
# 临猪消息Webhook
|
|
LZMX_WEBHOOK_URL=http://imtwo.zdxlz.com/im-external/v1/webhook/send?key=ef1dc605827f425e96491ce5725b5274
|
|
|
|
# 文件上传目录
|
|
UPLOAD_FOLDER=static/uploads
|
|
|
|
# 1key110数据库配置
|
|
KEY110_DB_HOST=10.10.10.253
|
|
KEY110_DB_USER=1key110
|
|
KEY110_DB_PASSWORD=KzdKtf7KfkXe7iCN
|
|
KEY110_DB_DATABASE=1key110
|
|
```
|
|
|
|
在启动应用前需要加载这些环境变量:
|
|
|
|
```bash
|
|
# 加载环境变量文件
|
|
export $(cat /opt/1panel/docker/compose/4an/4an.env | grep -v '^#' | xargs)
|
|
```
|
|
|
|
### 配置Supervisor
|
|
|
|
1. 确保修改app/config.py使其支持环境变量后,再使用Supervisor管理应用
|
|
|
|
2. 将`4an_supervisor.conf`文件复制到Supervisor配置目录:
|
|
|
|
```bash
|
|
sudo cp 4an_supervisor.conf /etc/supervisor/conf.d/
|
|
```
|
|
|
|
3. 在配置文件目录中创建一个启动脚本,用于加载环境变量并启动应用:
|
|
|
|
```bash
|
|
sudo nano /opt/1panel/docker/compose/4an/start_with_env.sh
|
|
```
|
|
|
|
脚本内容:
|
|
|
|
```bash
|
|
#!/bin/bash
|
|
# 加载环境变量
|
|
export $(cat /opt/1panel/docker/compose/4an/4an.env | grep -v '^#' | xargs)
|
|
|
|
# 启动uwsgi
|
|
exec /mnt/nfs/.venv/bin/uwsgi --ini /opt/1panel/docker/compose/4an/app/uwsgi.ini
|
|
```
|
|
|
|
设置脚本权限:
|
|
|
|
```bash
|
|
sudo chmod +x /opt/1panel/docker/compose/4an/start_with_env.sh
|
|
```
|
|
|
|
4. 修改Supervisor配置使用该脚本:
|
|
|
|
```bash
|
|
sudo nano /etc/supervisor/conf.d/4an_supervisor.conf
|
|
```
|
|
|
|
将command行修改为:
|
|
|
|
```
|
|
command=/opt/1panel/docker/compose/4an/start_with_env.sh
|
|
```
|
|
|
|
5. 更新Supervisor配置:
|
|
|
|
```bash
|
|
sudo supervisorctl reread
|
|
sudo supervisorctl update
|
|
```
|
|
|
|
6. 管理4an服务:
|
|
|
|
```bash
|
|
# 启动服务
|
|
sudo supervisorctl start 4an
|
|
|
|
# 停止服务
|
|
sudo supervisorctl stop 4an
|
|
|
|
# 重启服务
|
|
sudo supervisorctl restart 4an
|
|
|
|
# 查看服务状态
|
|
sudo supervisorctl status 4an
|
|
|
|
# 查看日志
|
|
sudo tail -f /opt/1panel/docker/compose/4an/supervisor.log
|
|
```
|
|
|
|
## 使用systemd(可选)
|
|
|
|
如果需要使用systemd而不是Supervisor,可以创建服务文件:
|
|
|
|
```bash
|
|
sudo nano /etc/systemd/system/4an.service
|
|
```
|
|
|
|
服务文件内容示例:
|
|
|
|
```ini
|
|
[Unit]
|
|
Description=4AN Application
|
|
After=network.target
|
|
|
|
[Service]
|
|
User=root
|
|
WorkingDirectory=/opt/1panel/docker/compose/4an/app
|
|
ExecStart=/mnt/nfs/.venv/bin/uwsgi --ini /opt/1panel/docker/compose/4an/app/uwsgi.ini
|
|
Restart=always
|
|
StandardOutput=file:/opt/1panel/docker/compose/4an/systemd.log
|
|
StandardError=file:/opt/1panel/docker/compose/4an/systemd_error.log
|
|
EnvironmentFile=/opt/1panel/docker/compose/4an/4an.env
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
```
|
|
|
|
然后启用并启动服务:
|
|
|
|
```bash
|
|
sudo systemctl daemon-reload
|
|
sudo systemctl enable 4an
|
|
sudo systemctl start 4an
|
|
``` |