# HexaHost GameCloud Selbstgehostete, mandantenfähige Plattform für On-Demand-Minecraft-Server. Der Projektname **HexaHost GameCloud** ist ein Arbeitstitel und zentral über `APP_NAME` / `NEXT_PUBLIC_APP_NAME` konfigurierbar. ## Voraussetzungen | Tool | Version | |------|---------| | Node.js | ≥ 22 | | pnpm | 9.15.x (`corepack enable`) | | Docker | für lokale Infrastruktur | | Go | 1.23+ (Node Agent) | ## Schnellstart (lokal) ```bash # Abhängigkeiten installieren corepack enable pnpm install # Umgebung vorbereiten cp .env.example .env # SESSION_SECRET und ENCRYPTION_KEY auf mindestens 32 Zeichen setzen # Infrastruktur (PostgreSQL, Redis, MinIO, Mailpit) pnpm dev:infra # Datenbankschema anwenden pnpm db:push # Entwicklungsserver (API, Worker, Web parallel) pnpm dev ``` ### Dienste (Entwicklung) | Dienst | URL | |--------|-----| | Web | http://localhost:3000 | | API | http://localhost:3001/api/v1 | | OpenAPI | http://localhost:3001/api/v1/docs | | Worker Health | http://localhost:3002/health | | Mailpit | http://localhost:8025 | | MinIO Console | http://localhost:9001 | Optional für Docker Compose mit Traefik-Netzwerk: ```bash docker network create traefik-network ``` ## Monorepo-Struktur ```text apps/ web/ Next.js Weboberfläche api/ NestJS API (Fastify) worker/ BullMQ Hintergrundjobs node-agent/ Go-Daemon auf Game-Nodes edge-gateway/ Go TCP/UDP Gateway (Phase 8) packages/ database/ Prisma Schema & Client contracts/ Zod-Schemas & API-Verträge config/ Typisierte Konfiguration auth/ Authentifizierungslogik ui/ Gemeinsame UI-Komponenten deploy/ Docker Compose, systemd, Ansible docs/ Architektur, ADR, Betrieb integrations/ WHMCS-Module (später) ``` ## Befehle ```bash pnpm build # Alle Pakete bauen pnpm lint # Linting pnpm typecheck # TypeScript-Prüfung pnpm test # Unit-Tests pnpm db:generate # Prisma Client generieren pnpm db:migrate # Migrationen ausführen ``` Go Node Agent: ```bash cd apps/node-agent make test make build ``` ## Aktueller Stand **Phase 0** (Repository & Grundlagen) — abgeschlossen. Siehe [docs/IMPLEMENTATION_STATUS.md](docs/IMPLEMENTATION_STATUS.md) für Details und nächste Schritte. ## Lizenz Proprietär — siehe Repository-Eigentümer.