# 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 ```