76 lines
2.1 KiB
Markdown
76 lines
2.1 KiB
Markdown
# HexaHost GameCloud — Implementation Status
|
|
|
|
Last updated: 2026-06-26
|
|
|
|
## Current phase: Phase 7 — Idle shutdown and free tier ✅
|
|
|
|
### Phase 7 completed
|
|
|
|
| Area | Status | Notes |
|
|
|------|--------|-------|
|
|
| `@hexahost/metering` | Done | RAM-GB-minute credits, Minecraft `list` parser |
|
|
| Prisma billing models | Done | `CreditWallet`, `CreditTransaction`, `UsageRecord` |
|
|
| Plan idle/quota fields | Done | Timeouts, countdown, `maxServersPerUser`, `queuePriority` |
|
|
| Idle controller (worker) | Done | Player poll, countdown, auto-stop |
|
|
| Usage metering (worker) | Done | 60s tick debits wallet, writes `UsageRecord` |
|
|
| API billing | Done | `GET /account/wallet`, `GET /account/usage` |
|
|
| API idle | Done | `GET /servers/:id/idle`, `POST .../idle/extend` |
|
|
| Quotas & credits | Done | Server create/start guards |
|
|
| Web | Done | Credit balance on dashboard, idle countdown on server card |
|
|
|
|
### Abnahmekriterium Phase 7
|
|
|
|
- [x] Empty running server triggers idle countdown and auto-stop
|
|
- [x] Player connection cancels countdown (via `list` poll)
|
|
- [x] Usage debited to credit wallet with ledger + usage records
|
|
- [x] Free plan grants credits on signup
|
|
- [x] Server quota per plan enforced
|
|
- [ ] Manual E2E: start server, wait idle, verify stop + usage
|
|
|
|
### Local test
|
|
|
|
1. `pnpm db:migrate && pnpm db:seed`
|
|
2. Register/login → dashboard shows **5000 credits** (free plan)
|
|
3. Create & start server → credits decrease while running
|
|
4. Leave server empty → after ~10 min idle + 60s countdown → auto-stop
|
|
5. `GET /account/usage` shows RAM-GB-minute records
|
|
|
|
### Free plan defaults (seed)
|
|
|
|
- `idleTimeoutMinutes`: 10
|
|
- `idleCountdownSeconds`: 60
|
|
- `monthlyCreditGrant`: 5000
|
|
- `maxServersPerUser`: 3
|
|
|
|
---
|
|
|
|
## Phase 6 — Multi-Node and queue ✅
|
|
|
|
---
|
|
|
|
## Phase 5 — Software & add-ons ✅
|
|
|
|
---
|
|
|
|
## Phase 4 — Worlds & backups ✅
|
|
|
|
---
|
|
|
|
## Phase 3 — Console, files, settings ✅
|
|
|
|
---
|
|
|
|
## Phase 2 — Single-Node Vertical Slice ✅
|
|
|
|
---
|
|
|
|
## Phase 1 — Authentication ✅
|
|
|
|
---
|
|
|
|
## Phase 0 — Monorepo foundation ✅
|
|
|
|
### Next phase: Phase 8 — DNS and join-to-start
|
|
|
|
- Port pools, DNS-SRV, edge gateway, start on connect
|