Start here

Interactive installer

Walk through configuration with the included setup script.

The interactive install.sh script now supports full VPS setup flow plus deployment-specific config generation.


Run the Installer

bash install.sh

The script runs 7 steps.


Step 1: System Prep + Dependency Check

You can choose:

  • Auto-install mode (Ubuntu/Debian VPS):
    • Node.js 22+
    • Git
    • Docker + Docker Compose plugin
    • Core system packages
  • Manual mode: script only validates dependencies.

Step 2: Basic App Configuration

Prompts include:

? Community name [Roost]
? Community tagline [Learn, Build, Grow Together]
? Your domain (or localhost for dev) [localhost]

localhost uses local HTTP URLs. Domain values use HTTPS URLs. For Docker VPS target, localhost is not allowed because SSL is enforced.


Step 3: Database Provider

1) Supabase Cloud
2) Supabase Self-hosted

Provider-specific credentials are collected.

For Supabase Self-hosted, installer can auto-generate JWT/anon/service keys (recommended), with manual key entry optional.


Step 4: Deployment Target

1) Docker (Self-hosted VPS)
2) Dockploy (Self-hosted VPS)
3) Vercel (Frontend + separate backend)
4) Netlify (Frontend + separate backend)
5) Local Development Only

Important:

  • Docker and Dockploy targets verify Docker runtime.
  • Docker target requires a real domain + Let’s Encrypt email for built-in SSL.
  • Dockploy target is Supabase self-hosted by design.
  • Dockploy target auto-generates required Supabase secrets/keys into .env.dokploy.

Step 5: Optional Services

Prompts include:

  • Storage (AWS S3 or S3-compatible storage, including optional bundled MinIO)
  • SMTP
  • Redis
  • Stripe

For Docker target:

  • Redis default URL is redis://redis:6379.
  • Traefik reverse proxy + Let’s Encrypt TLS are configured automatically.
  • If Docker daemon minimum API is 1.40+ (Docker Engine 29+), installer adds a systemd override:
    • DOCKER_MIN_API_VERSION=1.24 (Traefik Docker provider compatibility)
  • If you pick S3-Compatible, you can choose Self-host MinIO on this VPS.
    • Installer auto-generates MinIO credentials (or lets you set them)
    • Enables COMPOSE_PROFILES=minio
    • Sets S3_ENDPOINT=https://your-domain and routes bucket paths via Traefik

Step 6: File Generation

Always generated:

  • .env.local
  • server/.env

Deployment-specific:

  • Docker: .env (compose runtime env)
  • Dockploy: .env.dokploy
  • Vercel: vercel.json
  • Netlify: netlify.toml

Step 7: Dependency Installation

If you choose yes, the script installs frontend and backend npm dependencies.


Post-Install Checks (Docker Target)

For Docker (Self-hosted VPS), installer now runs automatic checks after setup:

  • .env generated
  • production domain + Let’s Encrypt email present
  • docker compose config validation
  • Docker minimum API compatibility status for Traefik

If checks report blocking issues, fix them and re-run bash install.sh.


Quick Start Output by Target

Docker

docker compose up -d --build

Dockploy

Use .env.dokploy values in Dockploy environment UI (or run manually with docker-compose.dokploy.yml).

Vercel / Netlify

Frontend deploy commands are shown; backend remains separate.


Re-running the Installer

You can run bash install.sh any time. It overwrites generated env/config files.

Back up current values first if needed:

cp .env.local .env.local.backup
cp server/.env server/.env.backup
cp .env .env.backup 2>/dev/null || true
cp .env.dokploy .env.dokploy.backup 2>/dev/null || true

What Installer Does Not Do Automatically

  • DNS record setup
  • Database schema execution (schema.sql)
  • First admin creation

Use deployment/database guides for those operational steps.

These docs live with the source code.Improve this page ↗

Search the docs

Find your next step.