# 部署说明(Docker / 本地 / 反向代理) 本文档说明如何在服务器上运行本项目(Node + Express + Vite 前端构建)。 环境变量(必需) - WEB_PORT: 前端/HTTP 服务端口(示例 80) - WS_PORT: 后端 WebSocket 端口(示例 4000) - MD5_PREFIX: 项目内部使用的 MD5 前缀 - DESIV: DES IV(字符串) - SESSION_SECRET: express-session 的 secret 快速开始(Docker Compose) 1. 在项目根(带有 docker-compose.yml 的目录)创建或修改 `.env`,填入必需变量。示例: ``` WEB_PORT=80 WS_PORT=4000 MD5_PREFIX=change_me DESIV=change_me SESSION_SECRET=change_me ``` 2. 构建并启动 ```bash docker compose up --build -d ``` 3. 检查日志 ```bash docker compose logs -f ``` 本地开发 - 前端:在 `src/` 目录使用 Vite 开发服务器 - npm run dev - 后端(静态 + API): - npm run web (启动 web.js) - npm run os (启动 main.js,后台游戏服务) 反向代理(使用 Nginx) 示例 Nginx 配置(简化) ``` server { listen 80; server_name example.com; location / { proxy_pass http://127.0.0.1:80; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } ``` 持久化与备份 - SQLite 数据文件位于 `data/` 目录(`database.db`),请确保卷挂载或定期备份。 - 日志目录在 `log/`。 K8s / CI/CD - Dockerfile 为多阶段,已将前端构建产物输出到 `www/`。 - 在 CI 中请先运行 `npm ci` 和 `npm run build`,然后构建镜像并推送到镜像仓库。 常见问题 - 端口冲突:确认 `WEB_PORT` 与宿主机端口映射一致 - 权限问题:确保 `data/`、`log/` 可由容器写入(host 的 umask/owner)