# 扫雷游戏部署教程

## 项目结构
```
game/
├── app/              # React 前端（用户玩游戏）
├── server/           # Nakama 游戏服务器逻辑
├── docker-compose.yml
└── 游戏逻辑文档.txt
```

---

## 1. 部署 Nakama 游戏服务器

### 1.1 服务器准备
```bash
# 安装 Docker 和 Docker Compose
apt install docker.io docker-compose
```

### 1.2 启动服务
```bash
cd /path/to/game

# 构建并启动
docker-compose up -d --build

# [推荐] 方式2：分别部署 (业务后端 + 游戏服)
# 1. 启动业务后端 (在 bindbox_game 目录)
# 2. 启动游戏服 (使用 docker-compose.cloud.yml, 需确保网络互通)
# docker-compose -f docker-compose.cloud.yml up -d

# [推荐] 方式3：全量合并部署 (业务后端 + 游戏服 + 数据库)
# docker-compose -f docker-compose.all.yml up -d

# 云端部署 (由于是云端，通常使用拉取的镜像)
# docker-compose -f docker-compose.cloud.yml up -d

# 查看日志
docker-compose logs -f nakama
```

### 1.3 验证服务
- Nakama API: http://your-server:7350
- Nakama Console: http://your-server:7351
- CockroachDB UI: http://your-server:8081

---

## 2. 部署前端游戏

### 2.1 构建前端
```bash
cd /path/to/game/app

# 安装依赖
npm install

# 构建生产版本
npm run build
```

### 2.2 配置 Nginx
```nginx
server {
    listen 80;
    server_name game.1024tool.vip;

    root /var/www/game;
    index index.html;

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

### 2.3 部署文件
```bash
# 将构建产物复制到服务器
scp -r dist/* root@server:/var/www/game/

# 重载 Nginx
nginx -s reload
```

---

## 3. 配置小程序对接

### 3.1 后端配置（bindbox_game）
在 `system_configs` 表添加：
```sql
INSERT INTO system_configs (key, value) VALUES 
('nakama_server', 'wss://game.1024tool.vip:7350'),
('nakama_key', 'defaultkey');
```

### 3.2 前端跳转
小程序扫雷入口已配置跳转到：
```
https://game.1024tool.vip?ticket={ticket_token}
```

---

## 4. 完整流程

```
小程序点击「进入游戏」
       ↓
调用 /api/app/games/enter
       ↓
获取 ticket_token
       ↓
跳转 webview: game.1024tool.vip?ticket=xxx
       ↓
游戏前端连接 Nakama 服务器
       ↓
开始对战
```

---

## 5. 常用命令

```bash
# 查看服务状态
docker-compose ps

# 重启服务
docker-compose restart nakama

# 查看实时日志
docker-compose logs -f

# 停止服务
docker-compose down
```
