Concepts, value, and typical clone scenarios — less code.
Concepts, value, and typical clone scenarios — less code.
Preparing Ring content
Preparing Ring content
Preparing Ring content
Use the Founder / Developer tabs in the docs sidebar to filter this page. The steps below were checked against the public repo layout: ring/install.sh, ring/web/, ring/cli/, ring/scripts/.
The public repository connectplatform/ring (Apache 2.0) contains everything you need to run a clone on one server: the Next.js app in web/, the install.sh wizard, a flattened PostgreSQL schema, Docker files and the ring CLI. Kubernetes manifests, CI workflows and Ringdom's build pipeline are not in it.
Known issue: ./install.sh setup-db and npm run db:apply-schema fail on a fresh public checkout. The first looks for web/scripts/setup-clone-db.sh and the second looks for ring/data/schema.sql, and neither path exists after the move to web/. Apply web/data/schema.sql with psql as shown in Step 2 below.
| Earlier docs said | Current public repo |
|---|---|
Run scripts/setup-dev.sh, npm run setup:env, scripts/run-migration.sh | None of these scripts exist in the public tree. ./install.sh (dev mode) is the wizard |
| Apply numbered migrations | Fresh installs apply only web/data/schema.sql (flattened v4.1.0) |
cli/ is gitignored | cli/ ships publicly. See Ring CLI |
docker compose up gives a full stack | Committed docker-compose.yml has no Postgres service and no DB_BACKEND_MODE. docker-compose.template.yml has both |
One Linux box with Node and PostgreSQL is the path on this page. The hub compares every option.
Same app in a container. Easier upgrades and rollbacks on any Docker host.
Hosted Next.js. Pair it with Supabase, your own PostgreSQL, or firebase-full mode.
Ringdom settlers get Kubernetes hosting, CI and the deploy pipeline run for them.
No, not in k8s-postgres-fcm mode. Without NEXT_PUBLIC_FIREBASE_PROJECT_ID the app logs a warning and turns push off. firebase-full mode is different: it requires the AUTH_FIREBASE_* keys.
Yes. Use ring upgrade for a preview, then ring upgrade --apply. It merges upstream system files and never commits for you.
Deep-dive: every environment variable the app reads, beyond the minimum set here.
Prerequisite: choose between k8s-postgres-fcm, supabase-fcm and firebase-full.
Next-step: package the same build as a container.
See-also: what Ringdom runs for settlers that the public repo does not include.
Use the Founder / Developer tabs in the docs sidebar to filter this page. The steps below were checked against the public repo layout: ring/install.sh, ring/web/, ring/cli/, ring/scripts/.
The public repository connectplatform/ring (Apache 2.0) contains everything you need to run a clone on one server: the Next.js app in web/, the install.sh wizard, a flattened PostgreSQL schema, Docker files and the ring CLI. Kubernetes manifests, CI workflows and Ringdom's build pipeline are not in it.
Known issue: ./install.sh setup-db and npm run db:apply-schema fail on a fresh public checkout. The first looks for web/scripts/setup-clone-db.sh and the second looks for ring/data/schema.sql, and neither path exists after the move to web/. Apply web/data/schema.sql with psql as shown in Step 2 below.
| Earlier docs said | Current public repo |
|---|---|
Run scripts/setup-dev.sh, npm run setup:env, scripts/run-migration.sh | None of these scripts exist in the public tree. ./install.sh (dev mode) is the wizard |
| Apply numbered migrations | Fresh installs apply only web/data/schema.sql (flattened v4.1.0) |
cli/ is gitignored | cli/ ships publicly. See Ring CLI |
docker compose up gives a full stack | Committed docker-compose.yml has no Postgres service and no DB_BACKEND_MODE. docker-compose.template.yml has both |
One Linux box with Node and PostgreSQL is the path on this page. The hub compares every option.
Same app in a container. Easier upgrades and rollbacks on any Docker host.
Hosted Next.js. Pair it with Supabase, your own PostgreSQL, or firebase-full mode.
Ringdom settlers get Kubernetes hosting, CI and the deploy pipeline run for them.
No, not in k8s-postgres-fcm mode. Without NEXT_PUBLIC_FIREBASE_PROJECT_ID the app logs a warning and turns push off. firebase-full mode is different: it requires the AUTH_FIREBASE_* keys.
Yes. Use ring upgrade for a preview, then ring upgrade --apply. It merges upstream system files and never commits for you.
Deep-dive: every environment variable the app reads, beyond the minimum set here.
Prerequisite: choose between k8s-postgres-fcm, supabase-fcm and firebase-full.
Next-step: package the same build as a container.
See-also: what Ringdom runs for settlers that the public repo does not include.
Use the Founder / Developer tabs in the docs sidebar to filter this page. The steps below were checked against the public repo layout: ring/install.sh, ring/web/, ring/cli/, ring/scripts/.
The public repository connectplatform/ring (Apache 2.0) contains everything you need to run a clone on one server: the Next.js app in web/, the install.sh wizard, a flattened PostgreSQL schema, Docker files and the ring CLI. Kubernetes manifests, CI workflows and Ringdom's build pipeline are not in it.
Known issue: ./install.sh setup-db and npm run db:apply-schema fail on a fresh public checkout. The first looks for web/scripts/setup-clone-db.sh and the second looks for ring/data/schema.sql, and neither path exists after the move to web/. Apply web/data/schema.sql with psql as shown in Step 2 below.
| Earlier docs said | Current public repo |
|---|---|
Run scripts/setup-dev.sh, npm run setup:env, scripts/run-migration.sh | None of these scripts exist in the public tree. ./install.sh (dev mode) is the wizard |
| Apply numbered migrations | Fresh installs apply only web/data/schema.sql (flattened v4.1.0) |
cli/ is gitignored | cli/ ships publicly. See Ring CLI |
docker compose up gives a full stack | Committed docker-compose.yml has no Postgres service and no DB_BACKEND_MODE. docker-compose.template.yml has both |
One Linux box with Node and PostgreSQL is the path on this page. The hub compares every option.
Same app in a container. Easier upgrades and rollbacks on any Docker host.
Hosted Next.js. Pair it with Supabase, your own PostgreSQL, or firebase-full mode.
Ringdom settlers get Kubernetes hosting, CI and the deploy pipeline run for them.
No, not in k8s-postgres-fcm mode. Without NEXT_PUBLIC_FIREBASE_PROJECT_ID the app logs a warning and turns push off. firebase-full mode is different: it requires the AUTH_FIREBASE_* keys.
Yes. Use ring upgrade for a preview, then ring upgrade --apply. It merges upstream system files and never commits for you.
Deep-dive: every environment variable the app reads, beyond the minimum set here.
Prerequisite: choose between k8s-postgres-fcm, supabase-fcm and firebase-full.
Next-step: package the same build as a container.
See-also: what Ringdom runs for settlers that the public repo does not include.
install.sh, then hands you the server and the .env.local secrets.Clone and run the wizard
Dev mode checks your system, seeds ring-config.json from ring-config.template.json if missing, runs npm install, walks through Firebase and OAuth setup, and writes web/.env.local from env.local.template with a generated AUTH_SECRET. Answer no to the database prompt for now (see the warning above).
Create the database and apply the schema
Grant your app role access to the public schema. Do not replay data/migrations/*.sql on an empty database. Those files are already folded into schema.sql.
Set the required environment
| Variable | Why |
|---|---|
DB_BACKEND_MODE=k8s-postgres-fcm | Required. PostgreSQL plus optional FCM push. The cluster does not have to be Kubernetes |
DB_HOST, DB_NAME, DB_USER, DB_PASSWORD | Required in this mode (validateBackendModeConfig) |
DB_PORT, DB_SSL | Defaults 5432 and false in the template |
AUTH_SECRET | Auth.js session encryption |
NEXT_PUBLIC_API_URL, AUTH_URL | Your public origin |
PAYMENT_DEFAULT_PROCESSOR | wayforpay, stripe or paypal |
NEXT_PUBLIC_FIREBASE_PROJECT_ID | Optional. Missing means push is disabled |
Build, start and check health
npm start runs the custom server.ts, not next start. Keep it under a process manager such as systemd. From the repo root, npm run build and npm start delegate to web/ through scripts/run-web.sh.
install.sh./install.sh prod offers three options: Vercel (installs the Vercel CLI, runs vercel --prod), Ubuntu over SSH, and Kubernetes. The Kubernetes option applies k8s/*.yaml only if you have created a k8s/ directory yourself. For containers, start from Dockerfile (multi-stage node:25-alpine, runtime target, port 3000) and docker-compose.template.yml.
| Path | Reason |
|---|---|
k8s/ manifests and secrets | Ringdom production topology |
.forgejo/ workflows | Stripped from the GitHub mirror by scripts/push-github-oss.sh |
Order Lab (features/crm/lab, my-orders, my-jobs, calculator routes) | Empire overlay only. scripts/check-no-org-leak.sh gates it |
install.sh, then hands you the server and the .env.local secrets.Clone and run the wizard
Dev mode checks your system, seeds ring-config.json from ring-config.template.json if missing, runs npm install, walks through Firebase and OAuth setup, and writes web/.env.local from env.local.template with a generated AUTH_SECRET. Answer no to the database prompt for now (see the warning above).
Create the database and apply the schema
Grant your app role access to the public schema. Do not replay data/migrations/*.sql on an empty database. Those files are already folded into schema.sql.
Set the required environment
| Variable | Why |
|---|---|
DB_BACKEND_MODE=k8s-postgres-fcm | Required. PostgreSQL plus optional FCM push. The cluster does not have to be Kubernetes |
DB_HOST, DB_NAME, DB_USER, DB_PASSWORD | Required in this mode (validateBackendModeConfig) |
DB_PORT, DB_SSL | Defaults 5432 and false in the template |
AUTH_SECRET | Auth.js session encryption |
NEXT_PUBLIC_API_URL, AUTH_URL | Your public origin |
PAYMENT_DEFAULT_PROCESSOR | wayforpay, stripe or paypal |
NEXT_PUBLIC_FIREBASE_PROJECT_ID | Optional. Missing means push is disabled |
Build, start and check health
npm start runs the custom server.ts, not next start. Keep it under a process manager such as systemd. From the repo root, npm run build and npm start delegate to web/ through scripts/run-web.sh.
install.sh./install.sh prod offers three options: Vercel (installs the Vercel CLI, runs vercel --prod), Ubuntu over SSH, and Kubernetes. The Kubernetes option applies k8s/*.yaml only if you have created a k8s/ directory yourself. For containers, start from Dockerfile (multi-stage node:25-alpine, runtime target, port 3000) and docker-compose.template.yml.
| Path | Reason |
|---|---|
k8s/ manifests and secrets | Ringdom production topology |
.forgejo/ workflows | Stripped from the GitHub mirror by scripts/push-github-oss.sh |
Order Lab (features/crm/lab, my-orders, my-jobs, calculator routes) | Empire overlay only. scripts/check-no-org-leak.sh gates it |
install.sh, then hands you the server and the .env.local secrets.Clone and run the wizard
Dev mode checks your system, seeds ring-config.json from ring-config.template.json if missing, runs npm install, walks through Firebase and OAuth setup, and writes web/.env.local from env.local.template with a generated AUTH_SECRET. Answer no to the database prompt for now (see the warning above).
Create the database and apply the schema
Grant your app role access to the public schema. Do not replay data/migrations/*.sql on an empty database. Those files are already folded into schema.sql.
Set the required environment
| Variable | Why |
|---|---|
DB_BACKEND_MODE=k8s-postgres-fcm | Required. PostgreSQL plus optional FCM push. The cluster does not have to be Kubernetes |
DB_HOST, DB_NAME, DB_USER, DB_PASSWORD | Required in this mode (validateBackendModeConfig) |
DB_PORT, DB_SSL | Defaults 5432 and false in the template |
AUTH_SECRET | Auth.js session encryption |
NEXT_PUBLIC_API_URL, AUTH_URL | Your public origin |
PAYMENT_DEFAULT_PROCESSOR | wayforpay, stripe or paypal |
NEXT_PUBLIC_FIREBASE_PROJECT_ID | Optional. Missing means push is disabled |
Build, start and check health
npm start runs the custom server.ts, not next start. Keep it under a process manager such as systemd. From the repo root, npm run build and npm start delegate to web/ through scripts/run-web.sh.
install.sh./install.sh prod offers three options: Vercel (installs the Vercel CLI, runs vercel --prod), Ubuntu over SSH, and Kubernetes. The Kubernetes option applies k8s/*.yaml only if you have created a k8s/ directory yourself. For containers, start from Dockerfile (multi-stage node:25-alpine, runtime target, port 3000) and docker-compose.template.yml.
| Path | Reason |
|---|---|
k8s/ manifests and secrets | Ringdom production topology |
.forgejo/ workflows | Stripped from the GitHub mirror by scripts/push-github-oss.sh |
Order Lab (features/crm/lab, my-orders, my-jobs, calculator routes) | Empire overlay only. scripts/check-no-org-leak.sh gates it |