54ce74860b82a96b30a717d2d61e84c5459cfb48
Add README for Brass Birmingham Linux Native Backend
Brass Birmingham Linux Native Backend
这是基于现有客户端协议重写的 Linux 原生后端。
当前状态
这份实现不是从源码直接移植,而是基于下面两部分反推出来的:
BrassHost.exe中提取出的 Python 服务端字节码Assembly-CSharp.dll中提取出的客户端接口字符串
它已经覆盖了客户端联机所需的核心接口:
- 登录
- 注册
- 当前用户
- 房间列表
- 创建房间
- 加入房间
- 离开房间
- 事件同步
lastSeenRevision更新
目录结构
linux-native-backend/
app/
__init__.py
server.py
data/
games.json
users.json
run.sh
test_local.py
Docker 启动
先构建 image:
cd linux-native-backend
chmod +x build-image.sh
./build-image.sh
默认会生成:
brass-birmingham-backend:latest
如果你想自定义名字或 tag:
IMAGE_NAME=myrepo/brass-backend IMAGE_TAG=v1 ./build-image.sh
推荐直接用 Docker Compose:
cd linux-native-backend
docker compose up -d --build
查看日志:
docker compose logs -f
停止服务:
docker compose down
当前 Dockerfile 使用的是明确存在的基础镜像标签:
python:3.14.6-slim-bookworm
这样比浮动别名更稳,也更方便排查镜像拉取问题。
目录挂载
docker-compose.yml 已经把本地数据目录挂载到容器里:
./data -> /app/data
所以容器重建后,用户和房间数据仍会保留。
手动构建与运行
如果你不想用 Compose,也可以直接执行:
cd linux-native-backend
docker build -t brass-birmingham-backend .
docker run -d \
--name brass-birmingham-backend \
-p 8765:8765 \
-v "$(pwd)/data:/app/data" \
--restart unless-stopped \
brass-birmingham-backend
直接本机启动
cd linux-native-backend
chmod +x run.sh
./run.sh
默认监听:
0.0.0.0:8765
API 概览
POST /loginPOST /login/with/e-mailPOST /registerGET /mePOST /logoutPOST /password/emailGET /1.0.0/gamesPOST /1.0.0/gamesPUT /1.0.0/games/<game_id>/playersDELETE /1.0.0/games/<game_id>/playersGET /1.0.0/games/<game_id>/eventsPOST /1.0.0/games/<game_id>/eventsDELETE /1.0.0/games/<game_id>/eventsGET /1.0.0/games/<game_id>/events-and-metadataPOST /1.0.0/games/<game_id>/metadata/lastSeenRevisionPOST /1.0.0/devicesGET /debug/games
认证方式
后端兼容原工具里暴露出来的伪 token 机制:
Authorization: Bearer fake-token-<user_id>- 或请求头
X-User-Id: <user_id>
已知限制
- 这份协议实现是逆向恢复版,不保证 100% 覆盖所有隐藏边缘逻辑
- 目前没有实现 ngrok 辅助启动,因为这不属于后端核心协议
- 如果后续抓到真实客户端请求样本,还可以继续把返回结构再对齐得更严
Languages
Python
98.7%
Shell
0.9%
Dockerfile
0.4%