Files
zjpb.net/1PANEL_DEPLOY.md

7.0 KiB
Raw Blame History

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. 点击编辑,填写配置:
# 数据库配置
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

# 在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的终端

# 进入项目目录
cd /www/wwwroot/zjpb

# 激活虚拟环境1Panel自动创建的
source venv/bin/activate

# 安装依赖
pip install -r requirements.txt

步骤6初始化数据库

  1. 在1Panel中打开 终端 或 SSH连接
  2. 执行:
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手动创建虚拟环境

cd /www/wwwroot/zjpb
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

步骤6创建Supervisor配置

  1. 在1Panel中进入 容器进程管理
  2. 如果有Supervisor功能创建新任务

或手动创建配置文件:

nano /etc/supervisor/conf.d/zjpb.conf

内容:

[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"

启动:

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
  • 方式3Supervisorsupervisorctl restart zjpb

Q5: 端口被占用怎么办?

A: 修改 gunicorn_config.py 中的端口:

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. 设置文件权限:
    chmod 600 .env
    chmod 755 static/uploads
    
  6. 配置防火墙1Panel通常自动配置

获取帮助

如果遇到问题:

  1. 查看 logs/error.log 日志文件
  2. 检查1Panel的系统日志
  3. 验证数据库连接
  4. 检查端口是否被占用
  5. 确认虚拟环境依赖已安装

祝部署顺利!🎉