- Supabase
- Docker Compose
- Postgres
- NGINX
Supabase VPS HostingPostgres, auth and storage on your own server
Supabase bundles Postgres, auth, storage, realtime and Studio in one stack. Self-host it with Docker Compose and keep your data and keys on a server you control. We prepare the VPS, Docker and HTTPS; you run the stack.
- KVM virtualisation
- NVMe storage
- Root SSH access
- Free one-time setup
- 99.9% uptime SLA
$systemctl list-units --type=service --state=active
- dockerSupabase services (compose stack)
- postgresdatabase inside the stack
- nginxHTTPS reverse proxy to port 8000
- ufwfirewall: 22, 80, 443
- fail2banSSH brute-force guard
- unattended-upgradessecurity updates
Installed and secured before handover.
Why Self-Host Supabase on a VPS
Hosted Supabase is convenient. Self-hosting gives you the same building blocks on a server and at a cost you control.
Your data on your server
The database and uploaded files stay where you choose.
Flat server cost
No per-project plan limits on the server you run.
The same API and tools
Studio, client libraries and the REST and auth APIs work as documented.
Full database access
Connect with any Postgres tool, and run your own extensions and settings.
How Self-Hosted Supabase Is Set Up
A Docker Compose stack behind an HTTPS reverse proxy.
-
Reverse proxy
NGINX
HTTPS on your domain, passing to the API gateway on port 8000.
-
API gateway
Envoy (Kong optional)
One entry point to Studio and the APIs.
-
Services
Auth, REST, Realtime, Storage, Functions, Studio
The Supabase services, run as containers.
-
Database
Postgres, with a connection pooler
Your data, with Supavisor in front.
-
Files
Local volume on NVMe
Uploaded files for Storage.
Engineer's notes
- Supabase's guide lists 4 GB RAM, 2 cores and 40 GB SSD as the minimum, and 8 GB+, 4 cores+ and 80 GB+ as recommended.
- Generate your own keys and set a dashboard password before production; the sample values in the guide are not safe.
- The stack serves plain HTTP on port 8000 by default; put a reverse proxy with HTTPS in front, especially for OAuth sign-in.
- Configure an SMTP server for sign-up and password emails.
- 443HTTPS, your reverse proxy
- 80HTTP, redirects to HTTPS
- 22SSH, you only
- 8000API gateway, behind the proxy
What You Can Run
A backend for a web or mobile app
Database, auth and storage behind one API.
Postgres with auth and file storage
Use what you need, ignore the rest.
Prototypes and staging
The same stack as production at low cost.
Internal tools
Row-level security and auth for team apps.
Realtime features
Live updates driven by database changes.
Edge functions
Small server-side functions beside your data.
Which Plan for Your Supabase Server
The stack runs many services at once. Memory decides how comfortable it is.
A starting point, not a limit: every plan upgrades in place, keeping your data, IP address and configuration.
Running Supabase With Docker Compose
Follow Supabase's self-hosting guide; these are the steps it describes.
-
Get the files
A shallow clone of the self-hosted configuration, as in the guide.
git clone --depth 1 https://github.com/supabase/supabasemkdir supabase-project && cp -rf supabase/docker/. supabase-project -
Create your configuration
Copy the example settings, then generate keys and set the dashboard password and URLs as the guide says.
cd supabase-project && cp .env.example .envsh utils/generate-keys.sh -
Start the stack
Pull the images and start every service.
docker compose pulldocker compose up -d -
Check the containers
Every service should be healthy.
docker compose ps -
Update later
Take a snapshot first, then follow the guide's update steps.
docker compose pulldocker compose up -d
Example commands: adjust names, paths and versions to your project. Deploying and maintaining your application is yours to do, or ask us for a quote.
Supabase commands you will use every week
Copy, paste, adjust the names. Each one is safe to run as your own user on the server.
Start or update the stack
docker compose pulldocker compose up -d
See container health
docker compose ps
Follow one service log
docker compose logs -f auth
Restart one service
docker compose restart studio
Disk used by Docker
docker system df
Stop the stack (data stays in volumes)
docker compose down
Hosted Supabase or Self-Hosted on a VPS?
Hosted Supabase removes the work. Self-hosting gives you control and a flat cost.
Hosted Supabase
- PricingPer project and usage plan
- Where data livesThe provider's regions
- Updates and backupsHandled by the provider
- ScalingPlan upgrades
- Server administrationHandled by the provider
Supabase VPS
- PricingFlat server cost
- Where data livesYour server, your location
- Updates and backupsYours: updates and extra backups
- ScalingA bigger VPS plan
- Server administrationYours, after our free setup
Your Supabase server
Free one-time setup before you get access. Here is what happens, and what you receive.
Pick a plan and a location
Resources that fit your workload, in the datacentre closest to your users.
Tell us your Supabase setup
Versions, database and domain: at order or right after.
We install and secure it
Server hardened, the stack installed and tested, HTTPS on your domain.
You get root
SSH to a working server, ready for your code and data.
Installed for you
- Docker and the Compose plugin installed
- NGINX reverse proxy with HTTPS on your domain, ready for port 8000
- Firewall open for SSH, HTTP and HTTPS only
- The Supabase configuration, keys, dashboard password and SMTP are set up by you, following the self-hosting guide
Secured before handover
- Non-root sudo user created for daily work
- SSH key login, password login for root disabled
- Firewall (UFW) open only for the ports you use
- Fail2ban blocking repeated login attempts
- Automatic security updates enabled
- Free Let's Encrypt SSL on your domain
- Timezone, swap and hostname configured
Not included (we say so up front)
- Ongoing server administration
- Application maintenance and updates
- Debugging your code
- Migrating existing sites or data
Security and Performance for Supabase
Security
- Replace every sample secret; never run with the values from the example file.
- Set a strong dashboard password and keep Studio behind HTTPS.
- Keep the database port closed to the internet unless you really need it.
- Follow Supabase's update steps and keep extra database backups.
Performance
- Give the stack enough RAM; a dozen services start together.
- Use the connection pooler for many client connections.
- Keep free disk space for the database and uploaded files.
- Check container logs with `docker compose logs` when a service is unhealthy.
Built from the official documentation
VPS Plans for Supabase
VPS-1 meets Supabase's stated minimum of 4 GB RAM and 2 cores. For anything beyond testing, choose VPS-2 or above.
VPS-1
Small websites, APIs, bots and development servers.
- 2 vCores
- 4 GB RAM
- 40 GB NVMe
- 500 Mbps
- Full root and SSH access
- Free initial stack installation
- Server hardening and firewall setup
- Daily backup of the previous 24 hours
- Unlimited traffic *
- Anti-DDoS protection
- Dedicated IPv4 and IPv6
- KVM virtualisation
VPS-2
Production apps, WordPress and online stores.
- 4 vCores
- 8 GB RAM
- 75 GB NVMe
- 1 Gbps
- Full root and SSH access
- Free initial stack installation
- Server hardening and firewall setup
- Daily backup of the previous 24 hours
- Unlimited traffic *
- Anti-DDoS protection
- Dedicated IPv4 and IPv6
- KVM virtualisation
VPS-3
Busy stores, SaaS products and several projects.
- 6 vCores
- 12 GB RAM
- 100 GB NVMe
- 2 Gbps
- Full root and SSH access
- Free initial stack installation
- Server hardening and firewall setup
- Daily backup of the previous 24 hours
- Unlimited traffic *
- Anti-DDoS protection
- Dedicated IPv4 and IPv6
- KVM virtualisation
VPS-4
High-traffic apps, large databases and agencies.
- 8 vCores
- 24 GB RAM
- 200 GB NVMe
- 3 Gbps
- Full root and SSH access
- Free initial stack installation
- Server hardening and firewall setup
- Daily backup of the previous 24 hours
- Unlimited traffic *
- Anti-DDoS protection
- Dedicated IPv4 and IPv6
- KVM virtualisation
* Unlimited traffic in Europe and North America. In Mumbai, Singapore and Sydney a monthly allowance applies (VPS-1 500 GB, VPS-2/VPS-3 1 TB, VPS-4 3 TB), then speed is limited to 10 Mbps until the next month.
Prices exclude 18% GST, which is added to invoices for customers in India.
Platform specs and locations
The same KVM platform on every plan; only CPU, RAM, storage and port speed change.
- Virtualisation
- KVM with reserved vCores and RAM
- Storage
- NVMe SSD on every plan
- Network
- Dedicated IPv4 and IPv6, 500 Mbps to 3 Gbps per plan
- Operating systems
- Ubuntu 26.04, 24.04 and 22.04 LTS · Debian 13, 12 and 11 · AlmaLinux · Rocky Linux · Fedora · FreeBSD
- Access
- Full root over SSH, key-based login
- Backups
- Automatic daily backup of the previous 24 hours; snapshots and longer retention on request
- Protection
- Always-on anti-DDoS mitigation
- Availability
- 99.9% uptime SLA
Asia-Pacific
- Mumbai
- Singapore
- Sydney
Europe
- London
- Limburg
- Roubaix
- Gravelines
- Strasbourg
- Milan
- Warsaw
North America
- Beauharnois
Availability per location changes with demand; we confirm your location before setup. In Mumbai, Singapore and Sydney each plan includes a monthly traffic allowance (VPS-1 500 GB, VPS-2 and VPS-3 1 TB, VPS-4 3 TB); beyond it, speed is limited to 10 Mbps until the next month.
Questions before you deploy
Not covered here? Ask an engineer before you order.
Ready when you are
Self-Host Your Backend
Choose a plan and we hand over a hardened server with Docker and HTTPS ready for your Supabase stack.