78 lines
2.2 KiB
Markdown
78 lines
2.2 KiB
Markdown
# HexaHost GameCloud — Implementation Status
|
|
|
|
Last updated: 2026-06-26
|
|
|
|
## Current phase: Phase 4 — Worlds & backups ✅
|
|
|
|
### Phase 4 completed
|
|
|
|
| Area | Status | Notes |
|
|
|------|--------|-------|
|
|
| Prisma backup models | Done | ServerBackup, BackupRestore, BackupSchedule, WorldUpload |
|
|
| `@hexahost/storage` | Done | S3/MinIO presigned URLs, object keys |
|
|
| `@hexahost/contracts` phase 4 | Done | backups, worlds schemas |
|
|
| Go agent v0.4 | Done | Archive, validate, RCON prepare/release, S3 transfer |
|
|
| Worker backup queue | Done | create/restore/upload, retention, schedule tick |
|
|
| API BackupsModule | Done | CRUD, restore, schedule, download URL |
|
|
| API WorldsModule | Done | World info, upload, download via backup |
|
|
| Web worlds/backups tabs | Done | Upload, list, backup management |
|
|
| State machine | Done | BACKING_UP, RESTORING |
|
|
|
|
### Abnahmekriterium Phase 4
|
|
|
|
- [x] World backup to S3 (MinIO in dev)
|
|
- [x] World download (presigned URL)
|
|
- [x] World upload and replace (server stopped)
|
|
- [x] Backup restore with safety backup
|
|
- [x] Retention enforcement
|
|
- [x] Scheduled backups (interval-based)
|
|
- [ ] Manual E2E validation (requires Docker + agent + MinIO)
|
|
|
|
### Local vertical slice
|
|
|
|
```bash
|
|
pnpm dev:infra # includes MinIO on :9000
|
|
pnpm db:migrate
|
|
pnpm db:seed
|
|
pnpm dev
|
|
|
|
# Node Agent (Go + Docker)
|
|
cd apps/node-agent && make run
|
|
```
|
|
|
|
1. Stop server → **Welten** → `.tar.gz` hochladen
|
|
2. **Backups** → manuelles Backup erstellen → Download
|
|
3. Backup wiederherstellen (Server gestoppt)
|
|
4. Geplante Backups aktivieren
|
|
|
|
### Known limitations
|
|
|
|
- Upload expects gzip-compressed tar (`.tar.gz`) with world folder or `level.dat` at root.
|
|
- Restore/download require agent on node; worker orchestrates S3 transfer.
|
|
- Scheduled backups use simple `intervalHours` (no cron expressions yet).
|
|
- No server-side encryption of backups beyond MinIO/S3 transport (deferred).
|
|
|
|
---
|
|
|
|
## Phase 3 — Console, files, settings ✅
|
|
|
|
Live console, file manager, `server.properties`, player lists, audit.
|
|
|
|
---
|
|
|
|
## Phase 2 — Single-Node Vertical Slice ✅
|
|
|
|
Provisioning, start/stop, node agent, web panel.
|
|
|
|
---
|
|
|
|
## Phase 1 — Authentication ✅
|
|
|
|
---
|
|
|
|
## Phase 0 — Monorepo foundation ✅
|
|
|
|
### Next phase: Phase 5 — Software & add-ons
|
|
|
|
- Software catalog, Modrinth, mods/plugins/modpacks
|