OpportunitiesEntities
Docs
    Ring Platform

    Decentralized Self-building Future

    Sign In
    Entities
    Opportunities
    Store
    Docs
    Platform Concepts
    RING EconomySonoratek LLCGlobal ImpactAI Meets Web3
    Get Started
    Quick StartCalculatorRoadmap
    Privacy|Contact
    v1.104.17|Sonoratek LLC

    Documentation

    Concepts, value, and typical clone scenarios — less code.

    Welcome to Ring
    Quick Reference
    Getting Started
    Prerequisites
    Installation
    First Success Validation
    Next Steps
    Features
    Multi-Vendor Store
    Inventory & Stock
    Vendor Management
    Commissions & Settlements
    SubscriptionConductor
    PaymentConductor
    Ring Oracle
    Payments Overview
    Public Pools & DAO Jars
    WayForPay Payment Integration
    Wallet & Credit System
    WalletConductor
    Affiliate & Referral Enablement
    Referral Codes (Refcodes)
    NFT Exhibition Marketplace
    Solana NFT Gates
    Token Staking System
    Owner Project Lab
    Entities
    Opportunities
    Real-Time Messaging
    Ring Tasks
    WebRTC Calls & STUNner TURN
    Peer Games
    News Module
    Member Blogs
    Public Profile Pages
    Profile Account Widgets
    Ring File Cabinet
    Username Reservation System
    Scientific Editor
    Notifications
    Push Notifications with FCM (Ring-Powered)
    Email AI-CRM
    Ring Mailer & RingdomX Mail
    Tunnel Protocol
    VideoConductor
    MediaConductor
    Generative Gallery
    Authentication
    Security & Compliance
    Admin console
    Admin Wiki
    Manage via Telegram
    Locale System
    Mobile Experience
    Performance Optimization Patterns
    Examples
    Quick Start
    Basic Setup
    White Label
    Custom Branding
    Web3 Integration
    Real World
    Advanced Features
    Customization
    Quick Start — Your First Ring Clone
    Customization Guide
    Vertical Presets (SSOT)
    Ringization playbook
    Branding
    Themes
    Features
    Localization
    Token Economics Setup
    Payment Gateway Integration
    Reference Ring deployments
    Project configuration
    Public environment variables
    Order Lab secrets
    WalletConnect Project ID (Reown Cloud)
    Supported services
    NODUS wiki (project knowledge)
    Configuration playbook
    Web3
    Token launch jurisdictions
    Wallet
    Wallet Security Tips
    Integrations
    Ethereum wallets (Wagmi v3)
    RingFileBase (object storage API)
    Ring CDN (RingFileBase edge)
    Deployment
    Self-hosted deployment
    Vercel Deployment
    Docker
    Environment Configuration
    Monitoring & Analytics
    Performance Optimization
    Backup & Recovery
    Architecture
    Data Model
    Security
    Real Time
    Discovery Mutation Sync
    PaymentConductor architecture
    WalletConductor architecture
    Backend Services
    Firebase Integration
    Development
    Ring MCP Server

    Quick entry (CTOs · auditors · agents)

    Welcome — mission & audiences
    Quick Reference
    Getting started
    Architecture & Auth.js
    Backend modes & databases (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP Tools
    Ring MCP Server
    Token economics
    Token launch jurisdictions
    Deploy (Docker · k8s)
    Security & compliance reads
    ringdom.org — LegioX homebase
    Source — MIT license (GitHub)

    Documentation

    Concepts, value, and typical clone scenarios — less code.

    Welcome to Ring
    Quick Reference
    Getting Started
    Prerequisites
    Installation
    First Success Validation
    Next Steps
    Features
    Multi-Vendor Store
    Inventory & Stock
    Vendor Management
    Commissions & Settlements
    SubscriptionConductor
    PaymentConductor
    Ring Oracle
    Payments Overview
    Public Pools & DAO Jars
    WayForPay Payment Integration
    Wallet & Credit System
    WalletConductor
    Affiliate & Referral Enablement
    Referral Codes (Refcodes)
    NFT Exhibition Marketplace
    Solana NFT Gates
    Token Staking System
    Owner Project Lab
    Entities
    Opportunities
    Real-Time Messaging
    Ring Tasks
    WebRTC Calls & STUNner TURN
    Peer Games
    News Module
    Member Blogs
    Public Profile Pages
    Profile Account Widgets
    Ring File Cabinet
    Username Reservation System
    Scientific Editor
    Notifications
    Push Notifications with FCM (Ring-Powered)
    Email AI-CRM
    Ring Mailer & RingdomX Mail
    Tunnel Protocol
    VideoConductor
    MediaConductor
    Generative Gallery
    Authentication
    Security & Compliance
    Admin console
    Admin Wiki
    Manage via Telegram
    Locale System
    Mobile Experience
    Performance Optimization Patterns
    Examples
    Quick Start
    Basic Setup
    White Label
    Custom Branding
    Web3 Integration
    Real World
    Advanced Features
    Customization
    Quick Start — Your First Ring Clone
    Customization Guide
    Vertical Presets (SSOT)
    Ringization playbook
    Branding
    Themes
    Features
    Localization
    Token Economics Setup
    Payment Gateway Integration
    Reference Ring deployments
    Project configuration
    Public environment variables
    Order Lab secrets
    WalletConnect Project ID (Reown Cloud)
    Supported services
    NODUS wiki (project knowledge)
    Configuration playbook
    Web3
    Token launch jurisdictions
    Wallet
    Wallet Security Tips
    Integrations
    Ethereum wallets (Wagmi v3)
    RingFileBase (object storage API)
    Ring CDN (RingFileBase edge)
    Deployment
    Self-hosted deployment
    Vercel Deployment
    Docker
    Environment Configuration
    Monitoring & Analytics
    Performance Optimization
    Backup & Recovery
    Architecture
    Data Model
    Security
    Real Time
    Discovery Mutation Sync
    PaymentConductor architecture
    WalletConductor architecture
    Backend Services
    Firebase Integration
    Development
    Ring MCP Server

    Quick entry (CTOs · auditors · agents)

    Welcome — mission & audiences
    Quick Reference
    Getting started
    Architecture & Auth.js
    Backend modes & databases (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP Tools
    Ring MCP Server
    Token economics
    Token launch jurisdictions
    Deploy (Docker · k8s)
    Security & compliance reads
    ringdom.org — LegioX homebase
    Source — MIT license (GitHub)

    Documentation

    Concepts, value, and typical clone scenarios — less code.

    Welcome to Ring
    Quick Reference
    Getting Started
    Prerequisites
    Installation
    First Success Validation
    Next Steps
    Features
    Multi-Vendor Store
    Inventory & Stock
    Vendor Management
    Commissions & Settlements
    SubscriptionConductor
    PaymentConductor
    Ring Oracle
    Payments Overview
    Public Pools & DAO Jars
    WayForPay Payment Integration
    Wallet & Credit System
    WalletConductor
    Affiliate & Referral Enablement
    Referral Codes (Refcodes)
    NFT Exhibition Marketplace
    Solana NFT Gates
    Token Staking System
    Owner Project Lab
    Entities
    Opportunities
    Real-Time Messaging
    Ring Tasks
    WebRTC Calls & STUNner TURN
    Peer Games
    News Module
    Member Blogs
    Public Profile Pages
    Profile Account Widgets
    Ring File Cabinet
    Username Reservation System
    Scientific Editor
    Notifications
    Push Notifications with FCM (Ring-Powered)
    Email AI-CRM
    Ring Mailer & RingdomX Mail
    Tunnel Protocol
    VideoConductor
    MediaConductor
    Generative Gallery
    Authentication
    Security & Compliance
    Admin console
    Admin Wiki
    Manage via Telegram
    Locale System
    Mobile Experience
    Performance Optimization Patterns
    Examples
    Quick Start
    Basic Setup
    White Label
    Custom Branding
    Web3 Integration
    Real World
    Advanced Features
    Customization
    Quick Start — Your First Ring Clone
    Customization Guide
    Vertical Presets (SSOT)
    Ringization playbook
    Branding
    Themes
    Features
    Localization
    Token Economics Setup
    Payment Gateway Integration
    Reference Ring deployments
    Project configuration
    Public environment variables
    Order Lab secrets
    WalletConnect Project ID (Reown Cloud)
    Supported services
    NODUS wiki (project knowledge)
    Configuration playbook
    Web3
    Token launch jurisdictions
    Wallet
    Wallet Security Tips
    Integrations
    Ethereum wallets (Wagmi v3)
    RingFileBase (object storage API)
    Ring CDN (RingFileBase edge)
    Deployment
    Self-hosted deployment
    Vercel Deployment
    Docker
    Environment Configuration
    Monitoring & Analytics
    Performance Optimization
    Backup & Recovery
    Architecture
    Data Model
    Security
    Real Time
    Discovery Mutation Sync
    PaymentConductor architecture
    WalletConductor architecture
    Backend Services
    Firebase Integration
    Development
    Ring MCP Server

    Quick entry (CTOs · auditors · agents)

    Welcome — mission & audiences
    Quick Reference
    Getting started
    Architecture & Auth.js
    Backend modes & databases (DB_BACKEND_MODE)
    Self-hosted
    Ring MCP Tools
    Ring MCP Server
    Token economics
    Token launch jurisdictions
    Deploy (Docker · k8s)
    Security & compliance reads
    ringdom.org — LegioX homebase
    Source — MIT license (GitHub)
    Ring Logo

    Loading documentation...

    Preparing Ring content

    Ring Logo

    Loading documentation...

    Preparing Ring content

    Ring Logo

    Loading documentation...

    Preparing Ring content

    Prerequisites

    Before Installation: you need a machine that can run Node.js 20+, a PostgreSQL instance for production-parity work, and (for tester sign-in) at least one Auth.js path. Versions below match install.sh, INSTALL.md, and env.local.template — not legacy Node 18 guidance. Use Founder / Developer in the docs sidebar to filter this page.

    Ring Platform is a Next.js 16 + React 19 app with a mandatory DB_BACKEND_MODE. Local and production-parity clones use PostgreSQL-primary (k8s-postgres-fcm). Firestore-only (firebase-full) is a narrower prototype path.

    Deploy target comparison

    PathWhoWhat you must bringSkips
    OSS self-host (GitHub + install.sh)Indie / hired integratorNode 20+, Git, Postgres (or Docker), .env.local, OAuth or Ring MailerManaged k8s / settler handoff
    Ringdom-managed (turn-key hosting)Founder / settlerDomain + settler brief; cluster secrets after handoffMost of this checklist locally
    firebase-full prototypeQuick UI spikeFirebase project + Node 20+ERP / PaymentConductor / News Kingdom depth on Postgres

    Default for ring-platform.org and clone parity: DB_BACKEND_MODE=k8s-postgres-fcm. See Backend modes and Database selection.

    At a glance

    RequirementVerified baselineSource / notes
    Node.jsv20+ (v22+ recommended)install.sh fails below 20; INSTALL.md recommends 22+
    npm10+INSTALL.md; installer runs npm install
    GitRecentClone connectplatform/ring
    PostgreSQL14+ (Docker image 16; Homebrew 18 common in docs)DB ring_platform, user ring_user — env.local.template

    What founders need before ringizing

    You are preparing a white-label clone — branding in ring-config.json, secrets in .env.local, and (for production features) Postgres with data/schema.sql applied.

    MVP vs production-ready

    Explore UI locally

    Node 20+, install.sh --quick, Postgres or short-lived firebase-full — see Database selection.

    Production-parity clone

    Postgres-primary + data/schema.sql (v4.1+) + kingdom migrations — store, PaymentConductor, News Kingdom depth.

    Sign-in for testers

    Toolchain

    Node.js and package manager

    install.sh fails early if Node is below v20. Use nvm, fnm, or official installers — see INSTALL.md. The public tree’s installer path is npm; other package managers are not the documented install SSOT.

    PostgreSQL + PostGIS

    Default connection (from env.local.template):

    Quick Docker database (matches docker-compose.template.yml image tag):

    Fresh data/schema.sql (header 4.1.0) runs CREATE EXTENSION for uuid-ossp, pgcrypto, and postgis. Prefer a PostGIS-capable image or Homebrew postgresql@18 + postgis when applying schema — see Database migrations.

    Backend mode (required)

    Set DB_BACKEND_MODE before first boot (lib/database/backend-mode-config.ts — no silent default at runtime):

    ValueWhen
    k8s-postgres-fcmDefault path — Postgres app data + optional FCM push

    Recommended path

    Use the Getting Started hub flow: meet this checklist → run install.sh → apply schema → smoke-test.

    1. Confirm Node 20+ and a Postgres plan (Docker 16 or Homebrew 18 + PostGIS).
    2. Continue to Installation (./install.sh --quick or manual env).
    3. Apply Database migrations, then First success.

    Manual path

    1. 1

      Inventory accounts and ports

      Decide OSS self-host vs Ringdom-managed. Free 3000 and 5432 (or set DB_PORT / app PORT deliberately).

    2. 2

      Provision Postgres with PostGIS

      Create DB ring_platform / user ring_user (or match your DATABASE_URL). Confirm CREATE EXTENSION postgis will succeed before applying data/schema.sql.

    3. 3

      Scaffold env without inventing keys

      Copy env.local.template → .env.local (or let install.sh do it). Set DB_BACKEND_MODE, generate AUTH_SECRET / WALLET_ENCRYPTION_KEY, add one auth path. Do not paste production secrets into docs or git.

    Frequently asked questions

    Impact

    Will my clone boot without Google OAuth?

    Yes for process boot — AUTH_SECRET + DB_BACKEND_MODE matter first. Tester login still needs at least one provider: Google, Apple, or Ring Mailer (Ethereal/SMTP).

    Do I need Firebase on day one?

    Not for Postgres-primary app data. Firebase Admin / NEXT_PUBLIC_FIREBASE_* matter when you enable FCM push, or when you choose firebase-full.

    Do I need Redis?

    No for a single-replica local npm run dev. Set REDIS_URL when you want shared rate-limit / set-nx across processes.

    Ops

    Node 18 — still supported?

    No. install.sh requires Node 20+. Prefer Node 22+ per INSTALL.md troubleshooting examples.

    PostGIS failed on schema.sql?

    Install PostGIS for your Postgres (Homebrew postgis, or a PostGIS image). Flattened schema 4.1.0 enables the extension on fresh apply.

    /api/health is not healthy?

    Check .env.local has AUTH_SECRET. On Postgres detection paths the health route treats that secret as critical; missing Firebase vars matter more on non-Postgres setups.

    Managed hosting — skip this page?

    Mostly yes for first boot. Keep it as the contract when you later attach custom OAuth, payments, or a fork of Layer1.

    Related documentation

    Related documentation

    Installation

    Next-step: run install.sh and apply schema after this checklist.

    Database migrations

    Depends-on: Postgres + PostGIS before data/schema.sql apply.

    First Success Validation

    Next-step: smoke-test after npm run dev.

    Environment Configuration

    Deep-dive: full env.local.template surface beyond the first-boot minimum.

    Prerequisites met? Continue to Installation.

    Prerequisites

    Before Installation: you need a machine that can run Node.js 20+, a PostgreSQL instance for production-parity work, and (for tester sign-in) at least one Auth.js path. Versions below match install.sh, INSTALL.md, and env.local.template — not legacy Node 18 guidance. Use Founder / Developer in the docs sidebar to filter this page.

    Ring Platform is a Next.js 16 + React 19 app with a mandatory DB_BACKEND_MODE. Local and production-parity clones use PostgreSQL-primary (k8s-postgres-fcm). Firestore-only (firebase-full) is a narrower prototype path.

    Deploy target comparison

    PathWhoWhat you must bringSkips
    OSS self-host (GitHub + install.sh)Indie / hired integratorNode 20+, Git, Postgres (or Docker), .env.local, OAuth or Ring MailerManaged k8s / settler handoff
    Ringdom-managed (turn-key hosting)Founder / settlerDomain + settler brief; cluster secrets after handoffMost of this checklist locally
    firebase-full prototypeQuick UI spikeFirebase project + Node 20+ERP / PaymentConductor / News Kingdom depth on Postgres

    Default for ring-platform.org and clone parity: DB_BACKEND_MODE=k8s-postgres-fcm. See Backend modes and Database selection.

    At a glance

    RequirementVerified baselineSource / notes
    Node.jsv20+ (v22+ recommended)install.sh fails below 20; INSTALL.md recommends 22+
    npm10+INSTALL.md; installer runs npm install
    GitRecentClone connectplatform/ring
    PostgreSQL14+ (Docker image 16; Homebrew 18 common in docs)DB ring_platform, user ring_user — env.local.template

    What founders need before ringizing

    You are preparing a white-label clone — branding in ring-config.json, secrets in .env.local, and (for production features) Postgres with data/schema.sql applied.

    MVP vs production-ready

    Explore UI locally

    Node 20+, install.sh --quick, Postgres or short-lived firebase-full — see Database selection.

    Production-parity clone

    Postgres-primary + data/schema.sql (v4.1+) + kingdom migrations — store, PaymentConductor, News Kingdom depth.

    Sign-in for testers

    Toolchain

    Node.js and package manager

    install.sh fails early if Node is below v20. Use nvm, fnm, or official installers — see INSTALL.md. The public tree’s installer path is npm; other package managers are not the documented install SSOT.

    PostgreSQL + PostGIS

    Default connection (from env.local.template):

    Quick Docker database (matches docker-compose.template.yml image tag):

    Fresh data/schema.sql (header 4.1.0) runs CREATE EXTENSION for uuid-ossp, pgcrypto, and postgis. Prefer a PostGIS-capable image or Homebrew postgresql@18 + postgis when applying schema — see Database migrations.

    Backend mode (required)

    Set DB_BACKEND_MODE before first boot (lib/database/backend-mode-config.ts — no silent default at runtime):

    ValueWhen
    k8s-postgres-fcmDefault path — Postgres app data + optional FCM push

    Recommended path

    Use the Getting Started hub flow: meet this checklist → run install.sh → apply schema → smoke-test.

    1. Confirm Node 20+ and a Postgres plan (Docker 16 or Homebrew 18 + PostGIS).
    2. Continue to Installation (./install.sh --quick or manual env).
    3. Apply Database migrations, then First success.

    Manual path

    1. 1

      Inventory accounts and ports

      Decide OSS self-host vs Ringdom-managed. Free 3000 and 5432 (or set DB_PORT / app PORT deliberately).

    2. 2

      Provision Postgres with PostGIS

      Create DB ring_platform / user ring_user (or match your DATABASE_URL). Confirm CREATE EXTENSION postgis will succeed before applying data/schema.sql.

    3. 3

      Scaffold env without inventing keys

      Copy env.local.template → .env.local (or let install.sh do it). Set DB_BACKEND_MODE, generate AUTH_SECRET / WALLET_ENCRYPTION_KEY, add one auth path. Do not paste production secrets into docs or git.

    Frequently asked questions

    Impact

    Will my clone boot without Google OAuth?

    Yes for process boot — AUTH_SECRET + DB_BACKEND_MODE matter first. Tester login still needs at least one provider: Google, Apple, or Ring Mailer (Ethereal/SMTP).

    Do I need Firebase on day one?

    Not for Postgres-primary app data. Firebase Admin / NEXT_PUBLIC_FIREBASE_* matter when you enable FCM push, or when you choose firebase-full.

    Do I need Redis?

    No for a single-replica local npm run dev. Set REDIS_URL when you want shared rate-limit / set-nx across processes.

    Ops

    Node 18 — still supported?

    No. install.sh requires Node 20+. Prefer Node 22+ per INSTALL.md troubleshooting examples.

    PostGIS failed on schema.sql?

    Install PostGIS for your Postgres (Homebrew postgis, or a PostGIS image). Flattened schema 4.1.0 enables the extension on fresh apply.

    /api/health is not healthy?

    Check .env.local has AUTH_SECRET. On Postgres detection paths the health route treats that secret as critical; missing Firebase vars matter more on non-Postgres setups.

    Managed hosting — skip this page?

    Mostly yes for first boot. Keep it as the contract when you later attach custom OAuth, payments, or a fork of Layer1.

    Related documentation

    Related documentation

    Installation

    Next-step: run install.sh and apply schema after this checklist.

    Database migrations

    Depends-on: Postgres + PostGIS before data/schema.sql apply.

    First Success Validation

    Next-step: smoke-test after npm run dev.

    Environment Configuration

    Deep-dive: full env.local.template surface beyond the first-boot minimum.

    Prerequisites met? Continue to Installation.

    Prerequisites

    Before Installation: you need a machine that can run Node.js 20+, a PostgreSQL instance for production-parity work, and (for tester sign-in) at least one Auth.js path. Versions below match install.sh, INSTALL.md, and env.local.template — not legacy Node 18 guidance. Use Founder / Developer in the docs sidebar to filter this page.

    Ring Platform is a Next.js 16 + React 19 app with a mandatory DB_BACKEND_MODE. Local and production-parity clones use PostgreSQL-primary (k8s-postgres-fcm). Firestore-only (firebase-full) is a narrower prototype path.

    Deploy target comparison

    PathWhoWhat you must bringSkips
    OSS self-host (GitHub + install.sh)Indie / hired integratorNode 20+, Git, Postgres (or Docker), .env.local, OAuth or Ring MailerManaged k8s / settler handoff
    Ringdom-managed (turn-key hosting)Founder / settlerDomain + settler brief; cluster secrets after handoffMost of this checklist locally
    firebase-full prototypeQuick UI spikeFirebase project + Node 20+ERP / PaymentConductor / News Kingdom depth on Postgres

    Default for ring-platform.org and clone parity: DB_BACKEND_MODE=k8s-postgres-fcm. See Backend modes and Database selection.

    At a glance

    RequirementVerified baselineSource / notes
    Node.jsv20+ (v22+ recommended)install.sh fails below 20; INSTALL.md recommends 22+
    npm10+INSTALL.md; installer runs npm install
    GitRecentClone connectplatform/ring
    PostgreSQL14+ (Docker image 16; Homebrew 18 common in docs)DB ring_platform, user ring_user — env.local.template

    What founders need before ringizing

    You are preparing a white-label clone — branding in ring-config.json, secrets in .env.local, and (for production features) Postgres with data/schema.sql applied.

    MVP vs production-ready

    Explore UI locally

    Node 20+, install.sh --quick, Postgres or short-lived firebase-full — see Database selection.

    Production-parity clone

    Postgres-primary + data/schema.sql (v4.1+) + kingdom migrations — store, PaymentConductor, News Kingdom depth.

    Sign-in for testers

    Toolchain

    Node.js and package manager

    install.sh fails early if Node is below v20. Use nvm, fnm, or official installers — see INSTALL.md. The public tree’s installer path is npm; other package managers are not the documented install SSOT.

    PostgreSQL + PostGIS

    Default connection (from env.local.template):

    Quick Docker database (matches docker-compose.template.yml image tag):

    Fresh data/schema.sql (header 4.1.0) runs CREATE EXTENSION for uuid-ossp, pgcrypto, and postgis. Prefer a PostGIS-capable image or Homebrew postgresql@18 + postgis when applying schema — see Database migrations.

    Backend mode (required)

    Set DB_BACKEND_MODE before first boot (lib/database/backend-mode-config.ts — no silent default at runtime):

    ValueWhen
    k8s-postgres-fcmDefault path — Postgres app data + optional FCM push

    Recommended path

    Use the Getting Started hub flow: meet this checklist → run install.sh → apply schema → smoke-test.

    1. Confirm Node 20+ and a Postgres plan (Docker 16 or Homebrew 18 + PostGIS).
    2. Continue to Installation (./install.sh --quick or manual env).
    3. Apply Database migrations, then First success.

    Manual path

    1. 1

      Inventory accounts and ports

      Decide OSS self-host vs Ringdom-managed. Free 3000 and 5432 (or set DB_PORT / app PORT deliberately).

    2. 2

      Provision Postgres with PostGIS

      Create DB ring_platform / user ring_user (or match your DATABASE_URL). Confirm CREATE EXTENSION postgis will succeed before applying data/schema.sql.

    3. 3

      Scaffold env without inventing keys

      Copy env.local.template → .env.local (or let install.sh do it). Set DB_BACKEND_MODE, generate AUTH_SECRET / WALLET_ENCRYPTION_KEY, add one auth path. Do not paste production secrets into docs or git.

    Frequently asked questions

    Impact

    Will my clone boot without Google OAuth?

    Yes for process boot — AUTH_SECRET + DB_BACKEND_MODE matter first. Tester login still needs at least one provider: Google, Apple, or Ring Mailer (Ethereal/SMTP).

    Do I need Firebase on day one?

    Not for Postgres-primary app data. Firebase Admin / NEXT_PUBLIC_FIREBASE_* matter when you enable FCM push, or when you choose firebase-full.

    Do I need Redis?

    No for a single-replica local npm run dev. Set REDIS_URL when you want shared rate-limit / set-nx across processes.

    Ops

    Node 18 — still supported?

    No. install.sh requires Node 20+. Prefer Node 22+ per INSTALL.md troubleshooting examples.

    PostGIS failed on schema.sql?

    Install PostGIS for your Postgres (Homebrew postgis, or a PostGIS image). Flattened schema 4.1.0 enables the extension on fresh apply.

    /api/health is not healthy?

    Check .env.local has AUTH_SECRET. On Postgres detection paths the health route treats that secret as critical; missing Firebase vars matter more on non-Postgres setups.

    Managed hosting — skip this page?

    Mostly yes for first boot. Keep it as the contract when you later attach custom OAuth, payments, or a fork of Layer1.

    Related documentation

    Related documentation

    Installation

    Next-step: run install.sh and apply schema after this checklist.

    Database migrations

    Depends-on: Postgres + PostGIS before data/schema.sql apply.

    First Success Validation

    Next-step: smoke-test after npm run dev.

    Environment Configuration

    Deep-dive: full env.local.template surface beyond the first-boot minimum.

    Prerequisites met? Continue to Installation.

    PostGIS
    Needed for fresh data/schema.sql
    Schema header enables CREATE EXTENSION postgis (v4.1.0+)
    Ports3000 (app), 5432 (Postgres)Custom server: node --import tsx server.ts via npm run dev
    RedisOptionalREDIS_URL — rate-limit / set-nx fall back in-process when unset
    Disk / RAMComfortable laptop classSoft operator guidance only — not a measured SLA

    At least one Auth.js path: Google OAuth, Apple, or Ring Mailer (SMTP_* or EMAIL_MODE=ethereal).

    Payments later

    WayForPay / Stripe credentials — not required for first npm run dev; add before checkout.

    Accounts checklist (founder)

    Account / artifactWhen required
    GitHub clone of connectplatform/ringAlways for OSS self-host
    PostgreSQL (local Docker, Homebrew, or hosted)Postgres modes (k8s-postgres-fcm, supabase-fcm)
    Google Cloud OAuth client or Apple Sign In or SMTP / EtherealBefore real tester login
    Firebase project (FCM keys)Optional until push notifications
    WayForPay / StripeOnly before PaymentConductor checkout
    Ringdom settler handoffIf you skip self-host and use managed hosting

    Honest time budget (approximate)

    PathTypical first-passOutcome
    ./install.sh --quick + existing PostgresTens of minutesEnv scaffold; you still apply schema + OAuth
    Full Postgres-primary bootstrapAbout an hour-class sessionMatches ring-platform.org-style local stack
    firebase-full prototypeShorter spikeSkips ERP / conductor depth

    Times vary by machine and credential setup — treat as planning ranges, not SLAs.

    Ringdom-managed hosting skips most of this checklist — settlers receive a configured cluster. Self-hosters on GitHub follow this page (OSS vs enterprise).

    supabase-fcm
    Postgres on Supabase + optional FCM
    firebase-fullFirestore prototype only

    DATABASE_MODE is removed — do not set it. Deep dive: Backend modes.

    Minimum environment variables

    Providers registered in auth.ts: Ring Mailer Credentials (email-otp, email-magic, credentials), Google OAuth, Google One Tap, Apple, wallet/crypto credentials. GitHub/Discord OAuth are not in the default provider list. Resend / AUTH_RESEND_KEY are not part of the mailer SSOT (use SMTP_* / Ethereal).

    Optional for later features:

    • BLOB_READ_WRITE_TOKEN — Vercel Blob uploads
    • WAYFORPAY_* / STRIPE_* — PaymentConductor
    • NEXT_PUBLIC_FIREBASE_* + Admin service account — FCM push (not Firestore DB on postgres-primary)
    • OPENAI_API_KEY / ANTHROPIC_API_KEY — AI matcher / Email CRM
    • REDIS_URL — optional; in-process fallback when unset

    Never commit .env.local. See Environment configuration.

    Validation checklist

    1. 1

      System

    2. 2

      Database

    3. 3

      Health (after install)

      Expect "healthy" when AUTH_SECRET is set (app/api/health/route.ts treats missing AUTH_SECRET as critical). See Monitoring.

    Optional: Docker Compose stack

    install.sh can materialize docker-compose.yml from docker-compose.template.yml (app + postgres:16-alpine + redis:7-alpine, plus optional monitoring profile). For day-one npm run dev, a single Postgres container (or Homebrew) is enough; Redis stays optional.

    Backend modes and databases

    Same-workflow: choose DB_BACKEND_MODE before first boot.

    PostGIS
    Needed for fresh data/schema.sql
    Schema header enables CREATE EXTENSION postgis (v4.1.0+)
    Ports3000 (app), 5432 (Postgres)Custom server: node --import tsx server.ts via npm run dev
    RedisOptionalREDIS_URL — rate-limit / set-nx fall back in-process when unset
    Disk / RAMComfortable laptop classSoft operator guidance only — not a measured SLA

    At least one Auth.js path: Google OAuth, Apple, or Ring Mailer (SMTP_* or EMAIL_MODE=ethereal).

    Payments later

    WayForPay / Stripe credentials — not required for first npm run dev; add before checkout.

    Accounts checklist (founder)

    Account / artifactWhen required
    GitHub clone of connectplatform/ringAlways for OSS self-host
    PostgreSQL (local Docker, Homebrew, or hosted)Postgres modes (k8s-postgres-fcm, supabase-fcm)
    Google Cloud OAuth client or Apple Sign In or SMTP / EtherealBefore real tester login
    Firebase project (FCM keys)Optional until push notifications
    WayForPay / StripeOnly before PaymentConductor checkout
    Ringdom settler handoffIf you skip self-host and use managed hosting

    Honest time budget (approximate)

    PathTypical first-passOutcome
    ./install.sh --quick + existing PostgresTens of minutesEnv scaffold; you still apply schema + OAuth
    Full Postgres-primary bootstrapAbout an hour-class sessionMatches ring-platform.org-style local stack
    firebase-full prototypeShorter spikeSkips ERP / conductor depth

    Times vary by machine and credential setup — treat as planning ranges, not SLAs.

    Ringdom-managed hosting skips most of this checklist — settlers receive a configured cluster. Self-hosters on GitHub follow this page (OSS vs enterprise).

    supabase-fcm
    Postgres on Supabase + optional FCM
    firebase-fullFirestore prototype only

    DATABASE_MODE is removed — do not set it. Deep dive: Backend modes.

    Minimum environment variables

    Providers registered in auth.ts: Ring Mailer Credentials (email-otp, email-magic, credentials), Google OAuth, Google One Tap, Apple, wallet/crypto credentials. GitHub/Discord OAuth are not in the default provider list. Resend / AUTH_RESEND_KEY are not part of the mailer SSOT (use SMTP_* / Ethereal).

    Optional for later features:

    • BLOB_READ_WRITE_TOKEN — Vercel Blob uploads
    • WAYFORPAY_* / STRIPE_* — PaymentConductor
    • NEXT_PUBLIC_FIREBASE_* + Admin service account — FCM push (not Firestore DB on postgres-primary)
    • OPENAI_API_KEY / ANTHROPIC_API_KEY — AI matcher / Email CRM
    • REDIS_URL — optional; in-process fallback when unset

    Never commit .env.local. See Environment configuration.

    Validation checklist

    1. 1

      System

    2. 2

      Database

    3. 3

      Health (after install)

      Expect "healthy" when AUTH_SECRET is set (app/api/health/route.ts treats missing AUTH_SECRET as critical). See Monitoring.

    Optional: Docker Compose stack

    install.sh can materialize docker-compose.yml from docker-compose.template.yml (app + postgres:16-alpine + redis:7-alpine, plus optional monitoring profile). For day-one npm run dev, a single Postgres container (or Homebrew) is enough; Redis stays optional.

    Backend modes and databases

    Same-workflow: choose DB_BACKEND_MODE before first boot.

    PostGIS
    Needed for fresh data/schema.sql
    Schema header enables CREATE EXTENSION postgis (v4.1.0+)
    Ports3000 (app), 5432 (Postgres)Custom server: node --import tsx server.ts via npm run dev
    RedisOptionalREDIS_URL — rate-limit / set-nx fall back in-process when unset
    Disk / RAMComfortable laptop classSoft operator guidance only — not a measured SLA

    At least one Auth.js path: Google OAuth, Apple, or Ring Mailer (SMTP_* or EMAIL_MODE=ethereal).

    Payments later

    WayForPay / Stripe credentials — not required for first npm run dev; add before checkout.

    Accounts checklist (founder)

    Account / artifactWhen required
    GitHub clone of connectplatform/ringAlways for OSS self-host
    PostgreSQL (local Docker, Homebrew, or hosted)Postgres modes (k8s-postgres-fcm, supabase-fcm)
    Google Cloud OAuth client or Apple Sign In or SMTP / EtherealBefore real tester login
    Firebase project (FCM keys)Optional until push notifications
    WayForPay / StripeOnly before PaymentConductor checkout
    Ringdom settler handoffIf you skip self-host and use managed hosting

    Honest time budget (approximate)

    PathTypical first-passOutcome
    ./install.sh --quick + existing PostgresTens of minutesEnv scaffold; you still apply schema + OAuth
    Full Postgres-primary bootstrapAbout an hour-class sessionMatches ring-platform.org-style local stack
    firebase-full prototypeShorter spikeSkips ERP / conductor depth

    Times vary by machine and credential setup — treat as planning ranges, not SLAs.

    Ringdom-managed hosting skips most of this checklist — settlers receive a configured cluster. Self-hosters on GitHub follow this page (OSS vs enterprise).

    supabase-fcm
    Postgres on Supabase + optional FCM
    firebase-fullFirestore prototype only

    DATABASE_MODE is removed — do not set it. Deep dive: Backend modes.

    Minimum environment variables

    Providers registered in auth.ts: Ring Mailer Credentials (email-otp, email-magic, credentials), Google OAuth, Google One Tap, Apple, wallet/crypto credentials. GitHub/Discord OAuth are not in the default provider list. Resend / AUTH_RESEND_KEY are not part of the mailer SSOT (use SMTP_* / Ethereal).

    Optional for later features:

    • BLOB_READ_WRITE_TOKEN — Vercel Blob uploads
    • WAYFORPAY_* / STRIPE_* — PaymentConductor
    • NEXT_PUBLIC_FIREBASE_* + Admin service account — FCM push (not Firestore DB on postgres-primary)
    • OPENAI_API_KEY / ANTHROPIC_API_KEY — AI matcher / Email CRM
    • REDIS_URL — optional; in-process fallback when unset

    Never commit .env.local. See Environment configuration.

    Validation checklist

    1. 1

      System

    2. 2

      Database

    3. 3

      Health (after install)

      Expect "healthy" when AUTH_SECRET is set (app/api/health/route.ts treats missing AUTH_SECRET as critical). See Monitoring.

    Optional: Docker Compose stack

    install.sh can materialize docker-compose.yml from docker-compose.template.yml (app + postgres:16-alpine + redis:7-alpine, plus optional monitoring profile). For day-one npm run dev, a single Postgres container (or Homebrew) is enough; Redis stays optional.

    Backend modes and databases

    Same-workflow: choose DB_BACKEND_MODE before first boot.

    1. Docs
    2. /Getting Started
    3. /Prerequisites

    Updated Aug 12, 20267 min listen

    1. Docs
    2. /Getting Started
    3. /Prerequisites

    Updated Aug 12, 20267 min listen

    1. Docs
    2. /Getting Started
    3. /Prerequisites

    Updated Aug 12, 20267 min listen