Skip to main content
So bringst du die Workspace-Anwendung lokal oder auf eigener Infrastruktur zum Laufen.

Voraussetzungen

Du brauchst Accounts für die folgenden Dienste — alle haben kostenlose Tarife.

Erforderlich

Clerk

Authentifizierung. Erstelle eine Application, aktiviere E-Mail/Passwort-Login und kopiere die API-Keys.

Supabase

Datenbank (Postgres + Row Level Security). Du brauchst URL, Anon-Key und Service-Role-Key.

Liveblocks

Echtzeit für Docs. Erstelle ein Projekt und kopiere Public- und Secret-Key.
CLERK_JWT_KEY_BASE64 verifiziert Clerk-JWTs in den Supabase-RLS-Policies. Siehe den Clerk + Supabase Guide.

Optional

  • Dub — Link-Shortening. Registriere eine OAuth-App unter app.dub.co/oauth mit Redirect-URI https://deine-domain.de/api/integrations/dub/callback. Jeder Workspace verbindet sein eigenes Dub-Konto per OAuth — kein globaler API-Key nötig.
  • Cloudflare R2 / S3-kompatibler Speicher — für Drive. Optional als globaler Fallback-Bucket per Env-Vars, oder pro Workspace via BYOK in den Einstellungen. Mehr dazu →

Environment-Variablen

Kopiere .env.example zu .env.local und fülle deine Werte ein.
# ── Auth (Clerk) ──────────────────────────────────────────────
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_...
CLERK_SECRET_KEY=sk_...
CLERK_JWT_KEY_BASE64=            # base64-kodierter PEM-Public-Key für Supabase RLS

# ── Datenbank (Supabase) ──────────────────────────────────────
SUPABASE_URL=https://xxx.supabase.co
SUPABASE_ANON_KEY=
SUPABASE_SERVICE_ROLE_KEY=
ENCRYPTION_KEY=                  # 32-Byte Hex-String — verschlüsselt BYOK-Credentials

# ── Echtzeit (Liveblocks) ─────────────────────────────────────
NEXT_PUBLIC_LIVEBLOCKS_PUBLIC_KEY=pk_...
LIVEBLOCKS_SECRET_KEY=sk_...

# ── Link-Shortening (Dub — optional) ──────────────────────────
DUB_CLIENT_ID=
DUB_CLIENT_SECRET=

# ── Drive Fallback-Storage (optional — sonst BYOK pro Workspace) ──
R2_ACCOUNT_ID=
R2_ACCESS_KEY_ID=
R2_SECRET_ACCESS_KEY=
R2_BUCKET_NAME=
R2_PUBLIC_BASE_URL=

# ── Branding ──────────────────────────────────────────────────
NEXT_PUBLIC_BRAND_NAME=plattform

# ── App-URL ───────────────────────────────────────────────────
NEXT_PUBLIC_APP_URL=http://localhost:3000
Den ENCRYPTION_KEY generierst du mit:
openssl rand -hex 32
Der ENCRYPTION_KEY verschlüsselt die BYOK-Credentials deiner Workspaces (AES-256-GCM). Ändere ihn nach dem ersten Speichern nicht mehr — sonst sind gespeicherte Credentials nicht mehr lesbar.

Installation

1

Repository klonen

git clone https://github.com/oxom-de/plattform.git
cd plattform
2

Abhängigkeiten installieren

pnpm install
3

Environment einrichten

cp .env.example .env.local
# → Werte eintragen
4

Datenbank-Migrationen anwenden

Wende die SQL-Dateien aus supabase/migrations/ auf dein Supabase-Projekt an.
5

Dev-Server starten

pnpm dev
Die App läuft auf http://localhost:3000.

Nächste Schritte

Last modified on June 25, 2026