---
title: "Quick Start"
description: "Choose Ringdom managed hosting or self-host with install.sh — founder deployment paths plus required .env.local vars for a local Postgres instance"
locale: "en"
---
# Quick Start

Get a Ring Platform clone running in minutes — either as a **managed Ringdom settlement** or as a **self-hosted** open-source install via `./install.sh`.

> **Info**
> Use **Founder** / **Developer** tabs. Founders compare ways to launch. Developers configure env vars and boot Postgres.

### For founders

Pick the path that matches how much ops you want on your plate.

### What each path means

| Path | Best when | You get |
|------|-----------|---------|
| **Ringdom.org** | You type your needs in chat with AI agent | AI builds your superapp, deploys and maintains |
| **Self-host OSS** | You want full control on your machine / VPS | `install.sh` → Next.js + PostgreSQL clone you operate |

Ringdom.org is AI-managed Enterprise Cloud Service [`https://ringdom.org/new`](https://ringdom.org/new) for founders who know what they need. 

### Founder checklist — self-host

**Clone and run install**

{`git clone https://github.com/connectplatform/ring.git
cd ring
./install.sh`}

`install.sh` copies `env.local.template` → `.env.local`, generates secrets, and walks interactive setup.

**Fill required env vars**

At minimum set the variables in the **Developer** section below (`DB_BACKEND_MODE`, Postgres `DB_*`, `AUTH_SECRET`, one OAuth provider). Without these the app will not boot healthy.

**Start Postgres + schema, then `npm run dev`**

Follow [Installation](/docs/getting-started/installation.md) for Docker Postgres and `data/schema.sql`. Open `http://localhost:3000`.

  
- **[Full installation guide](/docs/getting-started/installation.md)** — Path 1 install.sh vs manual, migrations, and OAuth redirect URIs.

  
- **[WalletConductor](/docs/features/wallet-conductor.md)** — After boot — credit top-up, desk, and custodial wallets.

  
- **[PaymentConductor](/docs/features/payment-conductor.md)** — Store / membership / wallet_topup rails when you are ready for payments.

### For developers

## Self-host with `install.sh`

{`git clone https://github.com/connectplatform/ring.git
cd ring
./install.sh
# or: ./install.sh --quick`}

The public OSS repo does **not** ship the commercial Ring CLI. See [Community tooling](/docs/development/community-tooling.md).

`install.sh` will:

1. Verify Node.js 20+
2. Copy `env.local.template` → `.env.local` (generates `AUTH_SECRET` / `WALLET_ENCRYPTION_KEY` when prompted)
3. Copy `ring-config.template.json` → `ring-config.json` when missing
4. Run `npm install`

Then finish the required env values below and start PostgreSQL.

## Required environment variables

SSOT template: `env.local.template`. These are the **minimum** for a self-hosted local instance with `DB_BACKEND_MODE=k8s-postgres-fcm` (recommended).

### Critical — will not start without

{`# CRITICAL — platform refuses boot without a mode
DB_BACKEND_MODE=k8s-postgres-fcm

# PostgreSQL (required for k8s-postgres-fcm / supabase-fcm)
DB_HOST=localhost
DB_PORT=5432
DB_NAME=ring_platform
DB_USER=ring_user
DB_PASSWORD=ring_password_2024
DB_SSL=false
# Optional single URL instead of DB_* parts:
# DATABASE_URL=postgresql://ring_user:ring_password_2024@localhost:5432/ring_platform

# Auth.js — generate: openssl rand -base64 32
AUTH_SECRET=

# Public URL for callbacks / links
NEXT_PUBLIC_BASE_URL=http://localhost:3000
NODE_ENV=development`}

### Auth providers (at least one for login)

{`AUTH_GOOGLE_ID=
AUTH_GOOGLE_SECRET=
# Optional Apple:
# AUTH_APPLE_ID=
# AUTH_APPLE_SECRET=
# Optional Ring Mailer:
# EMAIL_MODE=ethereal
# or SMTP_HOST= / SMTP_USER= / SMTP_PASSWORD=`}

Google Cloud redirect URI for local:

`http://localhost:3000/api/auth/callback/google`

### Real-time tunnel (local / self-hosted)

{`RING_DEPLOY_TARGET=self-hosted
NEXT_PUBLIC_RING_DEPLOY_TARGET=self-hosted`}

### Locales (defaults match community portal)

{`NEXT_PUBLIC_SUPPORTED_LOCALES=en,uk,ru
NEXT_PUBLIC_DEFAULT_LOCALE=en`}

### Wallet / Solana (required once you open custodial wallet features)

Generated by `install.sh` when present in template:

{`WALLET_ENCRYPTION_KEY=   # 32+ hex chars — install.sh can generate
SOLANA_RPC_URL=https://api.devnet.solana.com
# SOLANA_TREASURY_PRIVATE_KEY=   # needed for gasless sends / desk treasury ops
# SOLANA_FEE_PAYER_PRIVATE_KEY=`}

### Optional for first homepage boot

| Area | Vars | Needed for |
|------|------|------------|
| Firebase FCM | `AUTH_FIREBASE_*`, `NEXT_PUBLIC_FIREBASE_*` | Push only — not required for Postgres homepage |
| WayForPay / Stripe | `WAYFORPAY_*`, `STRIPE_*` | Checkout — add before store payments |
| Supabase mode | `SUPABASE_URL`, `SUPABASE_ANON_KEY`, `SUPABASE_SERVICE_KEY` | Only if `DB_BACKEND_MODE=supabase-fcm` |

Full annotated list: `env.local.template`. Deep walkthrough: [Installation → Configure environment](/docs/getting-started/installation.md#configure-environment).

## Postgres + first boot

**Start PostgreSQL 16**

{`docker run -d --name ring-postgres-dev \\
  -e POSTGRES_USER=ring_user \\
  -e POSTGRES_PASSWORD=ring_password_2024 \\
  -e POSTGRES_DB=ring_platform \\
  -p 5432:5432 \\
  postgres:16-alpine`}

**Apply schema**

{`export DATABASE_URL="postgresql://ring_user:ring_password_2024@localhost:5432/ring_platform"
psql "$DATABASE_URL" -f data/schema.sql`}

Then apply kingdom migrations as listed in [Migrations](/docs/getting-started/migrations.md).

**Run the app**

{`npm run dev
# open http://localhost:3000
curl -s http://localhost:3000/api/health`}

Expect `status: "healthy"` when `AUTH_SECRET` and DB are correct (`degraded` / 503 usually means missing `AUTH_SECRET`).

## Related

  
- **[Installation](/docs/getting-started/installation.md)** — install.sh vs manual, Docker Postgres, OAuth.

  
- **[Prerequisites](/docs/getting-started/prerequisites.md)** — Node 20+, Postgres, what is optional on day one.

  
- **[First success](/docs/getting-started/first-success.md)** — Health check and smoke paths after boot.

  
- **[Deployment](/docs/deployment.md)** — Self-hosted, Docker, Vercel, environment.
