2.1 KiB
2.1 KiB
HexaHost GameCloud — Implementation Status
Last updated: 2026-06-26
Current phase: Phase 2 — Single-Node Vertical Slice ✅
Phase 2 completed
| Area | Status | Notes |
|---|---|---|
| Prisma lifecycle models | Done | Allocations, server fields, node enrollment |
@hexahost/contracts servers |
Done | Zod schemas for create/list/action |
| API ServersModule | Done | CRUD, start/stop, BullMQ jobs |
| API NodesModule | Done | WebSocket /api/v1/nodes/ws, Redis command bridge |
| API Plans | Done | GET /api/v1/plans |
| Admin nodes | Done | POST /api/v1/admin/nodes with enrollment token |
| Worker provisioning | Done | Port allocation, Redis commands, response wait |
| Worker lifecycle | Done | start-server, stop-server jobs |
| Go node-agent | Done | WebSocket, Docker (itzg/minecraft-server:java21) |
| Web server UI | Done | Create, list, detail, start/stop |
| Dev seed | Done | pnpm db:seed — Free plan + local dev node |
| Migrations | Done | 20260626140000_phase2_game_servers |
Abnahmekriterium Phase 2
- User creates server in web panel
- Provisioning pipeline (API → Worker → Agent)
- Start/stop lifecycle
- Node enrollment + heartbeat
- Connection address shown (
localhost:port) - Manual Minecraft join validation (requires Docker + agent running locally)
Local vertical slice
pnpm dev:infra
pnpm db:migrate # or db:push
pnpm db:seed
pnpm dev
# Terminal 2 — Node Agent (requires Go + Docker)
cd apps/node-agent
set NODE_ID=00000000-0000-4000-8000-000000000001
set NODE_TOKEN=local-dev-enrollment-token-change-me-32chars
set NODE_AGENT_PUBLIC_URL=ws://localhost:3001/api/v1/nodes/ws
make run
Known limitations
- Single-node only (no scheduler/queue fairness yet).
- Minecraft image pull on first provision can take several minutes.
- Node agent on Windows needs Docker Desktop; run agent on host, not in Compose.
- mTLS for agent deferred; token-based enrollment only.
- Metrics are basic heartbeat payload only.
Next phase: Phase 3 — Console, files, settings
- Live console WebSocket
- File manager
- server.properties editor
- Player lists