De zelfgehoste Docker-setup van Supabase, release v0.8.3 van 16 oktober 2026, start 11 containers. Eén daarvan is PostgreSQL 17. De andere tien zijn een gateway, inloggen, een REST API, bestandsopslag, het schalen van afbeeldingen, live-updates, serverfuncties, een verbindingspooler, een beheer-API voor de database en het Studio-dashboard. Op een x86-server zijn de 11 images samen ongeveer 2,15 GB om te downloaden. Dat is onze optelsom van de x86-groottes op Docker Hub voor de image-tags in het compose-bestand. Het officiële PostgreSQL 17-image is ongeveer 161 MB.

De API-documentatie van Supabase beschrijft twee manieren om het te gebruiken: je kunt de API's aanroepen – directly from the browser (two-tier architecture), or as a complement to your own API server (three-tier architecture). Praat een browser- of telefoonapp met je database, dan zijn die tien services de backend die je anders zelf zou schrijven. Zit er een eigen server tussen, dan is PostgreSQL het deel dat je app gebruikt.

Wat Supabase toevoegt aan PostgreSQL

Voor elke taak hieronder noemt de middelste kolom de Supabase-service die het werk doet. Die gegevens komen van de architectuurpagina van Supabase en de README voor zelf hosten bij v0.8.3.

TaakWat Supabase je geeftMet alleen PostgreSQL
Registreren, inloggen en toegangstokensAuth (GoTrue), een op JWT gebaseerde API voor gebruikers en tokens die samenwerkt met beveiliging op rijniveauDe inlogfunctie van je framework, of een authenticatiebibliotheek of -service die je toevoegt
Een API die je front-end aanroeptEen REST API die PostgREST uit je tabellen opbouwtEndpoints die je in je backend schrijft, of PostgREST als losse service
Regels voor welke rijen elke gebruiker leest of wijzigtBeleidsregels voor beveiliging op rijniveau, waarmee de REST API samenwerktDezelfde beveiliging op rijniveau, ingebouwd in PostgreSQL, of controles in de code van je app
Bestandsuploads en afbeeldingen schalenStorage, een bestands-API waarbij Postgres de rechten regelt, plus imgproxy voor afbeeldingenSchijf- of objectopslag, plus je eigen code voor uploaden en schalen
Live-updates in de browserRealtime, een WebSocket-service die wijzigingen in de database live doorstuurtLISTEN en NOTIFY bereiken databaseclients, en een browser heeft een WebSocket-server nodig die je zelf toevoegt
Een webdashboardStudio, met een login voor het dashboardpsql, of een webbeheerpagina zoals Adminer, die in het voorbeeld-compose-bestand van het officiële image staat
Functies aan de serverkantEdge Functions, in de Edge Runtime-containerJe app-server
VerbindingspoolingSupavisorEen pooler die je toevoegt als je er een nodig hebt
E-mails voor registratie en wachtwoordherstelJe eigen SMTP-serverJe eigen SMTP-server
Back-ups en updatesJe regelt beide zelf, volgens het releaseschema van SupabaseJe voert zelf updates uit en bewaart je eigen dumps ergens anders dan op de server

Onze keuze voor een veelvoorkomend geval: een Next.js-, React- of mobiele app die nog geen servercode heeft, haalt het meeste uit Supabase. Zonder Supabase is dat allemaal code die je vóór de lancering zou schrijven. Een team dat al een backend in Rails, Django of Express heeft, heeft weinig aan de tien extra services.

Kies Supabase als

Je web- of mobiele front-end praat rechtstreeks met de database, en je wilt dat inloggen, een automatische API, bestandsopslag en live-updates vanaf dag één werken. Je draait en updatet tien services meer dan met alleen PostgreSQL.

Kies alleen PostgreSQL als

Je app heeft al een backend, in Rails, Django, Laravel, Express of iets vergelijkbaars, die gebruikers, bestanden en de API afhandelt. Je draait één databasecontainer en voegt andere onderdelen pas toe als je ze nodig hebt.

Begin met Supabase en slank het af

Met de Docker-handleiding van Supabase kun je Realtime, Storage, imgproxy of de Edge Runtime uit het compose-bestand verwijderen. Houd de onderdelen die je app aanroept en schrap de rest, zodat de server minder nodig heeft.

DreamHost verkoopt beide als servers met de software al geïnstalleerd, Supabase VPS Hosting en PostgreSQL VPS Hosting, op dezelfde Stack-abonnementen voor dezelfde prijzen. Zit je nu op Supabase Cloud en vraag je je af of een server goedkoper zou zijn? Begin dan met wat Supabase Cloud kost als je groeit. Twijfel je tussen een beheerde PostgreSQL-service en gewone PostgreSQL op een server, lees dan wat beheerde Postgres kost naast één server.

Wat op dag één werkte

We probeerden elke taak op Supabase direct na de installatie, zonder eigen code behalve testscripts, en alle zeven werkten.

  • Een gebruiker laten inloggen en een token krijgen. We maakten de gebruiker aan via de admin-API, omdat de standaardsetup geen mailserver heeft voor bevestigingsmails.
  • Een tabel lezen en schrijven via HTTP onder een beleidsregel voor beveiliging op rijniveau. De ingelogde gebruiker zag zijn ene rij, en een verzoek zonder ingelogde gebruiker kreeg 0 rijen.
  • Een bestand uploaden en dezelfde bytes downloaden. We gebruikten een privébucket, en de download kwam byte voor byte overeen.
  • Een afbeelding schalen. De imgproxy-service maakte van een PNG van 800x600 een versie van 200 pixels breed.
  • Een serverfunctie aanroepen. De meegeleverde hello-functie gaf antwoord.
  • Een event krijgen als er een rij wordt toegevoegd. Een supabase-js-client kreeg de nieuwe rij 283 ms na de insert.
  • Een webdashboard openen. Studio vroeg eerst om in te loggen.

Op gewone PostgreSQL 17 voerden we de twee taken uit die de database zelf doet. Dezelfde beleidsregel voor beveiliging op rijniveau werkte in SQL, en LISTEN en NOTIFY brachten een event over tussen twee SQL-sessies. Voor de rest heb je software naast de database nodig: een HTTP-API, inloggen, bestandsopslag, serverfuncties, een browserverbinding voor live-updates en een dashboard.

Realtime liet onze eerste run struikelen: de supabase-js-client meldde na 35 ms dat hij geabonneerd was, en de rij die we direct daarna invoegden kwam nooit aan. Bij de tweede run logden we de systeemevents van het kanaal: de client meldde subscribed na 32 ms, en het eigen bericht Subscribed to PostgreSQL van Realtime kwam ongeveer 2,4 seconden later. Schrijft je app een rij direct na het abonneren, luister dan naar het system-event van het kanaal en wacht op dat bericht voordat je iets invoegt.

Wat elk van je server vraagt

Supabase publiceert groottes voor zijn stack. PostgreSQL doet dat niet, dus vullen onze metingen het gat. In de tabel staat Supabase voor de zelfgehoste v0.8.3-setup en PostgreSQL voor gewone PostgreSQL 17.

SupabasePostgreSQL
Containers11, of 13 met Logs & Analytics1
Download, x86Ongeveer 2,15 GBOngeveer 161 MB
Door de maker opgegeven grootteMinimaal 4 GB RAM, 2 cores, 40 GB SSD. Aanbevolen 8 GB+, 4+ cores, 80 GB+Niets gepubliceerd
PostgreSQL-versie17.6, het eigen image van Supabase17.11, nieuwste 17.x
Geheugen in rust, VM van 8 GBOngeveer 960 MiBOngeveer 24 MiB
Geheugen in rust, VM van 4 GBOngeveer 1.450 MiB, alle 11 containers actief, geen swap gebruiktNiet uitgevoerd
Grootste verbruikers, VM van 8 GBStudio 207 MiB, Realtime 184 MiB, Supavisor 164 MiB, de database 100 MiBDe enige container
CPU in rustOngeveer 1,7%0%
Images op schijf, arm64Ongeveer 9,7 GBOngeveer 670 MB
Eerste query na het startenOngeveer 17 s, alles gezond na ongeveer 22 sOngeveer 2 s
Extensies klaar om in te schakelen78, inclusief pgvector45 in het Docker-image, geen pgvector. Op onze server voeg je het toe met volledige root
Nieuwe releasesOngeveer eens per maand een stabiele snapshot17.x-minorreleases, ondersteund tot 8 nov 2029

De rijen van geheugen in rust tot en met extensies zijn onze eigen metingen, van 19 oktober (VM van 8 GB) en 20 oktober 2026 (VM van 4 GB), beschreven onder hoe we hebben gemeten. De tijden gelden met de images al gedownload. Aantallen komen uit het compose-bestand van Supabase bij tag self-hosted/v0.8.3, downloadgroottes uit de tag-gegevens van Docker Hub en vereisten uit de documentatie van elke maker, allemaal geraadpleegd op 16 oktober 2026.

Staafdiagram van het geheugen in rust 10 minuten na de start op onze arm64-test-VM's: gewone PostgreSQL 17 ongeveer 24 MiB en de databasecontainer van Supabase ongeveer 100 MiB op de VM van 8 GB; alle 11 Supabase-containers ongeveer 960 MiB op de VM van 8 GB en ongeveer 1.450 MiB op de VM van 4 GB.
Geheugen 10 minuten na de start zonder appverkeer. De oranje balk is de run op 4 GB; die VM had in totaal 3.904 MiB. Bron: onze test-VM, geen DreamHost-server (arm64, 2 vCPU), 8 GB op 19 oktober en 4 GB op 20 oktober 2026, zelfgehoste Supabase v0.8.3 en postgres:17.11.

Logs & Analytics staan in de standaardsetup van Supabase uit om het geheugengebruik te beperken. Je zet ze aan met een override-bestand dat Logflare en Vector toevoegt en verhoogt wat de stack nodig heeft.

Stack 4 voldoet aan het minimum van Supabase. Stack 8 voegt het aanbevolen RAM en de aanbevolen schijfruimte toe, maar houdt 2 vCPU. Stack 16 is het kleinste abonnement dat aan alle aanbevolen waarden van Supabase voldoet, met 4 vCPU, 16 GB RAM en 250 GB NVMe-opslag volgens de Supabase VPS-pagina. Daarom is dat onze keuze voor productie, en past Stack 8 bij een kleine app of een stagingkopie.

Onze run op 4 GB laat zien dat de standaardstack in rust op Stack 4 past. Alle 11 containers bleven draaien zonder herstart, en hun geheugen stabiliseerde op iets meer dan een derde van de 3.904 MiB van de VM. De images namen ongeveer 9,7 GB schijfruimte in, ruim binnen de 75 GB van Stack 4.

Dezelfde stack gebruikte op de VM van 4 GB ongeveer anderhalf keer zoveel geheugen als op die van 8 GB. Studio, Realtime en de pooler stegen met 16 tot 22%, en vijf kleine services werden twee tot zeven keer zo groot, imgproxy van ongeveer 13 MiB naar 94 MiB. We hebben elke setup één keer gedraaid en kunnen het verschil niet verklaren. Reken daarom op 1 tot 1,5 GB voor Supabase in rust, met daarbovenop ruimte voor het verkeer van je app.

Voor PostgreSQL op zichzelf zouden we een productiedatabase op Stack 8 zetten, het abonnement dat op de PostgreSQL VPS-pagina het label Voor apps die in productie draaien. heeft. Stack 4, met het label Voor lichte apps en soloprojecten, is genoeg om te beginnen. Volgens de pagina is overstappen van Stack 4 naar Stack 32 eenvoudig, en je omgeving verhuist mee. Wil je de server afstemmen op alles wat je er nog meer op draait, bekijk dan welk VPS-abonnement je nodig hebt.

Wat je met alleen PostgreSQL zelf regelt

Je backend regelt die taken, en Rails en Django leveren daar veel van mee. Rails heeft een authenticatiegenerator, Active Storage regelt uploads en afbeeldingsvarianten, en Action Cable geeft de browser WebSockets. Django heeft een ingebouwd systeem voor gebruikersauthenticatie, en Channels voegt WebSockets toe. Een Express-app voegt deze toe als bibliotheken, bijvoorbeeld Socket.IO voor een live tweerichtingsverbinding tussen de browser en je server.

PostgreSQL zelf dekt een deel van de lijst. De beleidsregels voor rijbeveiliging beperken per gebruiker welke rijen een query teruggeeft of wijzigt, en de toegangsregels van Supabase zijn precies die beleidsregels. LISTEN en NOTIFY sturen een event naar elke databasesessie die luistert, zodat een worker in je backend kan reageren op nieuwe rijen. Een browser opent geen databasesessies, dus live-updates in de browser lopen via een eigen WebSocket-server, zoals Action Cable, Channels of Socket.IO. Extensies zoals pgvector en PostGIS installeer je op onze PostgreSQL-server met volledige root.

Is de automatische API het onderdeel dat je zou missen, dan kun je PostgREST los draaien. Het is de webserver achter de REST API van Supabase, en volgens de README serves a fully RESTful API from any existing PostgreSQL database.

Zelfgehoste Supabase in de dagelijkse praktijk

De pagina over zelf hosten van Supabase somt op wat je op je neemt als je het zelf draait: serveronderhoud, het besturingssysteem en de services up-to-date houden, Postgres-onderhoud, hoge beschikbaarheid, en back-ups en herstel.

  • HTTPS. De eigen Docker-setup van Supabase antwoordt via gewone HTTP, wat prima is op een testmachine. Voor productie zet de proxyhandleiding van Supabase Caddy of Nginx met Let’s Encrypt vóór de gateway.
  • E-mail. De Docker-standaardinstellingen van Supabase zetten registratie via e-mail met bevestiging aan en sturen mail naar een container die alleen in het ontwikkelbestand van Supabase bestaat. Voeg je eigen SMTP-server toe voordat echte gebruikers zich registreren, anders worden bevestigingsmails en e-mails voor wachtwoordherstel niet verstuurd.
  • Updates. Volgens de Docker-handleiding van Supabase verschijnt er ongeveer één keer per maand een stabiele snapshot. Het updatescript voegt de instellingen van de nieuwe release samen met de jouwe. Daarna haal je de nieuwe images op en maak je de containers opnieuw aan. Maak een back-up voordat je het uitvoert.
  • Projecten. Eén installatie draait één project. Zelfgehoste Studio kan niet meerdere organisaties of projecten bevatten, dus een tweede app krijgt een eigen installatie.

In de stapsgewijze uitleg over zelf hosten vind je de installatiestappen, en de Docker-handleiding van Supabase is het naslagwerk voor elke instelling.

Hoe we hebben gemeten

DreamHost draaide beide stacks op 19 oktober 2026 op een lokale test-VM met 2 vCPU's en 7.922 MiB geheugen: Ubuntu 24.04.4 op arm64, onder Colima op een Mac met Apple silicon. Onze pakketten draaien op x86-processors van het type AMD EPYC, dus dit was geen server van DreamHost. Omdat de grootte van images per processor verschilt, vermeldt de tabel ook de download voor x86.

Supabase draaide vanuit de Docker-map van v0.8.3 zoals die is gepubliceerd, met secrets uit de eigen sleutelscripts. PostgreSQL draaide vanuit het voorbeeld-composebestand van Docker Hub, vastgezet op postgres:17.11, zonder de Adminer-service. Elk geheugencijfer is de middelste waarde van 12 metingen met docker stats, één per 5 seconden, vanaf 10 minuten na de start. De images waren al gedownload voordat we de starttijden maten.

Op 20 oktober draaiden we Supabase opnieuw op een tweede VM met de omvang van Stack 4: 2 vCPU's, 3.904 MiB geheugen en geen swap, met dezelfde versies van Ubuntu en Docker. Daarvoor gebruikten we een verse kopie van dezelfde v0.8.3-map, nieuwe secrets en dezelfde 12 metingen na 10 minuten. Op die VM draaide ook een kleine testapp van ongeveer 180 MiB die er los van stond. Die telt niet mee in de cijfers over Supabase die we noemen.

We hebben elke opstelling één keer gedraaid, dus er is geen spreiding te melden. De metingen gaan over een stack in rust en over wat direct werkt. Ze gaan niet over een app onder belasting of over een week draaien, en we hebben Logs & Analytics niet ingeschakeld getest.

Veelgestelde vragen over Supabase of alleen PostgreSQL

Is Supabase eigenlijk gewoon Postgres?

Ja, elk Supabase-project krijgt een volledige PostgreSQL-database die je met volledige rechten kunt gebruiken, en Auth, Storage, Realtime en Edge Functions zijn daarop gebouwd. In de zelfgehoste opzet is PostgreSQL een van de 11 containers.

Kan ik met het ene beginnen en later overstappen naar het andere?

Ja: je tabellen zijn gewone PostgreSQL, en volgens de architectuurpagina van Supabase houdt het zich aan standaardformaten zoals Postgres-dumpbestanden en CSV, zodat je kunt in- en uitmigreren. Supabase Auth bewaart elke gebruiker in een eigen Auth-schema, en zoals wij het lezen heeft elke beleidsregel die auth.uid() aanroept een andere manier nodig om de gebruiker te herkennen.

Kan ik maar een deel van Supabase draaien?

Volgens de Docker-handleiding van Supabase kun je Realtime, Storage, imgproxy of de Edge Runtime uit het composebestand verwijderen, zodat de stack minder nodig heeft. Haal alleen weg wat je app niet aanroept: elk onderdeel heeft een eigen blok en eigen afhankelijkheden die je moet terugzetten als je het later toch wilt gebruiken.

Draait zelfgehoste Supabase op 4 GB geheugen?

In rust wel, in onze test. Op een VM met 4 GB en 2 cores, met de omvang van Stack 4, startten alle 11 containers, werd er geen enkele herstart en laadde Studio, zonder dat er swap werd gebruikt (de grafiek hierboven toont het geheugen). We hebben er geen verkeer op gezet, en Supabase raadt 8 GB en 4 cores aan.

Wat zijn de nadelen van zelfgehoste Supabase?

In de eigen Docker-opzet van Supabase draai en update je 11 containers waar PostgreSQL er maar één is, duurt het langer voordat de hele stack is gestart en voeg je zelf een SMTP-server en HTTPS toe. Eén installatie draait één project.

Waar past Neon in het plaatje?

Volgens de prijspagina van Neon is het een gehost Postgres-platform van Databricks, dus het hoort in dezelfde vergelijking thuis als Supabase Cloud. Lees voor die kant wat Supabase Cloud kost naarmate je groeit.

Wie helpt er als er iets misgaat op de server?

De support van DreamHost is 24/7 beschikbaar voor de hardware, het netwerk en de connectiviteit. Jij beheert het besturingssysteem, de software en de configuratie, zoals de Supabase VPS-pagina uitlegt. Voor Supabase zelf staat op de pagina over zelf hosten van Supabase dat zelfgehoste Supabase door de community wordt ondersteund.

Bronnen
  1. Supabase VPS Hosting, DreamHost, 21 okt 2026. dreamhost.com/hosting/vps/supabase
  2. PostgreSQL VPS Hosting, DreamHost, 21 okt 2026. dreamhost.com/hosting/vps/postgresql
  3. Self-Hosting with Docker, Supabase, 16 okt 2026. supabase.com/docs/guides/self-hosting/docker
  4. Self-Hosting, Supabase, 16 okt 2026. supabase.com/docs/guides/self-hosting
  5. Architecture, Supabase, 16 okt 2026. supabase.com/docs/guides/getting-started/architecture
  6. Data REST API, Supabase, 16 okt 2026. supabase.com/docs/guides/api
  7. Database, Supabase, 16 okt 2026. supabase.com/docs/guides/database/overview
  8. Auth, Supabase, 16 okt 2026. supabase.com/docs/guides/auth
  9. Users, Supabase, 21 okt 2026. supabase.com/docs/guides/auth/users
  10. Row Level Security, Supabase, 16 okt 2026. supabase.com/docs/guides/database/postgres/row-level-security
  11. Update your self-hosted deployment, Supabase, 16 okt 2026. supabase.com/docs/guides/self-hosting/updating
  12. Self-hosted proxy with HTTPS, Supabase, 16 okt 2026. supabase.com/docs/guides/self-hosting/self-hosted-proxy-https
  13. Migrate from Postgres to Supabase, Supabase, 16 okt 2026. supabase.com/docs/guides/platform/migrating-to-supabase/postgres
  14. Self-hosted Supabase with Docker: README, CHANGELOG, compose file and versions (tag self-hosted/v0.8.3), Supabase on GitHub, 16 okt 2026. github.com/supabase/supabase/tree/self-hosted/v0.8.3/docker
  15. postgres (Docker Official Image), Docker Hub, 16 okt 2026. hub.docker.com/_/postgres
  16. Versioning Policy, PostgreSQL Global Development Group, 16 okt 2026. postgresql.org/support/versioning
  17. Row Security Policies (PostgreSQL 17 documentation), PostgreSQL Global Development Group, 16 okt 2026. postgresql.org/docs/17/ddl-rowsecurity.html
  18. NOTIFY (PostgreSQL 17 documentation), PostgreSQL Global Development Group, 16 okt 2026. postgresql.org/docs/17/sql-notify.html
  19. PostgREST README, PostgREST on GitHub, 21 okt 2026. github.com/PostgREST/postgrest
  20. Neon pricing, Neon, 16 okt 2026. neon.com/pricing
  21. Securing Rails Applications (authentication generator), Ruby on Rails Guides, 20 okt 2026. guides.rubyonrails.org/security.html
  22. Active Storage Overview, Ruby on Rails Guides, 20 okt 2026. guides.rubyonrails.org/active_storage_overview.html
  23. Action Cable Overview, Ruby on Rails Guides, 20 okt 2026. guides.rubyonrails.org/action_cable_overview.html
  24. User authentication in Django, Django, 20 okt 2026. docs.djangoproject.com/en/5.2/topics/auth
  25. Django Channels, Django Channels, 20 okt 2026. channels.readthedocs.io/en/latest
  26. Socket.IO introduction, Socket.IO, 20 okt 2026. socket.io/docs/v4
  27. Supabase images (tag data), Docker Hub, 16 okt 2026. hub.docker.com/u/supabase

Hulp nodig?

Of je nu vastzit of gewoon wat starttips nodig hebt: onze experts staan altijd voor je klaar. We helpen je graag.

Hulp van DreamHost Sales

24/7/365 via het chatvenster

Klantenservice via chat

24/7/365 via Panel

Ga naar Panel
E-mail klantenservice

24/7/365 via Panel

Ga naar Panel