游铛铛打包部署方案
一、客户端打包
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 客户端
5.2 服务端
5.3 管理端
六、更新部署
6.1 客户端更新
6.2 服务端更新
# 停止服务
systemctl stop youdangdang-api
# 更新代码
git pull
# 重启服务
systemctl start youdangdang-api
6.3 数据库迁移
# 执行迁移脚本
mysql -u root -p buff < migration.sql