← All guides

Supabase ownership guide

Self-host Supabase only if you are ready to own backups

SupabaseVPS

Short answer

A clear decision plus a practical Compose setup path with named volumes, env vars, domains, backups, updates, and restore testing planned before launch.

Why this matters

Managed Supabase is convenient, but you want more control, predictable cost, data ownership, or one VPS for multiple small apps.

Walkthrough

  1. 01

    Decide if self-hosting is actually worth it

    If you do not want to maintain a database, stay managed. Self-hosting is for control and predictable ownership, not for avoiding responsibility.

    • Choose managed Supabase if you need platform support and do not want database operations.
    • Choose self-hosting if data control, isolated infrastructure, or predictable cost matters more.
    • Do not self-host without a backup and restore plan.
  2. 02

    Deploy Supabase as Docker Compose

    Supabase self-hosting is a Docker Compose style deployment. A panel can help manage it, but the critical production parts are persistent volumes, secrets, backups, updates, and restore tests.

    • Use Docker Compose rather than treating Supabase as a single simple app.
    • Put secrets in the server/deploy-panel environment store and reference them in the compose file.
    • Use Docker named volumes for Postgres and storage data, not repo-relative mounts.
  3. 03

    Connect apps and verify recovery

    The first success is not the dashboard loading. The real success is app connectivity and recoverable data.

    • Point your app DATABASE_URL and Supabase env vars at the self-hosted service.
    • Test auth, row inserts, file uploads, and API calls from the deployed app.
    • Run a restore test before treating the server as production.

Where RepoAssistant fits

RepoAssistant can wire app, database, backups, and handover so self-hosting does not become a blind server gamble.

Primary sources