No description
Find a file
2026-03-07 20:25:45 +01:00
app Update 2026-03-07 19:59:04 +01:00
components Update 2026-03-07 19:59:04 +01:00
hooks update 2026-02-23 19:32:23 +01:00
lib Update 2026-03-07 20:25:45 +01:00
public update 2026-03-01 21:11:17 +01:00
scripts Update 2026-03-07 20:25:45 +01:00
styles 🎨 UI Redesign Phase 2: Professional Card Components 2026-03-05 16:35:08 +00:00
types Update 2026-03-03 23:50:22 +01:00
.dockerignore first commit 2026-02-22 20:56:41 +01:00
.env.example Update 2026-03-03 23:50:22 +01:00
.gitignore first commit 2026-02-22 20:56:41 +01:00
components.json first commit 2026-02-22 20:56:41 +01:00
docker-compose.yml update 2026-02-24 00:10:54 +01:00
Dockerfile first commit 2026-02-22 20:56:41 +01:00
eslint.config.mjs update 2026-02-23 19:32:23 +01:00
MAINTENANCE_REPORT.md 🔧 Maintenance: Fix security, TypeScript & ESLint errors 2026-03-05 12:58:27 +00:00
next-env.d.ts first commit 2026-02-22 20:56:41 +01:00
next.config.mjs Update 2026-03-04 00:10:46 +01:00
package.json Update 2026-03-03 23:50:22 +01:00
pnpm-lock.yaml Update 2026-03-03 23:50:22 +01:00
postcss.config.mjs first commit 2026-02-22 20:56:41 +01:00
README.md Update 2026-03-03 23:50:22 +01:00
REDESIGN_SUMMARY.md 📋 UI Redesign Summary: 2/3 pages completed 2026-03-05 16:45:04 +00:00
tsconfig.json Update 2026-03-03 23:50:22 +01:00
tsconfig.tsbuildinfo 🔧 Maintenance: Fix security, TypeScript & ESLint errors 2026-03-05 12:58:27 +00:00

Hosti - Instant Setup mit Docker

Voraussetzungen

  • Docker Desktop (inkl. Docker Compose)

1) Environment anlegen

cp .env.example .env

Dann in .env mindestens diese Werte setzen:

  • JWT_SECRET (lange zufaellige Zeichenkette)
  • PTERODACTYL_URL
  • PTERODACTYL_API_KEY
  • fuer FiveM: PTERODACTYL_FIVEM_NEST_ID, PTERODACTYL_FIVEM_EGG_ID
  • fuer Minecraft: PTERODACTYL_MINECRAFT_NODE_NAME, PTERODACTYL_MINECRAFT_NEST_ID
    • PTERODACTYL_MINECRAFT_EGG_PAPER_ID
    • PTERODACTYL_MINECRAFT_EGG_FORGE_ID
    • PTERODACTYL_MINECRAFT_EGG_VANILLA_ID
  • DATALIX_API_KEY (fuer KVM-Serververwaltung)
  • DATALIX_KVM_PACKET_ID
  • DATALIX_KVM_DEFAULT_OS_ID
  • DOMAINNAMEAPI_USERNAME (fuer Domain Registrierung/Verwaltung)
  • DOMAINNAMEAPI_PASSWORD
  • optional: DOMAINNAMEAPI_TEST_MODE=true
  • Optional fuer Reseller-Interface-Zuordnung:
    • DATALIX_RESELLER_INTERFACE_ID
    • DATALIX_RESELLER_INTERFACE_USER_ID (wenn leer, wird per E-Mail in der Interface-User-Liste gesucht und bei Bedarf erstellt)

POSTGRES_* und APP_PORT sind bereits mit Standardwerten vorbelegt.

2) App starten (Build + DB + Init)

docker compose up -d --build

Danach ist die App unter:

  • http://localhost:3000 (oder dein APP_PORT)

3) Logs ansehen

docker compose logs -f app
docker compose logs -f db

4) Stoppen

docker compose down

Datenbank-Setup (automatisch)

Beim ersten Start wird die Datenbank automatisch initialisiert:

  • scripts/001-create-tables.sql wird von Postgres beim Erststart ausgefuehrt.
  • Die Tabellen werden dadurch automatisch erstellt.

Wichtig:

  • Das SQL-Init laeuft nur beim ersten Anlegen des DB-Volumes.

DB komplett neu initialisieren:

docker compose down -v
docker compose up -d --build

Update/Neu-Build

docker compose up -d --build

Neue Features (Payments/Billing)

  • SumUp + VyPay mit Provider-Auswahl im Dashboard
  • Wallet/Guthaben:
    • Aufladen nur per SumUp
    • expliziter Widerrufsverzicht bei Aufladung
    • optionale Zahlung von Bestellungen per Guthaben
    • Zahlungsarten-Modal im Dashboard: VyPay / SumUp / Guthaben
  • Webhooks:
    • POST /api/webhooks/sumup
    • POST /api/webhooks/vypay
  • Provisioning Queue:
    • User-Flow legt Jobs in provision_jobs
    • Worker-Endpoint: POST /api/internal/provision/process mit x-internal-token
  • Rechnungen:
    • Download: GET /api/orders/:id/invoice (HTML-Rechnung)
    • Monatsabrechnung mit Abrechnungszeitraum und naechster Faelligkeit (next_payment_due_at)
    • Auto-Mail (optional) via Resend
  • Provisioning:
    • FiveM reserviert automatisch eine zusaetzliche txAdmin-Allocation inkl. TXADMIN_PORT
    • Minecraft unterstuetzt Vanilla, Paper, Forge plus freie Versionswahl im Provisioning-Dialog

Preislogik

  • Plaene haben ein automatisches Preis-Flooring auf Basis von Kosten + Mindestmarge.
  • Optional in .env steuerbar:
    • PRICING_MIN_MARGIN_CENTS
    • PRICING_MIN_MARGIN_PERCENT
    • plan-spezifische Overrides wie PLAN_MC_STARTER_COST_CENTS oder PLAN_MC_STARTER_PRICE_CENTS

Manuelle Migration fuer bestehende DB

Bei bestehendem Volume zusaetzlich ausfuehren:

  • scripts/003-add-sumup-payments.sql
  • scripts/004-add-billing-events-invoices-queue.sql
  • scripts/005-add-monthly-billing-and-txadmin-allocation.sql
  • scripts/006-add-datalix-kvm-support.sql
  • scripts/007-add-wallet-balance-topups.sql
  • scripts/009-add-domain-management.sql