Conway's Game of Life (B3/S23) engine — Go + SQLite + WebSocket + WebGL2 UI
2.1K
Conway's Game of Life (B3/S23) as a self-contained service: a Go simulation core with a REST + WebSocket streaming API and a React/WebGL2 UI — all shipped in a single small distroless container. State lives in SQLite, so the world survives restarts.

docker run -d --name b3s23 -p 8050:8050 -v b3s23_data:/data mist941/b3s23-engine:latest
Open http://localhost:8050 — the UI and the API are served from the same
port. The /data volume holds the SQLite database (plus its WAL sidecars), so
the simulation survives container restarts.
Clone the repo, then:
docker compose up -d # pulls the published image
docker compose up -d --build # or build it from source
Engine (Go ≥ 1.26, no CGO):
cd engine
go run ./cmd/engined # API on :8050
go test ./... # -race needs gcc; CI runs it on Linux
UI dev server (Node ≥ 24) with hot reload, proxying /api to the engine:
cd ui
npm install
npm run dev
Or serve the built UI straight from the engine binary:
cd ui && npm install && npm run build
cd ../engine && go run ./cmd/engined -static ../ui/dist
Run engined -help for all flags (grid size, tick rate, DB path, CORS, …).
Content type
Image
Digest
sha256:5b4254ed8…
Size
5.4 MB
Last updated
5 months ago
docker pull mist941/b3s23-engine