102 lines
2.3 KiB
Markdown
102 lines
2.3 KiB
Markdown
# 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.
|