---
title: "Self-hosted deployment"
description: "Docker, install.sh, and PostgreSQL without Kubernetes manifests in the public repo"
locale: "en"
---
# Self-hosted deployment

The **public OSS repository** (`connectplatform/ring`) is designed for community self-hosting via Docker and `install.sh`. It does **not** ship Kubernetes manifests, Ring CLI, or empire deployment scripts.

## What ships in OSS

- `install.sh` — interactive clone setup
- `scripts/setup-dev.sh`, `scripts/setup-env.js`, `scripts/run-migration.sh`
- `Dockerfile`, `DOCKER_SETUP.md`
- `env.local.template`, `docker.env.template`

## What stays private (Ringdom empire ops)

- `k8s/` manifests and secrets (gitignored locally)
- `cli/` Ring deployment CLI (gitignored)
- Internal sync/propagation scripts

Ringdom settlers receive managed K8s hosting — see [ringdom.org](https://ringdom.org).

## Recommended self-hosted stack

1. Clone repo and run `./install.sh`
2. PostgreSQL + apply [migrations](/docs/getting-started/migrations.md)
3. Set `DB_BACKEND_MODE=k8s-postgres-fcm`
4. Configure Auth.js, WayForPay/Stripe, FCM keys via env
5. `docker compose up` or `npm run build && npm start`

## Related

- [Docker deployment](/docs/deployment/docker.md)
- [OSS vs enterprise](/docs/development/oss-vs-enterprise.md)
- [Environment variables](/docs/deployment/environment.md)
