OpportunitiesEntities
Docs
    Ring Platform

    Dezentralisierte selbstbauende Zukunft

    Anmelden
    Entities
    Opportunities
    Store
    Docs
    Plattformkonzepte
    RING ÖkonomieSonoratek LLCGlobaler ImpactKI trifft Web3
    Loslegen
    SchnellstartKalkulatorRoadmap
    Datenschutz|Kontakt
    v1.104.26|Sonoratek LLC

    Documentation

    Konzepte, Nutzen und typische Clone-Szenarien — weniger Code.

    Erste Schritte
    Voraussetzungen
    Installation
    Validierung des ersten Erfolgs
    Nächste Schritte
    Funktionen
    Mitglieder-Blogs
    Anpassung
    Ringization playbook
    Deployment
    Selbst gehostetes Deployment
    Architektur
    News-Kingdom-Architektur
    Entwicklung
    OSS und Enterprise

    Schnelleinstieg (CTOs · Auditoren · Agenten)

    Willkommen — Mission & Zielgruppen
    Schnellreferenz
    Erste Schritte
    Architektur & Auth.js
    Backend-Modi & Datenbanken (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP Tools
    Ring MCP Server
    Token economics
    Token launch jurisdictions
    Deploy (Docker · k8s)
    Sicherheit & Compliance
    ringdom.org — LegioX-Homebase
    Quellcode — MIT-Lizenz (GitHub)

    Documentation

    Konzepte, Nutzen und typische Clone-Szenarien — weniger Code.

    Erste Schritte
    Voraussetzungen
    Installation
    Validierung des ersten Erfolgs
    Nächste Schritte
    Funktionen
    Mitglieder-Blogs
    Anpassung
    Ringization playbook
    Deployment
    Selbst gehostetes Deployment
    Architektur
    News-Kingdom-Architektur
    Entwicklung
    OSS und Enterprise

    Schnelleinstieg (CTOs · Auditoren · Agenten)

    Willkommen — Mission & Zielgruppen
    Schnellreferenz
    Erste Schritte
    Architektur & Auth.js
    Backend-Modi & Datenbanken (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP Tools
    Ring MCP Server
    Token economics
    Token launch jurisdictions
    Deploy (Docker · k8s)
    Sicherheit & Compliance
    ringdom.org — LegioX-Homebase
    Quellcode — MIT-Lizenz (GitHub)

    Documentation

    Konzepte, Nutzen und typische Clone-Szenarien — weniger Code.

    Erste Schritte
    Voraussetzungen
    Installation
    Validierung des ersten Erfolgs
    Nächste Schritte
    Funktionen
    Mitglieder-Blogs
    Anpassung
    Ringization playbook
    Deployment
    Selbst gehostetes Deployment
    Architektur
    News-Kingdom-Architektur
    Entwicklung
    OSS und Enterprise

    Schnelleinstieg (CTOs · Auditoren · Agenten)

    Willkommen — Mission & Zielgruppen
    Schnellreferenz
    Erste Schritte
    Architektur & Auth.js
    Backend-Modi & Datenbanken (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP Tools
    Ring MCP Server
    Token economics
    Token launch jurisdictions
    Deploy (Docker · k8s)
    Sicherheit & Compliance
    ringdom.org — LegioX-Homebase
    Quellcode — MIT-Lizenz (GitHub)
    Ring Logo

    Loading documentation...

    Preparing Ring content

    Ring Logo

    Loading documentation...

    Preparing Ring content

    Ring Logo

    Loading documentation...

    Preparing Ring content

    Validierung des ersten Erfolgs

    Fertig, wenn: npm run dev Seiten ausliefert, GET /api/health healthy meldet (oder du AUTH_SECRET korrigiert hast), eine Auth.js-Anmeldung eine Sitzung herstellt und ein authentifizierter CRUD-Weg funktioniert (Entitäten oder Opportunities). Tunnel ready und der Smoke-Test für Mitgliedschaften über PaymentConductor sind erweitert: Sie blockieren das Branding am ersten Tag nicht.

    Filtere mit Gründer / Entwickler in der Seitenleiste. Führe das nach der Installation und den Migrationen aus. Die Kernprüfungen sind ein kurzer Durchgang im Browser. Zahlungen brauchen das PSP-Env + 004_payment_transactions, bevor du den Checkout als grün betrachtest.

    Erster Erfolg bedeutet: Der eigene server.ts / die Next-App liefert Seiten aus, Auth.js v5 kann eine Sitzung herstellen, DatabaseService liest und schreibt ohne Adapter-Abstürze, und die zentralen Marketplace-Routen laden. Am ersten Tag sind WayForPay, Stripe, PayPal, FCM oder eine Wallet-Verbindung nicht erforderlich.

    StufeWas funktionieren mussGut genug, um…
    KernStartseite + /api/health + Anmeldung über einen Anbieter + ein CRUD-WegBranding anpassen, Tester einladen
    ErweitertGET /api/tunnel/test → status: ready; UI für Entitäten + OpportunitiesEchtzeit / Discovery vorführen
    Optionale ZahlungMitgliedschaft starten → Weiterleitung durch PaymentConductor oder Abrechnung über GuthabenSandbox-Checkout / Probe eines Rollen-Upgrades

    Empfohlener Weg

    Nutze das LegioX-MCP legiox-env-validator (oder frag den Agenten mit dem Prompt unten), bevor du UI-Fehlern nachjagst. Es meldet fehlende Env-Werte. Es ändert keine .env, startet keine Prozesse neu und ruft keine PSPs auf, bis du zustimmst.

    Start-Prompt:

    Prüfe diesen Klon für den Smoke-Test des ersten Erfolgs: AUTH_SECRET, DB_BACKEND_MODE / Postgres-DB_* und optional WAYFORPAY_* / STRIPE_* / PAYPAL_*. Liste fehlende Variablen und die Checkliste Kern gegenüber Optionale Zahlung aus /docs/getting-started/first-success auf. Schreibe keine Secrets und starte den Server nicht neu, bis ich zustimme.

    Checkliste der Eingaben

    • Arbeitsbaum nach Installation + Migrationen
    • .env.local aus env.local.template (oder ein eingebundenes k8s-Secret)
    • Browser auf http://localhost:3000 (oder deiner konfigurierten Site-URL)
    • Optional: Sandbox-Zugangsdaten für WayForPay / Stripe / PayPal

    Manueller Weg

    Warum das für deinen Klon wichtig ist

    Geh vor Demos für Stakeholder den Happy Path eines Mitglieds selbst durch:

    Auf der Startseite landen

    Kein leerer Bildschirm und kein Absturz des Datenbankadapters im Terminal.

    Registrieren / anmelden

    Google, Apple oder Ring Mailer, je nachdem, was du konfiguriert hast (SMTP oder Ethereal).

    Eine Entität anlegen

    Belegt JSONB-Schreibzugriffe in Postgres und die Rollenprüfungen.

    Mitgliedschafts-Checkout (optional)

    Implementierungsübersicht

    ThemaGeprüfter Pfad
    Healthapp/api/health/route.ts
    Auth-Anbieterauth.ts (Google, Apple, Ring-Mailer-Credentials, One Tap, Wallet)
    Mitgliedschaft startenapp/_actions/membership-payment.ts → PaymentConductor.createCheckout
    Conductorlib/payments/conductor/payment-conductor.ts
    Webhooksapp/api/payments/{wayforpay|stripe|paypal}/webhook/route.ts
    Tunnel-Testapp/api/tunnel/test/route.ts (status: 'ready' bei Erfolg)
    Wallet-Guthaben (optional)GET /api/wallet/balance → { balance } oder 401 /

    Zusammenfassung der Checkliste

    PrüfungBestanden?
    npm run dev startet ohne Absturz des Datenbankadapters☐
    GET /api/health → healthy (oder AUTH_SECRET korrigiert)☐
    Anmeldung über einen Auth.js-Anbieter funktioniert☐
    Entität anlegen/auflisten oder Liste der Opportunities funktioniert in der UI☐
    GET /api/tunnel/test → status: ready☐
    Optional: Start der Mitgliedschaft liefert Weiterleitung / Erfolg über Guthaben☐

    Häufige Fragen

    Auswirkungen

    Funktioniert mein Klon ohne Zahlungen?

    Ja. Der erste Erfolg im Kern besteht aus Authentifizierung + Datenweg. PaymentConductor ist optional, bis du bezahlte Mitgliedschaften oder den Shop-Checkout vorführst.

    Bedeutet Tunnel ready, dass SSE live ist?

    Nein. /api/tunnel/test bestätigt Konfiguration und Anbietererkennung. Live-Streams brauchen einen angemeldeten Client, der /api/tunnel/sse (oder deinen konfigurierten Anbieter) aufruft.

    Migration

    Brauche ich 004_payment_transactions für den Kern?

    Nein. Wende sie vor dem Smoke-Test für Optionale Zahlung an, damit das Ledger Mitgliedschafts- und Shop-Intents erfassen kann.

    Prototyp nur mit Firebase?

    firebase-full kann bei einem Prototyp Startseite + Authentifizierung bestehen, aber die Tiefe von PaymentConductor und die ERP-/News-Funktionen setzen Postgres als Primärdatenbank voraus (k8s-postgres-fcm / supabase-fcm). Siehe Datenbankauswahl.

    Betrieb

    Health liefert 503 mit degraded: Ist die App ausgefallen?

    Der Prozess läuft. Ein fehlendes AUTH_SECRET (Postgres-Weg) oder fehlende kritische Firebase-Variablen verschlechtern den Status. Setze die Secrets, starte neu und wiederhole den curl.

    Wallet-Guthaben 404?

    GET /api/wallet/balance liefert 404, wenn noch keine Wallet-Zeile existiert. Das ist kein Fehler im Kern. Lege die Wallet nach der Authentifizierung über die Wallet-Abläufe an oder lade sie auf.

    Verwandte Dokumentation

    Related documentation

    Installation

    Voraussetzung: Installation und Env vor dieser Smoke-Checkliste.

    Database Migrations

    Voraussetzung: Schema + 004_payment_transactions vor dem Smoke-Test von PaymentConductor.

    Authentication

    Vertiefung: Auth.js-Anbieter und Sitzungsstruktur, sobald die Registrierung funktioniert.

    PaymentConductor

    Nächster Schritt: Rails, Ledger und Webhooks, nachdem der Start der Mitgliedschaft funktioniert.

    1. Docs
    2. /Erste Schritte
    3. /Validierung des ersten Erfolgs

    Aktualisiert 14. Okt. 20267 Min. Anhören

    Validierung des ersten Erfolgs

    Fertig, wenn: npm run dev Seiten ausliefert, GET /api/health healthy meldet (oder du AUTH_SECRET korrigiert hast), eine Auth.js-Anmeldung eine Sitzung herstellt und ein authentifizierter CRUD-Weg funktioniert (Entitäten oder Opportunities). Tunnel ready und der Smoke-Test für Mitgliedschaften über PaymentConductor sind erweitert: Sie blockieren das Branding am ersten Tag nicht.

    Filtere mit Gründer / Entwickler in der Seitenleiste. Führe das nach der Installation und den Migrationen aus. Die Kernprüfungen sind ein kurzer Durchgang im Browser. Zahlungen brauchen das PSP-Env + 004_payment_transactions, bevor du den Checkout als grün betrachtest.

    Erster Erfolg bedeutet: Der eigene server.ts / die Next-App liefert Seiten aus, Auth.js v5 kann eine Sitzung herstellen, DatabaseService liest und schreibt ohne Adapter-Abstürze, und die zentralen Marketplace-Routen laden. Am ersten Tag sind WayForPay, Stripe, PayPal, FCM oder eine Wallet-Verbindung nicht erforderlich.

    StufeWas funktionieren mussGut genug, um…
    KernStartseite + /api/health + Anmeldung über einen Anbieter + ein CRUD-WegBranding anpassen, Tester einladen
    ErweitertGET /api/tunnel/test → status: ready; UI für Entitäten + OpportunitiesEchtzeit / Discovery vorführen
    Optionale ZahlungMitgliedschaft starten → Weiterleitung durch PaymentConductor oder Abrechnung über GuthabenSandbox-Checkout / Probe eines Rollen-Upgrades

    Empfohlener Weg

    Nutze das LegioX-MCP legiox-env-validator (oder frag den Agenten mit dem Prompt unten), bevor du UI-Fehlern nachjagst. Es meldet fehlende Env-Werte. Es ändert keine .env, startet keine Prozesse neu und ruft keine PSPs auf, bis du zustimmst.

    Start-Prompt:

    Prüfe diesen Klon für den Smoke-Test des ersten Erfolgs: AUTH_SECRET, DB_BACKEND_MODE / Postgres-DB_* und optional WAYFORPAY_* / STRIPE_* / PAYPAL_*. Liste fehlende Variablen und die Checkliste Kern gegenüber Optionale Zahlung aus /docs/getting-started/first-success auf. Schreibe keine Secrets und starte den Server nicht neu, bis ich zustimme.

    Checkliste der Eingaben

    • Arbeitsbaum nach Installation + Migrationen
    • .env.local aus env.local.template (oder ein eingebundenes k8s-Secret)
    • Browser auf http://localhost:3000 (oder deiner konfigurierten Site-URL)
    • Optional: Sandbox-Zugangsdaten für WayForPay / Stripe / PayPal

    Manueller Weg

    Warum das für deinen Klon wichtig ist

    Geh vor Demos für Stakeholder den Happy Path eines Mitglieds selbst durch:

    Auf der Startseite landen

    Kein leerer Bildschirm und kein Absturz des Datenbankadapters im Terminal.

    Registrieren / anmelden

    Google, Apple oder Ring Mailer, je nachdem, was du konfiguriert hast (SMTP oder Ethereal).

    Eine Entität anlegen

    Belegt JSONB-Schreibzugriffe in Postgres und die Rollenprüfungen.

    Mitgliedschafts-Checkout (optional)

    Implementierungsübersicht

    ThemaGeprüfter Pfad
    Healthapp/api/health/route.ts
    Auth-Anbieterauth.ts (Google, Apple, Ring-Mailer-Credentials, One Tap, Wallet)
    Mitgliedschaft startenapp/_actions/membership-payment.ts → PaymentConductor.createCheckout
    Conductorlib/payments/conductor/payment-conductor.ts
    Webhooksapp/api/payments/{wayforpay|stripe|paypal}/webhook/route.ts
    Tunnel-Testapp/api/tunnel/test/route.ts (status: 'ready' bei Erfolg)
    Wallet-Guthaben (optional)GET /api/wallet/balance → { balance } oder 401 /

    Zusammenfassung der Checkliste

    PrüfungBestanden?
    npm run dev startet ohne Absturz des Datenbankadapters☐
    GET /api/health → healthy (oder AUTH_SECRET korrigiert)☐
    Anmeldung über einen Auth.js-Anbieter funktioniert☐
    Entität anlegen/auflisten oder Liste der Opportunities funktioniert in der UI☐
    GET /api/tunnel/test → status: ready☐
    Optional: Start der Mitgliedschaft liefert Weiterleitung / Erfolg über Guthaben☐

    Häufige Fragen

    Auswirkungen

    Funktioniert mein Klon ohne Zahlungen?

    Ja. Der erste Erfolg im Kern besteht aus Authentifizierung + Datenweg. PaymentConductor ist optional, bis du bezahlte Mitgliedschaften oder den Shop-Checkout vorführst.

    Bedeutet Tunnel ready, dass SSE live ist?

    Nein. /api/tunnel/test bestätigt Konfiguration und Anbietererkennung. Live-Streams brauchen einen angemeldeten Client, der /api/tunnel/sse (oder deinen konfigurierten Anbieter) aufruft.

    Migration

    Brauche ich 004_payment_transactions für den Kern?

    Nein. Wende sie vor dem Smoke-Test für Optionale Zahlung an, damit das Ledger Mitgliedschafts- und Shop-Intents erfassen kann.

    Prototyp nur mit Firebase?

    firebase-full kann bei einem Prototyp Startseite + Authentifizierung bestehen, aber die Tiefe von PaymentConductor und die ERP-/News-Funktionen setzen Postgres als Primärdatenbank voraus (k8s-postgres-fcm / supabase-fcm). Siehe Datenbankauswahl.

    Betrieb

    Health liefert 503 mit degraded: Ist die App ausgefallen?

    Der Prozess läuft. Ein fehlendes AUTH_SECRET (Postgres-Weg) oder fehlende kritische Firebase-Variablen verschlechtern den Status. Setze die Secrets, starte neu und wiederhole den curl.

    Wallet-Guthaben 404?

    GET /api/wallet/balance liefert 404, wenn noch keine Wallet-Zeile existiert. Das ist kein Fehler im Kern. Lege die Wallet nach der Authentifizierung über die Wallet-Abläufe an oder lade sie auf.

    Verwandte Dokumentation

    Related documentation

    Installation

    Voraussetzung: Installation und Env vor dieser Smoke-Checkliste.

    Database Migrations

    Voraussetzung: Schema + 004_payment_transactions vor dem Smoke-Test von PaymentConductor.

    Authentication

    Vertiefung: Auth.js-Anbieter und Sitzungsstruktur, sobald die Registrierung funktioniert.

    PaymentConductor

    Nächster Schritt: Rails, Ledger und Webhooks, nachdem der Start der Mitgliedschaft funktioniert.

    1. Docs
    2. /Erste Schritte
    3. /Validierung des ersten Erfolgs

    Aktualisiert 14. Okt. 20267 Min. Anhören

    Validierung des ersten Erfolgs

    Fertig, wenn: npm run dev Seiten ausliefert, GET /api/health healthy meldet (oder du AUTH_SECRET korrigiert hast), eine Auth.js-Anmeldung eine Sitzung herstellt und ein authentifizierter CRUD-Weg funktioniert (Entitäten oder Opportunities). Tunnel ready und der Smoke-Test für Mitgliedschaften über PaymentConductor sind erweitert: Sie blockieren das Branding am ersten Tag nicht.

    Filtere mit Gründer / Entwickler in der Seitenleiste. Führe das nach der Installation und den Migrationen aus. Die Kernprüfungen sind ein kurzer Durchgang im Browser. Zahlungen brauchen das PSP-Env + 004_payment_transactions, bevor du den Checkout als grün betrachtest.

    Erster Erfolg bedeutet: Der eigene server.ts / die Next-App liefert Seiten aus, Auth.js v5 kann eine Sitzung herstellen, DatabaseService liest und schreibt ohne Adapter-Abstürze, und die zentralen Marketplace-Routen laden. Am ersten Tag sind WayForPay, Stripe, PayPal, FCM oder eine Wallet-Verbindung nicht erforderlich.

    StufeWas funktionieren mussGut genug, um…
    KernStartseite + /api/health + Anmeldung über einen Anbieter + ein CRUD-WegBranding anpassen, Tester einladen
    ErweitertGET /api/tunnel/test → status: ready; UI für Entitäten + OpportunitiesEchtzeit / Discovery vorführen
    Optionale ZahlungMitgliedschaft starten → Weiterleitung durch PaymentConductor oder Abrechnung über GuthabenSandbox-Checkout / Probe eines Rollen-Upgrades

    Empfohlener Weg

    Nutze das LegioX-MCP legiox-env-validator (oder frag den Agenten mit dem Prompt unten), bevor du UI-Fehlern nachjagst. Es meldet fehlende Env-Werte. Es ändert keine .env, startet keine Prozesse neu und ruft keine PSPs auf, bis du zustimmst.

    Start-Prompt:

    Prüfe diesen Klon für den Smoke-Test des ersten Erfolgs: AUTH_SECRET, DB_BACKEND_MODE / Postgres-DB_* und optional WAYFORPAY_* / STRIPE_* / PAYPAL_*. Liste fehlende Variablen und die Checkliste Kern gegenüber Optionale Zahlung aus /docs/getting-started/first-success auf. Schreibe keine Secrets und starte den Server nicht neu, bis ich zustimme.

    Checkliste der Eingaben

    • Arbeitsbaum nach Installation + Migrationen
    • .env.local aus env.local.template (oder ein eingebundenes k8s-Secret)
    • Browser auf http://localhost:3000 (oder deiner konfigurierten Site-URL)
    • Optional: Sandbox-Zugangsdaten für WayForPay / Stripe / PayPal

    Manueller Weg

    Warum das für deinen Klon wichtig ist

    Geh vor Demos für Stakeholder den Happy Path eines Mitglieds selbst durch:

    Auf der Startseite landen

    Kein leerer Bildschirm und kein Absturz des Datenbankadapters im Terminal.

    Registrieren / anmelden

    Google, Apple oder Ring Mailer, je nachdem, was du konfiguriert hast (SMTP oder Ethereal).

    Eine Entität anlegen

    Belegt JSONB-Schreibzugriffe in Postgres und die Rollenprüfungen.

    Mitgliedschafts-Checkout (optional)

    Implementierungsübersicht

    ThemaGeprüfter Pfad
    Healthapp/api/health/route.ts
    Auth-Anbieterauth.ts (Google, Apple, Ring-Mailer-Credentials, One Tap, Wallet)
    Mitgliedschaft startenapp/_actions/membership-payment.ts → PaymentConductor.createCheckout
    Conductorlib/payments/conductor/payment-conductor.ts
    Webhooksapp/api/payments/{wayforpay|stripe|paypal}/webhook/route.ts
    Tunnel-Testapp/api/tunnel/test/route.ts (status: 'ready' bei Erfolg)
    Wallet-Guthaben (optional)GET /api/wallet/balance → { balance } oder 401 /

    Zusammenfassung der Checkliste

    PrüfungBestanden?
    npm run dev startet ohne Absturz des Datenbankadapters☐
    GET /api/health → healthy (oder AUTH_SECRET korrigiert)☐
    Anmeldung über einen Auth.js-Anbieter funktioniert☐
    Entität anlegen/auflisten oder Liste der Opportunities funktioniert in der UI☐
    GET /api/tunnel/test → status: ready☐
    Optional: Start der Mitgliedschaft liefert Weiterleitung / Erfolg über Guthaben☐

    Häufige Fragen

    Auswirkungen

    Funktioniert mein Klon ohne Zahlungen?

    Ja. Der erste Erfolg im Kern besteht aus Authentifizierung + Datenweg. PaymentConductor ist optional, bis du bezahlte Mitgliedschaften oder den Shop-Checkout vorführst.

    Bedeutet Tunnel ready, dass SSE live ist?

    Nein. /api/tunnel/test bestätigt Konfiguration und Anbietererkennung. Live-Streams brauchen einen angemeldeten Client, der /api/tunnel/sse (oder deinen konfigurierten Anbieter) aufruft.

    Migration

    Brauche ich 004_payment_transactions für den Kern?

    Nein. Wende sie vor dem Smoke-Test für Optionale Zahlung an, damit das Ledger Mitgliedschafts- und Shop-Intents erfassen kann.

    Prototyp nur mit Firebase?

    firebase-full kann bei einem Prototyp Startseite + Authentifizierung bestehen, aber die Tiefe von PaymentConductor und die ERP-/News-Funktionen setzen Postgres als Primärdatenbank voraus (k8s-postgres-fcm / supabase-fcm). Siehe Datenbankauswahl.

    Betrieb

    Health liefert 503 mit degraded: Ist die App ausgefallen?

    Der Prozess läuft. Ein fehlendes AUTH_SECRET (Postgres-Weg) oder fehlende kritische Firebase-Variablen verschlechtern den Status. Setze die Secrets, starte neu und wiederhole den curl.

    Wallet-Guthaben 404?

    GET /api/wallet/balance liefert 404, wenn noch keine Wallet-Zeile existiert. Das ist kein Fehler im Kern. Lege die Wallet nach der Authentifizierung über die Wallet-Abläufe an oder lade sie auf.

    Verwandte Dokumentation

    Related documentation

    Installation

    Voraussetzung: Installation und Env vor dieser Smoke-Checkliste.

    Database Migrations

    Voraussetzung: Schema + 004_payment_transactions vor dem Smoke-Test von PaymentConductor.

    Authentication

    Vertiefung: Auth.js-Anbieter und Sitzungsstruktur, sobald die Registrierung funktioniert.

    PaymentConductor

    Nächster Schritt: Rails, Ledger und Webhooks, nachdem der Start der Mitgliedschaft funktioniert.

    1. Docs
    2. /Erste Schritte
    3. /Validierung des ersten Erfolgs

    Aktualisiert 14. Okt. 20267 Min. Anhören

    1. 1

      1. Entwicklungsserver

      Erwartet wird Next.js bereit unter http://localhost:3000. Das Paket-Skript führt node --import tsx server.ts aus. Mit RING_DEPLOY_TARGET=self-hosted kann der eigene Server natives WSS protokollieren.

    2. 2

      2. Health

      Geprüfte Struktur (app/api/health/route.ts): status ist healthy | degraded | unhealthy (nicht "ok"). services.database ist postgresql oder firebase. Fehlendes AUTH_SECRET → degraded und HTTP 503. HEAD liefert 200, wenn der Prozess läuft.

    3. 3

      3. Startseite + Anmeldung

      1. Öffne /: Erwartet wird HTTP 200, kein leerer Bildschirm und kein Adapter-Absturz im Terminal.
      2. Rufe /login auf (ein Sprachpräfix kann gelten: /en/login).
      3. Schließe einen Anbieter aus auth.ts ab: Google OAuth, Apple, Ring Mailer (OTP / Magic Link / E-Mail + Passwort), Google One Tap oder Krypto-Wallet-Credentials. Der Standardbaum liefert GitHub/Discord nicht mit.
      4. Prüfe die Sitzung: /profile zeigt die Benutzerdaten, und sie bleiben nach dem Neuladen erhalten. Optional: GET /api/auth/session mit den Browser-Cookies liefert { user: { id, email, role, … } }.
    4. 4

      4. Authentifiziertes CRUD

      /api/entities und /api/opportunities erfordern eine Sitzung: 401 ohne Cookies ist zu erwarten.

      Nach der Anmeldung im Browser:

      1. /entities: Liste und Erstellformular werden abgeschickt (ein Visitor kann beim Schreiben 403 erhalten; nutze ein Testkonto mit member/admin).
      2. /opportunities: Die Liste lädt für deine Rolle.

      Optionale Prüfung in Postgres:

      Nach der ersten Anmeldung ist ein Zählwert ≥ 1 zu erwarten. Eine Route /api/test-db gibt es nicht: nutze psql oder die authentifizierten APIs.

    5. 5

      5. Tunnel-Bereitschaft (erweitert)

      Erwartet werden "ready" und eine Anbieterliste aus lib/tunnel/config. Live-SSE: Tab Network → /api/tunnel/sse nach der Anmeldung. Siehe Tunnel-Protokoll.

    6. 6

      6. Smoke-Test für Mitgliedschaften über PaymentConductor (optional)

      Erst nachdem die Migrationen 004_payment_transactions.sql angewendet haben und du das Env des Zahlungsanbieters aus env.local.template gesetzt hast (WAYFORPAY_* und/oder STRIPE_* und/oder PAYPAL_*).

      1. Melde dich als Nicht-Admin an, der ein Upgrade machen darf (UPGRADEABLE_ROLES, kein Kauf durch platform-admin).
      2. Öffne /membership → wähle eine höhere Stufe und eine konfigurierte Rail (card → WayForPay/Stripe über PaymentConductor, paypal oder credit_balance, wenn die Wallet Guthaben hat).
      3. Die Server Action initiateMembershipPayment (app/_actions/membership-payment.ts) ruft PaymentConductor.createCheckout({ purpose: 'membership_upgrade', … }) auf (bei manchen Rails zuerst SubscriptionConductor).
      4. Erwartet wird eine Weiterleitungs-URL / Form-Post-Felder zum PSP oder ein sofortiger Erfolgsweg für internes Guthaben.
      5. Kanonische Webhooks (Callback-URLs für Produktion/Sandbox): /api/payments/wayforpay/webhook, /api/payments/stripe/webhook, /api/payments/paypal/webhook (getWebhookUrl in lib/payments/payment.config.ts).
      6. Nach der Verarbeitung von Approved / checkout.session.completed / PayPal-Capture landet die UI auf /membership/success oder /membership/failure.

      Erkläre den Produktions-Checkout nicht für fertig, solange HMAC-/Signaturprüfung und Rücksprung-URLs nicht zu deiner öffentlichen Site-URL passen. Im Detail: PaymentConductor.

    Sandbox-Gebühr → PaymentConductor → Webhook. Erst, wenn das Zahlungs-Env gesetzt ist.

    Teilerfolg ist in Ordnung

    Authentifizierung + ein CRUD-Ablauf ohne Push-Benachrichtigungen oder Wallet ist trotzdem ein gültiger Entwicklungsklon. Binde FCM und PaymentConductor an, bevor du bezahlte Mitgliedschaften oder einen Shop-Checkout versprichst (Umgebung).

    Wann du anhalten und korrigieren solltest

    • Wiederholte Verbindungsfehler zu Postgres → DB_* / DB_BACKEND_MODE in den Voraussetzungen.
    • Weiterleitungsschleife beim Login → AUTH_SECRET und OAuth-Weiterleitungs-URIs (http://localhost:3000/api/auth/callback/google).
    • 403 beim Speichern einer Entität → für visitor zu erwarten; melde dich als member an oder erhöhe die Rolle des Testkontos.
    • Fehler beim Starten der Mitgliedschaft wegen fehlender Händlerschlüssel → WAYFORPAY_* / Stripe / PayPal setzen und erneut versuchen.
    404
    Skriptenpm run type-check, npm run build (der Build führt type-check aus)
    Ablauf des ersten Erfolgs

    Die Postgres-Erkennung der Health-Route nutzt DATABASE_BACKEND=postgresql oder DB_HOST / POSTGRES_HOST, nicht allein den String DB_BACKEND_MODE. Halte beide Variablengruppen mit env.local.template abgestimmt, damit services.database postgresql meldet, wenn du es erwartest.

    Troubleshooting

    Gleicher Ablauf: Korrekturen an Authentifizierung und Datenbank, wenn eine Zeile der Checkliste rot bleibt.

    Next Steps

    Nächster Schritt: Funktionen erkunden, sobald die Kernprüfungen grün sind.

    1. 1

      1. Entwicklungsserver

      Erwartet wird Next.js bereit unter http://localhost:3000. Das Paket-Skript führt node --import tsx server.ts aus. Mit RING_DEPLOY_TARGET=self-hosted kann der eigene Server natives WSS protokollieren.

    2. 2

      2. Health

      Geprüfte Struktur (app/api/health/route.ts): status ist healthy | degraded | unhealthy (nicht "ok"). services.database ist postgresql oder firebase. Fehlendes AUTH_SECRET → degraded und HTTP 503. HEAD liefert 200, wenn der Prozess läuft.

    3. 3

      3. Startseite + Anmeldung

      1. Öffne /: Erwartet wird HTTP 200, kein leerer Bildschirm und kein Adapter-Absturz im Terminal.
      2. Rufe /login auf (ein Sprachpräfix kann gelten: /en/login).
      3. Schließe einen Anbieter aus auth.ts ab: Google OAuth, Apple, Ring Mailer (OTP / Magic Link / E-Mail + Passwort), Google One Tap oder Krypto-Wallet-Credentials. Der Standardbaum liefert GitHub/Discord nicht mit.
      4. Prüfe die Sitzung: /profile zeigt die Benutzerdaten, und sie bleiben nach dem Neuladen erhalten. Optional: GET /api/auth/session mit den Browser-Cookies liefert { user: { id, email, role, … } }.
    4. 4

      4. Authentifiziertes CRUD

      /api/entities und /api/opportunities erfordern eine Sitzung: 401 ohne Cookies ist zu erwarten.

      Nach der Anmeldung im Browser:

      1. /entities: Liste und Erstellformular werden abgeschickt (ein Visitor kann beim Schreiben 403 erhalten; nutze ein Testkonto mit member/admin).
      2. /opportunities: Die Liste lädt für deine Rolle.

      Optionale Prüfung in Postgres:

      Nach der ersten Anmeldung ist ein Zählwert ≥ 1 zu erwarten. Eine Route /api/test-db gibt es nicht: nutze psql oder die authentifizierten APIs.

    5. 5

      5. Tunnel-Bereitschaft (erweitert)

      Erwartet werden "ready" und eine Anbieterliste aus lib/tunnel/config. Live-SSE: Tab Network → /api/tunnel/sse nach der Anmeldung. Siehe Tunnel-Protokoll.

    6. 6

      6. Smoke-Test für Mitgliedschaften über PaymentConductor (optional)

      Erst nachdem die Migrationen 004_payment_transactions.sql angewendet haben und du das Env des Zahlungsanbieters aus env.local.template gesetzt hast (WAYFORPAY_* und/oder STRIPE_* und/oder PAYPAL_*).

      1. Melde dich als Nicht-Admin an, der ein Upgrade machen darf (UPGRADEABLE_ROLES, kein Kauf durch platform-admin).
      2. Öffne /membership → wähle eine höhere Stufe und eine konfigurierte Rail (card → WayForPay/Stripe über PaymentConductor, paypal oder credit_balance, wenn die Wallet Guthaben hat).
      3. Die Server Action initiateMembershipPayment (app/_actions/membership-payment.ts) ruft PaymentConductor.createCheckout({ purpose: 'membership_upgrade', … }) auf (bei manchen Rails zuerst SubscriptionConductor).
      4. Erwartet wird eine Weiterleitungs-URL / Form-Post-Felder zum PSP oder ein sofortiger Erfolgsweg für internes Guthaben.
      5. Kanonische Webhooks (Callback-URLs für Produktion/Sandbox): /api/payments/wayforpay/webhook, /api/payments/stripe/webhook, /api/payments/paypal/webhook (getWebhookUrl in lib/payments/payment.config.ts).
      6. Nach der Verarbeitung von Approved / checkout.session.completed / PayPal-Capture landet die UI auf /membership/success oder /membership/failure.

      Erkläre den Produktions-Checkout nicht für fertig, solange HMAC-/Signaturprüfung und Rücksprung-URLs nicht zu deiner öffentlichen Site-URL passen. Im Detail: PaymentConductor.

    Sandbox-Gebühr → PaymentConductor → Webhook. Erst, wenn das Zahlungs-Env gesetzt ist.

    Teilerfolg ist in Ordnung

    Authentifizierung + ein CRUD-Ablauf ohne Push-Benachrichtigungen oder Wallet ist trotzdem ein gültiger Entwicklungsklon. Binde FCM und PaymentConductor an, bevor du bezahlte Mitgliedschaften oder einen Shop-Checkout versprichst (Umgebung).

    Wann du anhalten und korrigieren solltest

    • Wiederholte Verbindungsfehler zu Postgres → DB_* / DB_BACKEND_MODE in den Voraussetzungen.
    • Weiterleitungsschleife beim Login → AUTH_SECRET und OAuth-Weiterleitungs-URIs (http://localhost:3000/api/auth/callback/google).
    • 403 beim Speichern einer Entität → für visitor zu erwarten; melde dich als member an oder erhöhe die Rolle des Testkontos.
    • Fehler beim Starten der Mitgliedschaft wegen fehlender Händlerschlüssel → WAYFORPAY_* / Stripe / PayPal setzen und erneut versuchen.
    404
    Skriptenpm run type-check, npm run build (der Build führt type-check aus)
    Ablauf des ersten Erfolgs

    Die Postgres-Erkennung der Health-Route nutzt DATABASE_BACKEND=postgresql oder DB_HOST / POSTGRES_HOST, nicht allein den String DB_BACKEND_MODE. Halte beide Variablengruppen mit env.local.template abgestimmt, damit services.database postgresql meldet, wenn du es erwartest.

    Troubleshooting

    Gleicher Ablauf: Korrekturen an Authentifizierung und Datenbank, wenn eine Zeile der Checkliste rot bleibt.

    Next Steps

    Nächster Schritt: Funktionen erkunden, sobald die Kernprüfungen grün sind.

    1. 1

      1. Entwicklungsserver

      Erwartet wird Next.js bereit unter http://localhost:3000. Das Paket-Skript führt node --import tsx server.ts aus. Mit RING_DEPLOY_TARGET=self-hosted kann der eigene Server natives WSS protokollieren.

    2. 2

      2. Health

      Geprüfte Struktur (app/api/health/route.ts): status ist healthy | degraded | unhealthy (nicht "ok"). services.database ist postgresql oder firebase. Fehlendes AUTH_SECRET → degraded und HTTP 503. HEAD liefert 200, wenn der Prozess läuft.

    3. 3

      3. Startseite + Anmeldung

      1. Öffne /: Erwartet wird HTTP 200, kein leerer Bildschirm und kein Adapter-Absturz im Terminal.
      2. Rufe /login auf (ein Sprachpräfix kann gelten: /en/login).
      3. Schließe einen Anbieter aus auth.ts ab: Google OAuth, Apple, Ring Mailer (OTP / Magic Link / E-Mail + Passwort), Google One Tap oder Krypto-Wallet-Credentials. Der Standardbaum liefert GitHub/Discord nicht mit.
      4. Prüfe die Sitzung: /profile zeigt die Benutzerdaten, und sie bleiben nach dem Neuladen erhalten. Optional: GET /api/auth/session mit den Browser-Cookies liefert { user: { id, email, role, … } }.
    4. 4

      4. Authentifiziertes CRUD

      /api/entities und /api/opportunities erfordern eine Sitzung: 401 ohne Cookies ist zu erwarten.

      Nach der Anmeldung im Browser:

      1. /entities: Liste und Erstellformular werden abgeschickt (ein Visitor kann beim Schreiben 403 erhalten; nutze ein Testkonto mit member/admin).
      2. /opportunities: Die Liste lädt für deine Rolle.

      Optionale Prüfung in Postgres:

      Nach der ersten Anmeldung ist ein Zählwert ≥ 1 zu erwarten. Eine Route /api/test-db gibt es nicht: nutze psql oder die authentifizierten APIs.

    5. 5

      5. Tunnel-Bereitschaft (erweitert)

      Erwartet werden "ready" und eine Anbieterliste aus lib/tunnel/config. Live-SSE: Tab Network → /api/tunnel/sse nach der Anmeldung. Siehe Tunnel-Protokoll.

    6. 6

      6. Smoke-Test für Mitgliedschaften über PaymentConductor (optional)

      Erst nachdem die Migrationen 004_payment_transactions.sql angewendet haben und du das Env des Zahlungsanbieters aus env.local.template gesetzt hast (WAYFORPAY_* und/oder STRIPE_* und/oder PAYPAL_*).

      1. Melde dich als Nicht-Admin an, der ein Upgrade machen darf (UPGRADEABLE_ROLES, kein Kauf durch platform-admin).
      2. Öffne /membership → wähle eine höhere Stufe und eine konfigurierte Rail (card → WayForPay/Stripe über PaymentConductor, paypal oder credit_balance, wenn die Wallet Guthaben hat).
      3. Die Server Action initiateMembershipPayment (app/_actions/membership-payment.ts) ruft PaymentConductor.createCheckout({ purpose: 'membership_upgrade', … }) auf (bei manchen Rails zuerst SubscriptionConductor).
      4. Erwartet wird eine Weiterleitungs-URL / Form-Post-Felder zum PSP oder ein sofortiger Erfolgsweg für internes Guthaben.
      5. Kanonische Webhooks (Callback-URLs für Produktion/Sandbox): /api/payments/wayforpay/webhook, /api/payments/stripe/webhook, /api/payments/paypal/webhook (getWebhookUrl in lib/payments/payment.config.ts).
      6. Nach der Verarbeitung von Approved / checkout.session.completed / PayPal-Capture landet die UI auf /membership/success oder /membership/failure.

      Erkläre den Produktions-Checkout nicht für fertig, solange HMAC-/Signaturprüfung und Rücksprung-URLs nicht zu deiner öffentlichen Site-URL passen. Im Detail: PaymentConductor.

    Sandbox-Gebühr → PaymentConductor → Webhook. Erst, wenn das Zahlungs-Env gesetzt ist.

    Teilerfolg ist in Ordnung

    Authentifizierung + ein CRUD-Ablauf ohne Push-Benachrichtigungen oder Wallet ist trotzdem ein gültiger Entwicklungsklon. Binde FCM und PaymentConductor an, bevor du bezahlte Mitgliedschaften oder einen Shop-Checkout versprichst (Umgebung).

    Wann du anhalten und korrigieren solltest

    • Wiederholte Verbindungsfehler zu Postgres → DB_* / DB_BACKEND_MODE in den Voraussetzungen.
    • Weiterleitungsschleife beim Login → AUTH_SECRET und OAuth-Weiterleitungs-URIs (http://localhost:3000/api/auth/callback/google).
    • 403 beim Speichern einer Entität → für visitor zu erwarten; melde dich als member an oder erhöhe die Rolle des Testkontos.
    • Fehler beim Starten der Mitgliedschaft wegen fehlender Händlerschlüssel → WAYFORPAY_* / Stripe / PayPal setzen und erneut versuchen.
    404
    Skriptenpm run type-check, npm run build (der Build führt type-check aus)
    Ablauf des ersten Erfolgs

    Die Postgres-Erkennung der Health-Route nutzt DATABASE_BACKEND=postgresql oder DB_HOST / POSTGRES_HOST, nicht allein den String DB_BACKEND_MODE. Halte beide Variablengruppen mit env.local.template abgestimmt, damit services.database postgresql meldet, wenn du es erwartest.

    Troubleshooting

    Gleicher Ablauf: Korrekturen an Authentifizierung und Datenbank, wenn eine Zeile der Checkliste rot bleibt.

    Next Steps

    Nächster Schritt: Funktionen erkunden, sobald die Kernprüfungen grün sind.