- Go 88.6%
- JavaScript 8%
- HTML 2.1%
- CSS 1.2%
- Dockerfile 0.1%
|
All checks were successful
Publish Registry Image / build-and-push (push) Successful in 51s
|
||
|---|---|---|
| .forgejo/workflows | ||
| game-server | ||
| registry | ||
| .gitignore | ||
| README.md | ||
bnb-game-servers
Game-server ops and CI for BlackNBrown games.
Holds the Go server registry (generic matchmaker / lobby service) and the game-server Dockerfile template used to containerize per-game Unity dedicated-server binaries. Per-game repos (DodginBalls, etc.) build their own Linux server binary via game-ci, then call the reusable workflow here to wrap that binary in a container image and publish it to the home-cluster registry.
Layout
| Path | Purpose |
|---|---|
registry/ |
Go HTTP service. Register / heartbeat / list / deregister game servers (filterable by game), plus player profiles, match and record results, ELO ladders and records boards. game_rules is an opaque JSON blob. Routes, env vars and token tiers: registry/README.md. |
game-server/Dockerfile |
Generic server container. COPYs a pre-built Builds/LinuxServer/ Unity headless binary and runs ServerBuild with CLI args for the registry, token, name, port, region, etc. |
compose/ |
Reusable compose templates for local dev and multi-server deployments. |
.forgejo/workflows/publish-registry.yaml |
On a registry-v* tag, builds registry/ and pushes git.kblab.me/kblack0610/bnb-game-servers/registry:<tag> to the Forgejo container registry. |
.github/workflows/publish-server-image.yml |
Reusable workflow (on: workflow_call) that per-game repos call to publish their server image. (Phase 4, not yet wired.) |
Published images
The registry image is published to the Forgejo container registry by tagging a commit registry-vX.Y.Z (the image tag is the git tag, for example registry:registry-v0.2.0). The other rows below are the older plan for the home-cluster registry at 192.168.1.20:30500 and are not wired yet.
| Image | Source | Consumers |
|---|---|---|
git.kblab.me/kblack0610/bnb-game-servers/registry:registry-v<x.y.z> |
registry/ |
home-config compose stack (REGISTRY_IMAGE_TAG) |
192.168.1.20:30500/bnb/dodginballs-server:<tag> |
dodginballs game-ci build + game-server/Dockerfile |
home-config compose stack |
192.168.1.20:30500/bnb/<game>-server:<tag> |
any future game, via the same reusable workflow | future deployments |
Consumers on HP/Thinkpad need insecure-registries: ["192.168.1.20:30500"] in
/etc/docker/daemon.json since the registry is HTTP-only.
Current status - Phase 1 (scaffold)
- Repo scaffolded with registry source and game-server Dockerfile.
- Self-hosted GitHub Actions runner on home-cluster (prerequisite for CI phases; separate
bnb-platformPR). publish-registry.yamlworkflow (Phase 3, Forgejo Actions, onregistry-v*tags).publish-server-image.ymlreusable workflow (Phase 4).- DodginBalls
release.ymlwired to call the reusable workflow (Phase 5). home-config/apps/game-servers/compose swapped to pull published images (Phase 6).- Duplicate registry / Dockerfile copies deleted from
dodginballs,dodginballs-agent-2,engine/unity-core/infrastructure/(Phase 7).
Full plan: ~/.claude/plans/snappy-orbiting-lagoon.md.
Sources this scaffold was copied from
registry/<-engine/unity-core/infrastructure/registry/(since reworked: split into files, game filter, players, results, ladders)game-server/Dockerfile<-home-config/apps/game-servers/Dockerfile.server(verbatim)
Those sources remain in place and functional until Phase 7. This repo is the intended canonical home going forward.