Phase0
This commit is contained in:
101
README.md
Normal file
101
README.md
Normal file
@@ -0,0 +1,101 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user