# amssss.com 服务器部署记录

## 基本信息

- 部署日期：2026-06-06
- 服务器 IP：8.217.69.60
- 系统：Alibaba Cloud Linux 4
- 部署目录：`/home/jiekouapi/current`
- 二进制目录：`/home/jiekouapi/bin`
- 反向代理：Nginx
- 证书工具：certbot 5.6.0，安装在 `/opt/certbot`，命令软链接为 `/usr/local/bin/certbot`
- 数据库：PostgreSQL 15.16，本机自建，监听本机连接
- Go 版本：服务器安装包版本 `go1.25.9 linux/amd64`
- 当前线上标识：`deploy-20260606115207`
- 本次备份目录：`/home/jiekouapi/backups/20260606114942`

## 域名前缀规划

| 域名 | 用途 | 后端服务 | 端口 |
| --- | --- | --- | --- |
| `amssss.com` | 玩家 C 端 | Nginx 静态前端 `/home/jiekouapi/frontends/web`，同域 `/api/` 代理到 `merchant-gateway` | 443 |
| `www.amssss.com` | 玩家 C 端 | Nginx 静态前端 `/home/jiekouapi/frontends/web`，同域 `/api/` 代理到 `merchant-gateway` | 443 |
| `api.amssss.com` | 商户 API | `merchant-gateway` | 18080 |
| `merchant.amssss.com` | 商户后台前端 | Nginx 静态前端 `/home/jiekouapi/frontends/merchant`，同域 `/api/` 代理到 `merchant-gateway` | 443 |
| `gateway.amssss.com` | 游戏网关 | `game-gateway` | 18090 |
| `game.amssss.com` | PG Mahjong Hu Le 子游戏服务 | `game-pg-mahjong` | 18095 |
| `admin.amssss.com` | 总后台前端 | Nginx 静态前端 `/home/jiekouapi/frontends/admin`，同域 `/api/` 代理到 `admin-gateway` | 443 |
| `report.amssss.com` | 报表服务入口 | `report-service` | 18111 |
| `callback.amssss.com` | 商户回调服务 | `callback-service` | 18088 |
| `docs.amssss.com` | 项目文档目录 | Nginx 静态目录 | 443 |

## 前端页面

本次已补第一阶段可测试前端入口：

```text
/home/jiekouapi/frontends/web/index.html       玩家 C 端
/home/jiekouapi/frontends/admin/index.html     总后台
/home/jiekouapi/frontends/merchant/index.html  商户后台
```

当前状态：

- 玩家 C 端：已经提供创建会员、充值、余额查询、进入 PG 麻将胡了的同域 `/api` 测试台。
- 总后台：已经部署 Vue 总后台，包含商户、玩家、注单、账本、报表、游戏配置、服务监控、系统设置、菜单、角色、IP 白名单等页面；账号 `admin`，密码 `admin123`。
- 商户后台：已经部署 Vue 商户后台，包含控制台、玩家、上下分、注单、订单、回调、报表、游戏入口、结算、API 接入、设置等页面。
- 总后台和商户后台前端均优先走 `VITE_API_BASE_URL=/api`，避免跨域；缺少后端接口的页面会自动回退到本地 mock 数据，页面不应一直转圈。

## 已启动服务

本次已把 20 个 Go 服务全部编译为 systemd 服务，服务名前缀统一为 `jiekouapi-`。

```bash
systemctl list-units "jiekouapi-*" --type=service --state=running
```

核心健康检查：

```bash
curl http://127.0.0.1:18080/health
curl http://127.0.0.1:18120/health
curl http://127.0.0.1:18090/health
curl http://127.0.0.1:18095/health
curl http://127.0.0.1:18111/health
curl http://127.0.0.1:18088/health
```

## PostgreSQL 持久化

当前已在服务器自建 PostgreSQL，并为 merchant-gateway 配置 `DATABASE_URL`。merchant-gateway 启动时会读取 `MERCHANT_MIGRATIONS_DIR` 指向的迁移目录，默认本地源码运行为 `migrations`，容器镜像运行为 `/migrations`。密码存放在服务器本机：

```bash
/root/.jiekouapi_pg_password
```

systemd 配置文件：

```bash
/etc/systemd/system/jiekouapi-merchant-gateway.service
```

数据库：

```text
database: jiekouapi
user: jiekouapi
host: 127.0.0.1
```

已通过 merchant-gateway 第一阶段迁移创建表：

```text
merchant_players
merchant_wallets
merchant_transfers
merchant_sessions
```

本机验证命令：

```bash
DB_PASS="$(cat /root/.jiekouapi_pg_password)"
PGPASSWORD="$DB_PASS" psql -h 127.0.0.1 -U jiekouapi -d jiekouapi -c "\dt merchant_*"
```

注意：当前 merchant-gateway 已经使用 PostgreSQL 持久化玩家、余额、转账记录和登录 session。后续高并发正式链路仍需继续拆到 wallet-service、ledger-service、order-ingest-service、Redis 幂等和 Redpanda 事件流。

## Nginx 配置

配置文件：

```bash
/etc/nginx/conf.d/jiekouapi.conf
```

检查和重载：

```bash
nginx -t
systemctl reload nginx
```

## HTTPS 证书状态

当前服务器已监听 80 和 443，正式 Let's Encrypt 证书已签发并部署到 Nginx。

证书路径：

```text
/etc/letsencrypt/live/amssss.com/fullchain.pem
/etc/letsencrypt/live/amssss.com/privkey.pem
```

证书有效期到：2026-09-03。

证书签发命令：

```bash
certbot --nginx \
  -d amssss.com \
  -d www.amssss.com \
  -d api.amssss.com \
  -d merchant.amssss.com \
  -d gateway.amssss.com \
  -d game.amssss.com \
  -d admin.amssss.com \
  -d report.amssss.com \
  -d callback.amssss.com \
  -d docs.amssss.com
```

验证：

```bash
curl -I https://api.amssss.com/health
curl https://gateway.amssss.com/health
curl https://docs.amssss.com/
```

## 本次验证结果

公网 HTTPS 已验证通过。若本地 DNS 仍有缓存或污染，可以使用 `curl --resolve` 强制解析验证：

```bash
curl --resolve amssss.com:443:8.217.69.60 https://amssss.com/
curl --resolve admin.amssss.com:443:8.217.69.60 https://admin.amssss.com/
curl --resolve merchant.amssss.com:443:8.217.69.60 https://merchant.amssss.com/
curl -k --resolve api.amssss.com:443:8.217.69.60 https://api.amssss.com/health
curl -k --resolve gateway.amssss.com:443:8.217.69.60 https://gateway.amssss.com/health
curl -k --resolve game.amssss.com:443:8.217.69.60 https://game.amssss.com/health
curl -k --resolve callback.amssss.com:443:8.217.69.60 https://callback.amssss.com/health
curl -k --resolve docs.amssss.com:443:8.217.69.60 https://docs.amssss.com/
```

本次实测接口：

- `https://admin.amssss.com/api/login`：账号 `admin`、密码 `admin123` 登录成功。
- `https://amssss.com/api/CreateMember`：HMAC 签名创建玩家成功。
- `https://amssss.com/api/Deposit`：HMAC 签名充值成功。
- `https://amssss.com/api/Balance`：余额查询成功。
- `https://amssss.com/api/Login`：返回 `https://game.amssss.com/` 游戏地址成功。
- `https://game.amssss.com/health`：返回服务名 `game-pg-mahjong`。

旧示范服务处理：

- `jiekouapi-game-demo-slots.service` 已停用并移除自启。
- `jiekouapi-chat-service.service` 已停用并移除自启。

## 注意事项

- 当前部署的是 Go 新架构第一阶段骨架服务，健康检查和服务边界已经可用。
- PostgreSQL 已在本机自建并接入 `merchant-gateway`；Redis、Redpanda、ClickHouse、MinIO 等基础中间件还没有在本次服务器上初始化。
- 当前没有使用宝塔。
- 当前代码部署在 `/home` 目录下，符合单机第一阶段部署要求。
