# 部署指南 ## 服务器要求 - Ubuntu 20.04+ - 2GB+ RAM - Docker & Docker Compose - PostgreSQL 13+ (或使用 Docker) - Nginx (可选,用于反向代理) ## 1. 数据库准备 ```bash # 创建数据库 sudo -u postgres psql CREATE DATABASE blind_select; CREATE USER blind_user WITH PASSWORD 'your_password'; GRANT ALL PRIVILEGES ON DATABASE blind_select TO blind_user; # 运行迁移 psql -U blind_user -d blind_select < migrations/001_init.sql ``` ## 2. 后端部署 ### 方式一:直接运行 ```bash cd backend # 构建 go build -o blind-server cmd/server/main.go # 配置 cp config.yaml.example config.yaml vim config.yaml # 使用 systemd 运行 sudo cat > /etc/systemd/system/blind-server.service << EOF [Unit] Description=Blind Select Server After=network.target [Service] Type=simple User=www-data WorkingDirectory=/opt/blind-select/backend ExecStart=/opt/blind-select/backend/blind-server Restart=always [Install] WantedBy=multi-user.target EOF sudo systemctl daemon-reload sudo systemctl enable blind-server sudo systemctl start blind-server ``` ### 方式二:Docker ```bash cd backend docker-compose up -d ``` ## 3. UniApp 小程序部署 ### 微信小程序 ```bash cd frontend-app # 修改 manifest.json 中的 appid # 修改 api/index.js 中的 BASE_URL 为你的 HTTPS 域名 # 构建 npm run build:mp-weixin # 使用微信开发者工具上传 # 或使用脚本部署 ./wechat-deploy.sh ``` ### 小程序注意事项 1. 域名必须是 HTTPS 2. 需要在微信公众平台配置服务器域名 3. 需要配置业务域名 ## 4. 后台管理部署 ```bash cd frontend-admin # 修改 API 地址 vim src/api/index.js # 构建 npm run build # Nginx 配置 server { listen 80; server_name admin.yourdomain.com; root /opt/blind-select/frontend-admin/dist; index index.html; location / { try_files $uri $uri/ /index.html; } location /api { proxy_pass http://localhost:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } ``` ## 5. Nginx 配置 (可选) ```nginx # 后端 API server { listen 443 ssl; server_name api.yourdomain.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } # 后台管理 server { listen 443 ssl; server_name admin.yourdomain.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; root /opt/blind-select/frontend-admin/dist; index index.html; location / { try_files $uri $uri/ /index.html; } location /api { proxy_pass http://127.0.0.1:8080; } } ``` ## 6. 微信支付配置 1. 在微信支付商户平台申请支付功能 2. 配置支付回调域名 3. 在后端配置支付密钥 ```yaml # config.yaml 添加 wechat_pay: mchid: your_mchid serial_no: your_serial_no private_key: /path/to/private_key.pem api_v3_key: your_api_v3_key ``` ## 7. 监控与日志 ```bash # 查看后端日志 journalctl -u blind-server -f # Docker 日志 docker logs blind-server -f ``` ## 8. 备份 ```bash # 数据库备份 pg_dump -U blind_user blind_select > backup_$(date +%Y%m%d).sql # 定时备份 (crontab) 0 2 * * * pg_dump -U blind_user blind_select > /backup/blind_$(date +\%Y\%m\%d).sql ``` ## 常见问题 ### Q: 小程序请求失败? A: 检查服务器域名是否配置 HTTPS,是否在微信公众平台白名单 ### Q: 支付失败? A: 检查微信支付证书配置,确保证书路径正确 ### Q: 盲选算法不准确? A: 需要积累用户行为数据,初期可手动调整权重参数