Konzepte, Nutzen und typische Clone-Szenarien — weniger Code.
Konzepte, Nutzen und typische Clone-Szenarien — weniger Code.
Preparing Ring content
Preparing Ring content
Preparing Ring content
Nutze die Tabs Gründer / Entwickler in der Seitenleiste, um diese Seite zu filtern. Erledige zuerst die Voraussetzungen. Diese Anleitung entspricht dem Open-Source-Repo (connectplatform/ring) und dem Standard PostgreSQL als Primärdatenbank (DB_BACKEND_MODE=k8s-postgres-fcm).
Installiere Ring für die lokale Entwicklung auf deinem Rechner. Final-Split: Die Next.js-App liegt unter web/. Das install.sh im Repo-Root delegiert an web/, oder du führst ./install.sh direkt in ring/web aus.
| Weg | Am besten, wenn | Ergebnis |
|---|---|---|
Empfohlen: install.sh | Erster Klon, White-Label-Gerüst | Kopiert env.local.template → .env.local, legt ring-config.json an, falls es fehlt, erzeugt AUTH_SECRET und führt npm install aus |
| Manuell | Du verwaltest Env und Konfiguration bereits | Dieselben Dateien von Hand; jede Kopie und jedes Secret liegt bei dir |
Vollständige Installation mit Postgres als Primärdatenbank (beim ersten Mal): etwa 45–90 Minuten. ./install.sh --quick mit einer vorhandenen PostgreSQL-Instanz geht meist schneller. Schema und einen OAuth-Anbieter musst du trotzdem anwenden, bevor die Anmeldung sinnvoll funktioniert.
| Komponente | Geprüfter Einstieg |
|---|---|
| Framework | Next.js 16 App Router + React 19 |
| Authentifizierung | Auth.js v5 (auth.ts, AUTH_SECRET, OAuth-Anbieter) |
| Standard-Datenebene | PostgreSQL über DB_BACKEND_MODE=k8s-postgres-fcm (verpflichtendes Env, kein stiller Standardwert) |
| Entwicklungsserver | Eigener server.ts: Next.js + nativer WebSocket-Tunnel (/api/tunnel/ws) beim Self-Hosting |
| White-Label-Konfiguration | ring-config.json (Layer1 liefert eventuell schon Community-Standardwerte; der Installer legt die Datei nur aus der Vorlage an, wenn sie fehlt) |
| Installer | install.sh v2.2.0 (SCRIPT_VERSION), enthält |
Du setzt einen Entwicklungsklon auf, damit Stakeholder Branding, Authentifizierung und die zentralen Marketplace-Abläufe durchklicken können, bevor es ein Produktions-Hosting gibt.
Ja für Browsen + Auth.js + CRUD in Postgres, wenn DB_BACKEND_MODE=k8s-postgres-fcm gesetzt ist. Client- und Admin-Schlüssel von Firebase werden für FCM-Push gebraucht, nicht für das erste Laden der Startseite.
Nein. WayForPay / Stripe kommen später: nach dem Ersten Erfolg und vor Checkout-Demos.
Frische Installationen: Wende data/schema.sql an und danach die Inkremente für News/Zahlungen/E-Mail, wie unter Migrationen beschrieben. Wende das veraltete 001_email_crm_schema.sql nicht an.
Gleicher Datenbankname der App (ring_platform) und gleicher DB_*-Vertrag. Das Compose des Monorepos nutzt das Volume ringdom_postgres_data und Init-Skripte unter infrastructure/postgres/init/.
lsof -ti:3000 | xargs kill oder PORT=3001 npm run dev.
Prüfe AUTH_GOOGLE_*, die Weiterleitungs-URI http://localhost:3000/api/auth/callback/google und ein nicht leeres AUTH_SECRET.
Prüfe RING_DEPLOY_TARGET=self-hosted (und das öffentliche Gegenstück) für lokales WSS. Auf Vercel nutzt du vercel / nur SSE.
Mehr: Fehlerbehebung.
Voraussetzung: Node, Postgres und Ports vor dem Klonen prüfen.
Nächster Schritt: data/schema.sql und die Reihenfolge der Kingdom-Migrationen nach dem Env-Gerüst anwenden.
Nächster Schritt: Smoke-Test für Health, Authentifizierung und CRUD, sobald npm run dev läuft.
Vertiefung: zwischen k8s-postgres-fcm, supabase-fcm und firebase-full wählen.
Nutze die Tabs Gründer / Entwickler in der Seitenleiste, um diese Seite zu filtern. Erledige zuerst die Voraussetzungen. Diese Anleitung entspricht dem Open-Source-Repo (connectplatform/ring) und dem Standard PostgreSQL als Primärdatenbank (DB_BACKEND_MODE=k8s-postgres-fcm).
Installiere Ring für die lokale Entwicklung auf deinem Rechner. Final-Split: Die Next.js-App liegt unter web/. Das install.sh im Repo-Root delegiert an web/, oder du führst ./install.sh direkt in ring/web aus.
| Weg | Am besten, wenn | Ergebnis |
|---|---|---|
Empfohlen: install.sh | Erster Klon, White-Label-Gerüst | Kopiert env.local.template → .env.local, legt ring-config.json an, falls es fehlt, erzeugt AUTH_SECRET und führt npm install aus |
| Manuell | Du verwaltest Env und Konfiguration bereits | Dieselben Dateien von Hand; jede Kopie und jedes Secret liegt bei dir |
Vollständige Installation mit Postgres als Primärdatenbank (beim ersten Mal): etwa 45–90 Minuten. ./install.sh --quick mit einer vorhandenen PostgreSQL-Instanz geht meist schneller. Schema und einen OAuth-Anbieter musst du trotzdem anwenden, bevor die Anmeldung sinnvoll funktioniert.
| Komponente | Geprüfter Einstieg |
|---|---|
| Framework | Next.js 16 App Router + React 19 |
| Authentifizierung | Auth.js v5 (auth.ts, AUTH_SECRET, OAuth-Anbieter) |
| Standard-Datenebene | PostgreSQL über DB_BACKEND_MODE=k8s-postgres-fcm (verpflichtendes Env, kein stiller Standardwert) |
| Entwicklungsserver | Eigener server.ts: Next.js + nativer WebSocket-Tunnel (/api/tunnel/ws) beim Self-Hosting |
| White-Label-Konfiguration | ring-config.json (Layer1 liefert eventuell schon Community-Standardwerte; der Installer legt die Datei nur aus der Vorlage an, wenn sie fehlt) |
| Installer | install.sh v2.2.0 (SCRIPT_VERSION), enthält |
Du setzt einen Entwicklungsklon auf, damit Stakeholder Branding, Authentifizierung und die zentralen Marketplace-Abläufe durchklicken können, bevor es ein Produktions-Hosting gibt.
Ja für Browsen + Auth.js + CRUD in Postgres, wenn DB_BACKEND_MODE=k8s-postgres-fcm gesetzt ist. Client- und Admin-Schlüssel von Firebase werden für FCM-Push gebraucht, nicht für das erste Laden der Startseite.
Nein. WayForPay / Stripe kommen später: nach dem Ersten Erfolg und vor Checkout-Demos.
Frische Installationen: Wende data/schema.sql an und danach die Inkremente für News/Zahlungen/E-Mail, wie unter Migrationen beschrieben. Wende das veraltete 001_email_crm_schema.sql nicht an.
Gleicher Datenbankname der App (ring_platform) und gleicher DB_*-Vertrag. Das Compose des Monorepos nutzt das Volume ringdom_postgres_data und Init-Skripte unter infrastructure/postgres/init/.
lsof -ti:3000 | xargs kill oder PORT=3001 npm run dev.
Prüfe AUTH_GOOGLE_*, die Weiterleitungs-URI http://localhost:3000/api/auth/callback/google und ein nicht leeres AUTH_SECRET.
Prüfe RING_DEPLOY_TARGET=self-hosted (und das öffentliche Gegenstück) für lokales WSS. Auf Vercel nutzt du vercel / nur SSE.
Mehr: Fehlerbehebung.
Voraussetzung: Node, Postgres und Ports vor dem Klonen prüfen.
Nächster Schritt: data/schema.sql und die Reihenfolge der Kingdom-Migrationen nach dem Env-Gerüst anwenden.
Nächster Schritt: Smoke-Test für Health, Authentifizierung und CRUD, sobald npm run dev läuft.
Vertiefung: zwischen k8s-postgres-fcm, supabase-fcm und firebase-full wählen.
Nutze die Tabs Gründer / Entwickler in der Seitenleiste, um diese Seite zu filtern. Erledige zuerst die Voraussetzungen. Diese Anleitung entspricht dem Open-Source-Repo (connectplatform/ring) und dem Standard PostgreSQL als Primärdatenbank (DB_BACKEND_MODE=k8s-postgres-fcm).
Installiere Ring für die lokale Entwicklung auf deinem Rechner. Final-Split: Die Next.js-App liegt unter web/. Das install.sh im Repo-Root delegiert an web/, oder du führst ./install.sh direkt in ring/web aus.
| Weg | Am besten, wenn | Ergebnis |
|---|---|---|
Empfohlen: install.sh | Erster Klon, White-Label-Gerüst | Kopiert env.local.template → .env.local, legt ring-config.json an, falls es fehlt, erzeugt AUTH_SECRET und führt npm install aus |
| Manuell | Du verwaltest Env und Konfiguration bereits | Dieselben Dateien von Hand; jede Kopie und jedes Secret liegt bei dir |
Vollständige Installation mit Postgres als Primärdatenbank (beim ersten Mal): etwa 45–90 Minuten. ./install.sh --quick mit einer vorhandenen PostgreSQL-Instanz geht meist schneller. Schema und einen OAuth-Anbieter musst du trotzdem anwenden, bevor die Anmeldung sinnvoll funktioniert.
| Komponente | Geprüfter Einstieg |
|---|---|
| Framework | Next.js 16 App Router + React 19 |
| Authentifizierung | Auth.js v5 (auth.ts, AUTH_SECRET, OAuth-Anbieter) |
| Standard-Datenebene | PostgreSQL über DB_BACKEND_MODE=k8s-postgres-fcm (verpflichtendes Env, kein stiller Standardwert) |
| Entwicklungsserver | Eigener server.ts: Next.js + nativer WebSocket-Tunnel (/api/tunnel/ws) beim Self-Hosting |
| White-Label-Konfiguration | ring-config.json (Layer1 liefert eventuell schon Community-Standardwerte; der Installer legt die Datei nur aus der Vorlage an, wenn sie fehlt) |
| Installer | install.sh v2.2.0 (SCRIPT_VERSION), enthält |
Du setzt einen Entwicklungsklon auf, damit Stakeholder Branding, Authentifizierung und die zentralen Marketplace-Abläufe durchklicken können, bevor es ein Produktions-Hosting gibt.
Ja für Browsen + Auth.js + CRUD in Postgres, wenn DB_BACKEND_MODE=k8s-postgres-fcm gesetzt ist. Client- und Admin-Schlüssel von Firebase werden für FCM-Push gebraucht, nicht für das erste Laden der Startseite.
Nein. WayForPay / Stripe kommen später: nach dem Ersten Erfolg und vor Checkout-Demos.
Frische Installationen: Wende data/schema.sql an und danach die Inkremente für News/Zahlungen/E-Mail, wie unter Migrationen beschrieben. Wende das veraltete 001_email_crm_schema.sql nicht an.
Gleicher Datenbankname der App (ring_platform) und gleicher DB_*-Vertrag. Das Compose des Monorepos nutzt das Volume ringdom_postgres_data und Init-Skripte unter infrastructure/postgres/init/.
lsof -ti:3000 | xargs kill oder PORT=3001 npm run dev.
Prüfe AUTH_GOOGLE_*, die Weiterleitungs-URI http://localhost:3000/api/auth/callback/google und ein nicht leeres AUTH_SECRET.
Prüfe RING_DEPLOY_TARGET=self-hosted (und das öffentliche Gegenstück) für lokales WSS. Auf Vercel nutzt du vercel / nur SSE.
Mehr: Fehlerbehebung.
Voraussetzung: Node, Postgres und Ports vor dem Klonen prüfen.
Nächster Schritt: data/schema.sql und die Reihenfolge der Kingdom-Migrationen nach dem Env-Gerüst anwenden.
Nächster Schritt: Smoke-Test für Health, Authentifizierung und CRUD, sobald npm run dev läuft.
Vertiefung: zwischen k8s-postgres-fcm, supabase-fcm und firebase-full wählen.
setup-dbSmoke-Test-Checkliste nach npm run dev
| Szenario | Installationswahl | Fertig, wenn… |
|---|---|---|
| UI / Branding erkunden | ./install.sh --quick + Postgres (oder ein kurzer Prototyp mit firebase-full) | Die Startseite lädt ohne Adapterfehler |
| Lokal mit Produktionsparität | Postgres als Primärdatenbank + Migrationen | Authentifizierung und ein CRUD-Weg bestehen den Ersten Erfolg |
| Von Ringdom verwalteter Siedler | Das meiste hiervon überspringen | Der Cluster ist bereits bereitgestellt. Anpassung über ring-config / Ops, nicht über lokales Docker |
Zahlungen, FCM-Push und Web3-Wallets sind für den ersten Start nicht nötig. Ergänze sie vor dem Checkout oder vor Push in Produktion. Siehe Umgebung.
Nützliche Flags und Modi:
| Flag / Modus | Wirkung |
|---|---|
--quick | Nicht interaktive Standardwerte |
--clone-name NAME | White-Label-Slug in ring-config.json |
dev / prod | Expliziter Setup-Modus |
setup-db | Datenbank anlegen und data/schema.sql anwenden (zusammengeführte Referenz) |
--help | Vollständige Optionsliste |
.env.local ergänzenDie Vorlage wird automatisch kopiert. Der Installer erzeugt AUTH_SECRET, wenn openssl verfügbar ist. Setze vor dem ersten sinnvollen Start die Datenbank-Variablen und mindestens einen OAuth-Anbieter (siehe Umgebung konfigurieren).
Nutze die Tabs Docker / vorhandener Server / Ringdom-Monorepo unten oder:
Vollständige inkrementelle Reihenfolge: Datenbankmigrationen.
Für den Fall, dass du Env-Dateien oder den Paketmanager bereits selbst steuerst.
Bearbeite ring-config.json: clone.displayName, domains.development und features für deine White-Label-Instanz. Layer1 committet oft bereits ein Community-ring-config.json; überschreibe es nicht leichtfertig.
Lokale Entwicklung im Produktionsstil nutzt die Datenbank ring_platform mit dem Benutzer ring_user. Referenz für das App-Schema: data/schema.sql (v4-Familie, siehe die Zeilen in schema_versions im Dump).
DB_BACKEND_MODE ist verpflichtend (lib/database/backend-mode-config.ts). Die Plattform erwartet PostgreSQL, wenn der Wert k8s-postgres-fcm ist (Standard der Vorlage). Zur Reihenfolge siehe Datenbankmigrationen.
Eigenständiger Klon, kein Ringdom-Monorepo nötig:
Basisschema anwenden, danach die Kingdom-Inkremente (gekürzt; die vollständige Matrix steht auf der Seite zu den Migrationen):
001_email_crm_schema.sql ist veraltet. Nutze 009 + 010 mit JSONB. Idempotente Inkremente, die bereits in schema.sql eingeflossen sind, behandelt die Seite Migrationen.
Setze diese Werte in .env.local (aus env.local.template). Die gezeigten Werte sind auf lokale Entwicklung ausgerichtet. NEXT_PUBLIC_BASE_URL in der Vorlage zeigt eventuell standardmäßig auf das öffentliche Portal; überschreibe den Wert für localhost.
Anwendungsdaten in PostgreSQL; Firebase Admin wird nur für FCM-Push genutzt, wenn konfiguriert. Entspricht der Produktionsaufstellung von ring-platform.org.
Füge in der Google Cloud Console die autorisierte Weiterleitungs-URI hinzu:
http://localhost:3000/api/auth/callback/google
npm run dev führt node --import tsx server.ts aus. Setze auf Vercel RING_DEPLOY_TARGET=vercel für reines SSE (ohne natives WSS).
FCM-Schlüssel (AUTH_FIREBASE_*, NEXT_PUBLIC_FIREBASE_*) stehen in env.local.template und sind für Startseite und Authentifizierung mit Postgres als Primärdatenbank optional. Setze AUTH_FIREBASE_PRIVATE_KEY in Anführungszeichen mit literalen \\n; committe .env.local niemals.
Erwartet werden Logzeilen wie diese:
> Ready on http://localhost:3000 [self-hosted]
[server] Native WSS attached at /api/tunnel/ws (RING_DEPLOY_TARGET=self-hosted)Die erste Kompilierung kann einige Dutzend Sekunden dauern.
Öffne http://localhost:3000: Die Startseite wird über HomeWrapper (components/wrappers/home-wrapper.tsx) und die Sprachdateien unter locales/{en,uk,ru}/ gerendert.
Optional:
Struktur der Health-Antwort: app/api/health/route.ts. status ist healthy | degraded | unhealthy. Fehlendes AUTH_SECRET → degraded und HTTP 503.
Wenn die Startseite ohne Fehler des Datenbankadapters lädt, mach weiter mit der Validierung des ersten Erfolgs.
| Thema | Pfad |
|---|---|
| Installer | install.sh (Launcher im Root → web/install.sh) |
| Env-Vorlage | env.local.template |
| Backend-Modus | lib/database/backend-mode-config.ts |
| Schema-Referenz | data/schema.sql |
| Einstieg für die Entwicklung | package.json → server.ts |
| Tunnel-WSS | server.ts → /api/tunnel/ws |
| Health | app/api/health/route.ts |
Gleicher Ablauf: Projektstruktur und lokale Werkzeuge für den Alltag nach der Installation.
setup-dbSmoke-Test-Checkliste nach npm run dev
| Szenario | Installationswahl | Fertig, wenn… |
|---|---|---|
| UI / Branding erkunden | ./install.sh --quick + Postgres (oder ein kurzer Prototyp mit firebase-full) | Die Startseite lädt ohne Adapterfehler |
| Lokal mit Produktionsparität | Postgres als Primärdatenbank + Migrationen | Authentifizierung und ein CRUD-Weg bestehen den Ersten Erfolg |
| Von Ringdom verwalteter Siedler | Das meiste hiervon überspringen | Der Cluster ist bereits bereitgestellt. Anpassung über ring-config / Ops, nicht über lokales Docker |
Zahlungen, FCM-Push und Web3-Wallets sind für den ersten Start nicht nötig. Ergänze sie vor dem Checkout oder vor Push in Produktion. Siehe Umgebung.
Nützliche Flags und Modi:
| Flag / Modus | Wirkung |
|---|---|
--quick | Nicht interaktive Standardwerte |
--clone-name NAME | White-Label-Slug in ring-config.json |
dev / prod | Expliziter Setup-Modus |
setup-db | Datenbank anlegen und data/schema.sql anwenden (zusammengeführte Referenz) |
--help | Vollständige Optionsliste |
.env.local ergänzenDie Vorlage wird automatisch kopiert. Der Installer erzeugt AUTH_SECRET, wenn openssl verfügbar ist. Setze vor dem ersten sinnvollen Start die Datenbank-Variablen und mindestens einen OAuth-Anbieter (siehe Umgebung konfigurieren).
Nutze die Tabs Docker / vorhandener Server / Ringdom-Monorepo unten oder:
Vollständige inkrementelle Reihenfolge: Datenbankmigrationen.
Für den Fall, dass du Env-Dateien oder den Paketmanager bereits selbst steuerst.
Bearbeite ring-config.json: clone.displayName, domains.development und features für deine White-Label-Instanz. Layer1 committet oft bereits ein Community-ring-config.json; überschreibe es nicht leichtfertig.
Lokale Entwicklung im Produktionsstil nutzt die Datenbank ring_platform mit dem Benutzer ring_user. Referenz für das App-Schema: data/schema.sql (v4-Familie, siehe die Zeilen in schema_versions im Dump).
DB_BACKEND_MODE ist verpflichtend (lib/database/backend-mode-config.ts). Die Plattform erwartet PostgreSQL, wenn der Wert k8s-postgres-fcm ist (Standard der Vorlage). Zur Reihenfolge siehe Datenbankmigrationen.
Eigenständiger Klon, kein Ringdom-Monorepo nötig:
Basisschema anwenden, danach die Kingdom-Inkremente (gekürzt; die vollständige Matrix steht auf der Seite zu den Migrationen):
001_email_crm_schema.sql ist veraltet. Nutze 009 + 010 mit JSONB. Idempotente Inkremente, die bereits in schema.sql eingeflossen sind, behandelt die Seite Migrationen.
Setze diese Werte in .env.local (aus env.local.template). Die gezeigten Werte sind auf lokale Entwicklung ausgerichtet. NEXT_PUBLIC_BASE_URL in der Vorlage zeigt eventuell standardmäßig auf das öffentliche Portal; überschreibe den Wert für localhost.
Anwendungsdaten in PostgreSQL; Firebase Admin wird nur für FCM-Push genutzt, wenn konfiguriert. Entspricht der Produktionsaufstellung von ring-platform.org.
Füge in der Google Cloud Console die autorisierte Weiterleitungs-URI hinzu:
http://localhost:3000/api/auth/callback/google
npm run dev führt node --import tsx server.ts aus. Setze auf Vercel RING_DEPLOY_TARGET=vercel für reines SSE (ohne natives WSS).
FCM-Schlüssel (AUTH_FIREBASE_*, NEXT_PUBLIC_FIREBASE_*) stehen in env.local.template und sind für Startseite und Authentifizierung mit Postgres als Primärdatenbank optional. Setze AUTH_FIREBASE_PRIVATE_KEY in Anführungszeichen mit literalen \\n; committe .env.local niemals.
Erwartet werden Logzeilen wie diese:
> Ready on http://localhost:3000 [self-hosted]
[server] Native WSS attached at /api/tunnel/ws (RING_DEPLOY_TARGET=self-hosted)Die erste Kompilierung kann einige Dutzend Sekunden dauern.
Öffne http://localhost:3000: Die Startseite wird über HomeWrapper (components/wrappers/home-wrapper.tsx) und die Sprachdateien unter locales/{en,uk,ru}/ gerendert.
Optional:
Struktur der Health-Antwort: app/api/health/route.ts. status ist healthy | degraded | unhealthy. Fehlendes AUTH_SECRET → degraded und HTTP 503.
Wenn die Startseite ohne Fehler des Datenbankadapters lädt, mach weiter mit der Validierung des ersten Erfolgs.
| Thema | Pfad |
|---|---|
| Installer | install.sh (Launcher im Root → web/install.sh) |
| Env-Vorlage | env.local.template |
| Backend-Modus | lib/database/backend-mode-config.ts |
| Schema-Referenz | data/schema.sql |
| Einstieg für die Entwicklung | package.json → server.ts |
| Tunnel-WSS | server.ts → /api/tunnel/ws |
| Health | app/api/health/route.ts |
Gleicher Ablauf: Projektstruktur und lokale Werkzeuge für den Alltag nach der Installation.
setup-dbSmoke-Test-Checkliste nach npm run dev
| Szenario | Installationswahl | Fertig, wenn… |
|---|---|---|
| UI / Branding erkunden | ./install.sh --quick + Postgres (oder ein kurzer Prototyp mit firebase-full) | Die Startseite lädt ohne Adapterfehler |
| Lokal mit Produktionsparität | Postgres als Primärdatenbank + Migrationen | Authentifizierung und ein CRUD-Weg bestehen den Ersten Erfolg |
| Von Ringdom verwalteter Siedler | Das meiste hiervon überspringen | Der Cluster ist bereits bereitgestellt. Anpassung über ring-config / Ops, nicht über lokales Docker |
Zahlungen, FCM-Push und Web3-Wallets sind für den ersten Start nicht nötig. Ergänze sie vor dem Checkout oder vor Push in Produktion. Siehe Umgebung.
Nützliche Flags und Modi:
| Flag / Modus | Wirkung |
|---|---|
--quick | Nicht interaktive Standardwerte |
--clone-name NAME | White-Label-Slug in ring-config.json |
dev / prod | Expliziter Setup-Modus |
setup-db | Datenbank anlegen und data/schema.sql anwenden (zusammengeführte Referenz) |
--help | Vollständige Optionsliste |
.env.local ergänzenDie Vorlage wird automatisch kopiert. Der Installer erzeugt AUTH_SECRET, wenn openssl verfügbar ist. Setze vor dem ersten sinnvollen Start die Datenbank-Variablen und mindestens einen OAuth-Anbieter (siehe Umgebung konfigurieren).
Nutze die Tabs Docker / vorhandener Server / Ringdom-Monorepo unten oder:
Vollständige inkrementelle Reihenfolge: Datenbankmigrationen.
Für den Fall, dass du Env-Dateien oder den Paketmanager bereits selbst steuerst.
Bearbeite ring-config.json: clone.displayName, domains.development und features für deine White-Label-Instanz. Layer1 committet oft bereits ein Community-ring-config.json; überschreibe es nicht leichtfertig.
Lokale Entwicklung im Produktionsstil nutzt die Datenbank ring_platform mit dem Benutzer ring_user. Referenz für das App-Schema: data/schema.sql (v4-Familie, siehe die Zeilen in schema_versions im Dump).
DB_BACKEND_MODE ist verpflichtend (lib/database/backend-mode-config.ts). Die Plattform erwartet PostgreSQL, wenn der Wert k8s-postgres-fcm ist (Standard der Vorlage). Zur Reihenfolge siehe Datenbankmigrationen.
Eigenständiger Klon, kein Ringdom-Monorepo nötig:
Basisschema anwenden, danach die Kingdom-Inkremente (gekürzt; die vollständige Matrix steht auf der Seite zu den Migrationen):
001_email_crm_schema.sql ist veraltet. Nutze 009 + 010 mit JSONB. Idempotente Inkremente, die bereits in schema.sql eingeflossen sind, behandelt die Seite Migrationen.
Setze diese Werte in .env.local (aus env.local.template). Die gezeigten Werte sind auf lokale Entwicklung ausgerichtet. NEXT_PUBLIC_BASE_URL in der Vorlage zeigt eventuell standardmäßig auf das öffentliche Portal; überschreibe den Wert für localhost.
Anwendungsdaten in PostgreSQL; Firebase Admin wird nur für FCM-Push genutzt, wenn konfiguriert. Entspricht der Produktionsaufstellung von ring-platform.org.
Füge in der Google Cloud Console die autorisierte Weiterleitungs-URI hinzu:
http://localhost:3000/api/auth/callback/google
npm run dev führt node --import tsx server.ts aus. Setze auf Vercel RING_DEPLOY_TARGET=vercel für reines SSE (ohne natives WSS).
FCM-Schlüssel (AUTH_FIREBASE_*, NEXT_PUBLIC_FIREBASE_*) stehen in env.local.template und sind für Startseite und Authentifizierung mit Postgres als Primärdatenbank optional. Setze AUTH_FIREBASE_PRIVATE_KEY in Anführungszeichen mit literalen \\n; committe .env.local niemals.
Erwartet werden Logzeilen wie diese:
> Ready on http://localhost:3000 [self-hosted]
[server] Native WSS attached at /api/tunnel/ws (RING_DEPLOY_TARGET=self-hosted)Die erste Kompilierung kann einige Dutzend Sekunden dauern.
Öffne http://localhost:3000: Die Startseite wird über HomeWrapper (components/wrappers/home-wrapper.tsx) und die Sprachdateien unter locales/{en,uk,ru}/ gerendert.
Optional:
Struktur der Health-Antwort: app/api/health/route.ts. status ist healthy | degraded | unhealthy. Fehlendes AUTH_SECRET → degraded und HTTP 503.
Wenn die Startseite ohne Fehler des Datenbankadapters lädt, mach weiter mit der Validierung des ersten Erfolgs.
| Thema | Pfad |
|---|---|
| Installer | install.sh (Launcher im Root → web/install.sh) |
| Env-Vorlage | env.local.template |
| Backend-Modus | lib/database/backend-mode-config.ts |
| Schema-Referenz | data/schema.sql |
| Einstieg für die Entwicklung | package.json → server.ts |
| Tunnel-WSS | server.ts → /api/tunnel/ws |
| Health | app/api/health/route.ts |
Gleicher Ablauf: Projektstruktur und lokale Werkzeuge für den Alltag nach der Installation.