# WPS Bot Game 部署指南 ## 📋 前置要求 - Ubuntu 20.04+ 服务器 - Python 3.10+(建议使用conda) - 1GB内存 + 单核CPU - sudo权限 ## 🚀 快速部署 ### 1. 上传项目到服务器 ```bash # 方式1: 使用scp scp -r WPSBotGame/ user@server:/opt/wps-bot # 方式2: 使用git cd /opt git clone wps-bot ``` ### 2. 运行安装脚本 ```bash cd /opt/wps-bot chmod +x deploy/install.sh sudo bash deploy/install.sh ``` 安装脚本会自动完成: - ✅ 检查环境 - ✅ 安装依赖 - ✅ 创建数据目录 - ✅ 配置systemd服务 ### 3. 配置环境变量 ```bash # 编辑配置文件 sudo nano /opt/wps-bot/.env # 修改Webhook URL WEBHOOK_URL=https://xz.wps.cn/api/v1/webhook/send?key=你的密钥 ``` ### 4. 启动服务 ```bash # 使用管理脚本(推荐) chmod +x deploy/manage.sh ./deploy/manage.sh start # 或直接使用systemctl sudo systemctl start wps-bot sudo systemctl status wps-bot ``` ### 5. 配置开机自启 ```bash ./deploy/manage.sh enable # 或 sudo systemctl enable wps-bot ``` ## 🛠️ 服务管理 ### 使用管理脚本(推荐) ```bash cd /opt/wps-bot # 启动服务 ./deploy/manage.sh start # 停止服务 ./deploy/manage.sh stop # 重启服务 ./deploy/manage.sh restart # 查看状态 ./deploy/manage.sh status # 查看实时日志 ./deploy/manage.sh logs # 启用开机自启 ./deploy/manage.sh enable # 禁用开机自启 ./deploy/manage.sh disable # 更新代码并重启 ./deploy/manage.sh update ``` ### 使用systemctl命令 ```bash # 启动服务 sudo systemctl start wps-bot # 停止服务 sudo systemctl stop wps-bot # 重启服务 sudo systemctl restart wps-bot # 查看状态 sudo systemctl status wps-bot # 启用开机自启 sudo systemctl enable wps-bot # 禁用开机自启 sudo systemctl disable wps-bot # 查看日志 sudo journalctl -u wps-bot -f # 查看最近100行日志 sudo journalctl -u wps-bot -n 100 # 查看今天的日志 sudo journalctl -u wps-bot --since today ``` ## 📊 监控和调试 ### 查看系统状态 ```bash # 方式1: 通过API curl http://localhost:8000/stats # 方式2: 通过日志 sudo journalctl -u wps-bot | grep "memory_mb" ``` ### 常用调试命令 ```bash # 查看服务是否运行 sudo systemctl is-active wps-bot # 查看服务是否开机自启 sudo systemctl is-enabled wps-bot # 查看端口占用 sudo netstat -tlnp | grep 8000 # 查看进程 ps aux | grep python # 查看数据库 sqlite3 /opt/wps-bot/data/bot.db "SELECT * FROM users;" ``` ### 日志分析 ```bash # 查看错误日志 sudo journalctl -u wps-bot -p err # 查看特定时间段的日志 sudo journalctl -u wps-bot --since "2025-10-28 10:00:00" --until "2025-10-28 11:00:00" # 导出日志到文件 sudo journalctl -u wps-bot > /tmp/wps-bot.log ``` ## 🔧 配置WPS Callback ### 获取服务器地址 ```bash # 查看服务器公网IP curl ifconfig.me # 或 curl icanhazip.com ``` ### 在WPS中配置 1. 进入WPS群聊 2. 找到webhook机器人设置 3. 配置Callback URL: ``` http://你的服务器IP:8000/api/callback ``` 4. 保存并验证(WPS会发送GET请求) ### 测试Callback ```bash # 从服务器测试 curl http://localhost:8000/api/callback # 从外部测试 curl http://你的服务器IP:8000/api/callback ``` ## 🔒 安全建议 ### 防火墙配置 ```bash # 允许8000端口 sudo ufw allow 8000/tcp # 查看防火墙状态 sudo ufw status ``` ### 使用Nginx反向代理(可选) ```bash # 安装Nginx sudo apt update sudo apt install nginx # 配置Nginx sudo nano /etc/nginx/sites-available/wps-bot # 添加配置(见下方) ``` Nginx配置示例: ```nginx server { listen 80; server_name your-domain.com; location / { proxy_pass http://127.0.0.1:8000; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } ``` ## 📈 性能优化 ### 定期清理数据库 ```bash # 创建清理脚本 cat > /opt/wps-bot/cleanup.sh << 'EOF' #!/bin/bash sqlite3 /opt/wps-bot/data/bot.db "DELETE FROM game_states WHERE updated_at < strftime('%s', 'now', '-7 days');" echo "数据库清理完成" EOF chmod +x /opt/wps-bot/cleanup.sh # 添加定时任务 sudo crontab -e # 添加:每天凌晨2点清理 0 2 * * * /opt/wps-bot/cleanup.sh ``` ### 监控内存使用 ```bash # 创建监控脚本 cat > /opt/wps-bot/monitor.sh << 'EOF' #!/bin/bash MEMORY=$(curl -s http://localhost:8000/stats | jq -r '.system.memory_mb') echo "$(date): 内存使用 ${MEMORY}MB" if (( $(echo "$MEMORY > 200" | bc -l) )); then echo "警告:内存使用过高!" fi EOF chmod +x /opt/wps-bot/monitor.sh # 添加定时任务:每小时检查一次 0 * * * * /opt/wps-bot/monitor.sh >> /var/log/wps-bot-monitor.log ``` ## 🆘 故障排除 ### 服务启动失败 ```bash # 查看详细错误 sudo systemctl status wps-bot -l # 查看最新日志 sudo journalctl -u wps-bot -n 50 # 检查配置文件 sudo systemctl cat wps-bot # 手动测试启动 cd /opt/wps-bot sudo -u ubuntu /home/ubuntu/miniconda3/envs/liubai/bin/python app.py ``` ### 端口被占用 ```bash # 查看占用进程 sudo lsof -i :8000 # 杀死占用进程 sudo kill -9 ``` ### 内存不足 ```bash # 查看内存使用 free -h # 清理缓存 sudo sync && sudo sysctl -w vm.drop_caches=3 # 重启服务 ./deploy/manage.sh restart ``` ### 数据库锁定 ```bash # 检查数据库 sqlite3 /opt/wps-bot/data/bot.db "PRAGMA integrity_check;" # 如果损坏,恢复数据库 mv /opt/wps-bot/data/bot.db /opt/wps-bot/data/bot.db.backup # 重启服务会自动创建新数据库 ./deploy/manage.sh restart ``` ## 📞 技术支持 如有问题,请查看: - 应用日志:`sudo journalctl -u wps-bot -f` - 系统状态:`curl http://localhost:8000/stats` - README:`/opt/wps-bot/README.md`