Files
brassbirimingham-native-bac…/README.md
T
2026-07-30 23:25:28 +08:00

141 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Brass Birmingham Linux Native Backend v1 Usable
这是一个基于现有客户端协议反推出来的 Linux 原生后端,用来替代原始 Windows 服务端。
## 版本定位
`v1-usable` 是当前可用的基线版本,重点覆盖:
- 登录 / 注册
- 当前用户信息
- 房间列表 / 创建 / 加入 / 离开
- 事件读写
- `lastSeenRevision` 更新
## 目录
```text
linux-native-backend-v1-usable/
app/
server.py
data/
users.json
games.json
run.sh
build-image.sh
docker-compose.yml
```
## 快速启动
### Docker Compose
```bash
docker compose up -d --build
```
默认监听 `8765` 端口。
### 本机运行
```bash
chmod +x run.sh
./run.sh
```
也可以手动指定:
```bash
HOST=0.0.0.0 PORT=8765 ./run.sh
```
## Docker 镜像
```bash
chmod +x build-image.sh
./build-image.sh
```
可用环境变量自定义镜像名:
```bash
IMAGE_NAME=myrepo/brass-backend IMAGE_TAG=v1 ./build-image.sh
```
### 推送到 Docker Hub
先登录:
```bash
docker login -u sigema
```
给本地镜像打 tag
```bash
docker tag brass-birmingham-backend:latest docker.io/sigema/brass-birmingham-backend:latest
docker tag brass-birmingham-backend:latest docker.io/sigema/brass-birmingham-backend:v1-usable
```
推送镜像:
```bash
docker push docker.io/sigema/brass-birmingham-backend:latest
docker push docker.io/sigema/brass-birmingham-backend:v1-usable
```
如果仓库还不存在,先在 Docker Hub 创建:
- 仓库名:`sigema/brass-birmingham-backend`
- 地址:`https://hub.docker.com/`
## 数据持久化
用户和房间数据保存在 `data/`
- `data/users.json`
- `data/games.json`
容器方式运行时,建议把该目录挂载出去,避免重建后数据丢失。
## 认证
支持以下方式:
- `Authorization: Bearer fake-token-<user_id>`
- `access_token: fake-token-<user_id>`
- `X-User-Id: <user_id>`
## API
- `POST /login`
- `POST /login/with/e-mail`
- `POST /register`
- `GET /me`
- `POST /logout`
- `POST /password/email`
- `GET /1.0.0/games`
- `POST /1.0.0/games`
- `PUT /1.0.0/games/<game_id>/players`
- `DELETE /1.0.0/games/<game_id>/players`
- `GET /1.0.0/games/<game_id>/events`
- `POST /1.0.0/games/<game_id>/events`
- `DELETE /1.0.0/games/<game_id>/events`
- `GET /1.0.0/games/<game_id>/events-and-metadata`
- `POST /1.0.0/games/<game_id>/events-and-metadata`
- `POST /1.0.0/games/<game_id>/metadata/lastSeenRevision`
- `POST /1.0.0/devices`
- `GET /debug/games`
## 测试
```bash
python test_local.py
python test_turn_progression.py
```
## 说明
- 这是逆向恢复版实现,不保证覆盖所有隐藏边缘逻辑。
- 当前版本以“可用”为目标,后续可以继续对齐真实客户端返回结构。