Phase5
This commit is contained in:
@@ -2,68 +2,59 @@
|
||||
|
||||
Last updated: 2026-06-26
|
||||
|
||||
## Current phase: Phase 4 — Worlds & backups ✅
|
||||
## Current phase: Phase 5 — Software & 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 5 — Software & add-ons
|
||||
### Next phase: Phase 6 — Multi-Node and queue
|
||||
|
||||
- Software catalog, Modrinth, mods/plugins/modpacks
|
||||
- Scheduler, resource reservation, start queue, drain
|
||||
|
||||
Reference in New Issue
Block a user