Phase5
Some checks failed
CI / Node — lint, typecheck, test, build (push) Failing after 9s
CI / Go — node-agent tests (push) Failing after 9s
CI / Go — edge-gateway build (push) Successful in 13s

This commit is contained in:
smueller
2026-06-26 13:00:01 +02:00
parent 4262464cd5
commit d29a02f2a4
93 changed files with 1875 additions and 55 deletions

View File

@@ -2,68 +2,59 @@
Last updated: 2026-06-26
## Current phase: Phase 4Worlds & backups ✅
## Current phase: Phase 5Software & add-ons ✅
### Phase 4 completed
### Phase 5 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 |
| Prisma InstalledAddon | Done | Plugin/mod install tracking |
| `@hexahost/catalog` | Done | Modrinth API + compatibility checks |
| `@hexahost/contracts` phase 5 | Done | catalog, addons schemas |
| Go agent v0.5 | Done | addon.install/remove with SHA512 verify |
| Worker server-addons queue | Done | install-addon, remove-addon jobs |
| API CatalogModule | Done | Modrinth search + versions |
| API AddonsModule | Done | Install/remove with audit |
| Web add-ons tab | Done | Search, install, list, remove |
| Docker FABRIC/PURPUR | Done | Extended TYPE mapping for itzg image |
### Abnahmekriterium Phase 4
### Abnahmekriterium Phase 5
- [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)
- [x] Modrinth catalog search with loader + game version facets
- [x] Compatibility check before install
- [x] Paper plugin → `plugins/` directory
- [x] Fabric mod → `mods/` directory
- [x] SHA512 verification on agent
- [x] Install/remove only when server STOPPED
- [ ] Manual E2E (Paper + Fabric server with agent)
### Local vertical slice
### Local test
```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
1. Create **Paper** server → stop → **Add-ons** → search plugin (e.g. LuckPerms) → install
2. Create **Fabric** server → stop → install compatible mod
3. Start server and verify JAR in container
### 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).
- Modpacks/datapacks UI deferred
- No automatic update/rollback yet (metadata stored for future)
- CurseForge not integrated
- Server must be reprovisioned to change software family (existing flow)
---
## Phase 4 — Worlds & backups ✅
S3 backups, world upload/download, restore, retention, schedules.
---
## 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 ✅
@@ -72,6 +63,6 @@ Provisioning, start/stop, node agent, web panel.
## Phase 0 — Monorepo foundation ✅
### Next phase: Phase 5Software & add-ons
### Next phase: Phase 6Multi-Node and queue
- Software catalog, Modrinth, mods/plugins/modpacks
- Scheduler, resource reservation, start queue, drain