Files
zjpb.net/1PANEL_DEPLOY.md

359 lines
7.0 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.
# 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`
- 方式3Supervisor`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. 确认虚拟环境依赖已安装
祝部署顺利!🎉