# 1Panel Web界面部署指南 ## 使用1Panel Web界面部署ZJPB项目 ### 前提条件 - 1Panel已安装并可访问 - 1Panel版本支持Python项目管理 --- ## 方式一:使用1Panel的运行时环境(推荐) ### 步骤1:准备项目文件 1. **压缩项目** - 在本地压缩整个项目文件夹 - 排除:`venv/`, `__pycache__/`, `.env`, `test_*.py`, `logs/` ### 步骤2:在1Panel中创建数据库 1. 登录1Panel管理面板 2. 进入 **数据库** 菜单 3. 点击 **创建数据库** 4. 填写信息: ``` 数据库名:ai_nav 用户名:ai_nav_user 密码:(自动生成或自定义) 权限:本地访问 ``` 5. 点击确定,**记录数据库密码** ### 步骤3:上传项目文件 1. 进入 **文件** 菜单 2. 导航到网站目录(如 `/www/wwwroot/`) 3. 创建项目目录 `zjpb` 4. 上传并解压 `zjpb.zip` ### 步骤4:配置环境变量 1. 在项目目录中,找到 `.env.example` 文件 2. 复制为 `.env` 3. 点击编辑,填写配置: ```env # 数据库配置 DB_HOST=localhost DB_PORT=3306 DB_USER=ai_nav_user DB_PASSWORD=你的数据库密码 DB_NAME=ai_nav # 安全配置 SECRET_KEY=你的密钥(使用下方命令生成) FLASK_ENV=production # DeepSeek API(可选) DEEPSEEK_API_KEY=sk-xxxxx DEEPSEEK_BASE_URL=https://api.deepseek.com ``` 生成SECRET_KEY: ```bash # 在1Panel终端执行 python3 -c "import secrets; print(secrets.token_hex(32))" ``` ### 步骤5:使用1Panel创建Python项目 #### 5.1 进入网站管理 1. 点击 **网站** 菜单 2. 点击 **创建网站** 3. 选择 **运行时** 类型 #### 5.2 配置Python项目 填写以下信息: **基本设置:** ``` 网站类型:运行时 运行时:Python 域名:your-domain.com(或IP地址) 代码目录:/www/wwwroot/zjpb ``` **Python设置:** ``` Python版本:选择 3.8+ 的版本 应用类型:选择 "Flask" 或 "其他" 启动文件:app.py 启动命令:gunicorn -c gunicorn_config.py app:app 端口:5000(默认) ``` **环境变量:**(如果1Panel支持在界面配置) ``` FLASK_ENV=production ``` **其他选项:** ``` ☑ 自动启动 ☑ 守护进程 进程数:4 ``` #### 5.3 安装依赖 1. 创建网站后,1Panel会自动创建虚拟环境 2. 进入网站设置 3. 找到 **依赖管理** 或 **包管理** 4. 上传 `requirements.txt` 或手动安装 5. 点击 **安装依赖** 或者使用1Panel的终端: ```bash # 进入项目目录 cd /www/wwwroot/zjpb # 激活虚拟环境(1Panel自动创建的) source venv/bin/activate # 安装依赖 pip install -r requirements.txt ``` ### 步骤6:初始化数据库 1. 在1Panel中打开 **终端** 或 SSH连接 2. 执行: ```bash cd /www/wwwroot/zjpb source venv/bin/activate python init_db.py ``` ### 步骤7:启动和管理 1. 在1Panel网站列表中找到你的项目 2. 点击 **启动** 按钮 3. 查看状态:运行中 ✓ ### 步骤8:配置反向代理(如果需要) 如果1Panel没有自动配置Nginx: 1. 进入网站设置 2. 找到 **反向代理** 或 **代理配置** 3. 配置: ``` 目标地址:http://127.0.0.1:5000 ``` ### 步骤9:配置SSL证书(推荐) 1. 在网站设置中找到 **SSL** 2. 选择 **Let's Encrypt** 3. 点击申请证书 4. 启用 **强制HTTPS** ### 步骤10:访问验证 1. 前台:`https://your-domain.com` 2. 后台:`https://your-domain.com/admin/login` - 默认用户名:`admin` - 默认密码:`admin123` 3. **立即修改密码**:访问 `/admin/change-password` --- ## 方式二:使用1Panel的OpenResty/Nginx + Supervisor 如果1Panel的Python运行时不支持或不稳定,可以使用传统方式: ### 步骤1-4:同上(数据库、文件上传、环境配置) ### 步骤5:手动创建虚拟环境 ```bash cd /www/wwwroot/zjpb python3 -m venv venv source venv/bin/activate pip install -r requirements.txt ``` ### 步骤6:创建Supervisor配置 1. 在1Panel中进入 **容器** 或 **进程管理** 2. 如果有Supervisor功能,创建新任务 或手动创建配置文件: ```bash nano /etc/supervisor/conf.d/zjpb.conf ``` 内容: ```ini [program:zjpb] command=/www/wwwroot/zjpb/venv/bin/gunicorn -c gunicorn_config.py app:app directory=/www/wwwroot/zjpb user=www autostart=true autorestart=true redirect_stderr=true stdout_logfile=/www/wwwroot/zjpb/logs/supervisor.log environment=FLASK_ENV="production" ``` 启动: ```bash supervisorctl reread supervisorctl update supervisorctl start zjpb ``` ### 步骤7:创建反向代理网站 1. 在1Panel **网站** 菜单中点击 **创建网站** 2. 选择 **反向代理** 3. 填写: ``` 域名:your-domain.com 代理地址:http://127.0.0.1:5000 ``` ### 步骤8:配置SSL 同方式一 --- ## 常见问题 ### Q1: 1Panel在哪里创建Python项目? **A:** - 进入 **网站** 菜单 - 点击 **创建网站** - 选择 **运行时** 或 **Runtime** - 选择 **Python** ### Q2: 找不到虚拟环境? **A:** - 1Panel创建的虚拟环境通常在项目目录下的 `venv/` 文件夹 - 路径:`/www/wwwroot/zjpb/venv/` - 可以在文件管理器中查看 ### Q3: 如何查看应用日志? **A:** - 方式1:在网站管理中点击 **日志** 按钮 - 方式2:查看文件 `logs/error.log` - 方式3:使用1Panel的终端:`tail -f logs/error.log` ### Q4: 如何重启应用? **A:** - 方式1:在1Panel网站列表中点击 **重启** 按钮 - 方式2:使用管理脚本:`./manage.sh restart` - 方式3:Supervisor:`supervisorctl restart zjpb` ### Q5: 端口被占用怎么办? **A:** 修改 `gunicorn_config.py` 中的端口: ```python bind = "0.0.0.0:5001" # 改为其他端口 ``` 然后在反向代理中也修改为对应端口。 --- ## 管理和维护 ### 更新代码 1. 在1Panel文件管理中上传新文件 2. 在网站管理中点击 **重启** ### 查看状态 1. 进入网站列表 2. 查看状态指示灯 3. 点击网站名称查看详细信息 ### 备份数据库 1. 进入 **数据库** 菜单 2. 找到 `ai_nav` 数据库 3. 点击 **备份** 按钮 ### 监控日志 1. 在网站设置中找到 **日志** 选项 2. 查看访问日志和错误日志 3. 可以设置日志轮转 --- ## 推荐配置 ### 生产环境推荐配置 ``` 服务器配置: - CPU: 2核+ - 内存: 2GB+ - 硬盘: 20GB+ Python版本: - Python 3.8+ 数据库: - MySQL 5.7+ - MariaDB 10.3+ Web服务器: - Nginx (1Panel自带) 进程管理: - Supervisor 或 1Panel内置 工作进程数: - gunicorn workers: 4 - gunicorn threads: 2 ``` --- ## 安全建议 1. ✅ 修改默认管理员密码 2. ✅ 使用强密码的SECRET_KEY 3. ✅ 启用HTTPS (Let's Encrypt) 4. ✅ 定期备份数据库 5. ✅ 设置文件权限: ```bash chmod 600 .env chmod 755 static/uploads ``` 6. ✅ 配置防火墙(1Panel通常自动配置) --- ## 获取帮助 如果遇到问题: 1. 查看 `logs/error.log` 日志文件 2. 检查1Panel的系统日志 3. 验证数据库连接 4. 检查端口是否被占用 5. 确认虚拟环境依赖已安装 祝部署顺利!🎉