游铛铛-技术方案-打包部署.md 3.7 KB

游铛铛打包部署方案

一、客户端打包

1.1 打包工具

  • PyInstaller:打包Python为exe
  • NSIS:创建安装包

1.2 打包步骤

步骤1:代码保护

# 使用PyArmor混淆代码
pyarmor gen --recursive src/

# 使用Nuitka编译核心模块
nuitka --standalone core_module.py

步骤2:打包exe

# 使用PyInstaller打包
pyinstaller --onefile \
    --windowed \
    --name="游铛铛" \
    --icon=logo.ico \
    --add-data="chrome;chrome" \
    --add-data="plugins;plugins" \
    main.py

步骤3:创建安装包

  • 使用NSIS创建安装程序
  • 包含:exe文件、Chrome浏览器、插件目录
  • 安装包大小:~180MB

1.3 目录结构

游铛铛.exe
chrome/
  ├── chrome.exe
  └── ...
plugins/
  ├── plugin1.crx
  └── plugin2.crx
config/
  └── config.json

二、服务端部署

2.1 环境要求

  • Python 3.10+
  • MySQL 8.0
  • Nginx(可选)

2.2 部署步骤

步骤1:安装依赖

pip install -r requirements.txt

步骤2:配置数据库

# 创建数据库
mysql -u root -p
CREATE DATABASE buff CHARACTER SET utf8mb4;

# 导入表结构
mysql -u root -p buff < schema.sql

步骤3:配置环境变量

# .env
DB_HOST=47.99.164.66
DB_PORT=3306
DB_NAME=buff
DB_USER=root
DB_PASSWORD=hn02le.34lkdLKD
ENCRYPT_ENABLED=true

步骤4:启动服务

# 使用gunicorn启动
gunicorn -w 4 -b 0.0.0.0:8000 app:app

# 或使用uvicorn(FastAPI)
uvicorn app:app --host 0.0.0.0 --port 8000

2.3 Nginx配置

server {
    listen 80;
    server_name api.youdangdang.com;

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

三、管理web端部署

3.1 构建

# 安装依赖
npm install

# 构建生产版本
npm run build

3.2 部署

# 方式1:Nginx静态文件
cp -r dist/* /usr/share/nginx/html/

# 方式2:Node.js服务
npm run serve

3.3 Nginx配置

server {
    listen 80;
    server_name admin.youdangdang.com;
    root /usr/share/nginx/html;
    index index.html;

    location / {
        try_files $uri $uri/ /index.html;
    }
}

四、数据库初始化

4.1 初始化脚本

-- 创建数据库
CREATE DATABASE buff CHARACTER SET utf8mb4;

-- 创建表
source schema.sql

-- 初始化数据
INSERT INTO software (code, name, daily_price) 
VALUES ('buff-xp-steam-sh', 'Buff选品Steam扫货', 10.00);

INSERT INTO admins (username, password) 
VALUES ('admin', '$2b$12$...'); -- 密码需要哈希

4.2 初始密钥生成

# 生成初始密钥对
from cryptography.hazmat.primitives.asymmetric import rsa

private_key, public_key = generate_key_pair()
save_keys_to_db(public_key, private_key)

五、部署检查清单

5.1 客户端

  • exe文件可正常运行
  • Chrome浏览器内置成功
  • 插件可正常加载
  • 接口加密正常
  • 机器码绑定正常

5.2 服务端

  • API服务正常启动
  • 数据库连接正常
  • 接口加密开关正常
  • 密钥生成正常
  • 日志记录正常

5.3 管理端

  • Web页面正常访问
  • 管理员登录正常
  • 各功能模块正常
  • API接口调用正常

六、更新部署

6.1 客户端更新

  • 发布新版本安装包
  • 用户下载安装覆盖

6.2 服务端更新

# 停止服务
systemctl stop youdangdang-api

# 更新代码
git pull

# 重启服务
systemctl start youdangdang-api

6.3 数据库迁移

# 执行迁移脚本
mysql -u root -p buff < migration.sql