Ga naar hoofdinhoud

VPS: Supabase installeren op Linux

Deze handleiding is gemaakt met de volgende producten:

(Details kunnen verschillen bij producten van verschillende aanbieders, maar de hoofdconcepten blijven hetzelfde)

Introductie

Supabase is een open-source Postgres ontwikkelplatform dat een volledige Postgres database biedt plus authenticatie, instant API’s, realtime en opslag, waardoor het een open-source alternatief is voor Firebase.

img

Overweeg je deze service zelf te hosten? We nemen je stap voor stap mee in het opzetten en configureren, inclusief alles waar je op moet letten.

Vereisten

Voordat je Supabase installeert, zorg dat je hostingomgeving aan de volgende eisen voldoet voor een soepele installatie en optimale performance.

HardwareMinimaalZAP-Hosting Aanbeveling
CPU1 vCPU Core4 vCPU Cores
RAM4 GB8 GB
Schijfruimte25 GB25 GB

De software vereist dat alle benodigde dependencies geïnstalleerd zijn en dat het draait op een ondersteund besturingssysteem. Zorg dat je server aan de volgende eisen voldoet voordat je verder gaat met de installatie:

Dependencies: Git, Docker (Engine en Compose)

Besturingssysteem: Laatste versie van Ubuntu/Debian met ondersteuning voor Docker 2

Zorg dat alle dependencies geïnstalleerd zijn en dat je de juiste OS-versie gebruikt om compatibiliteitsproblemen tijdens de installatie van Supabase te voorkomen.

Voorbereiding

Voordat je Supabase installeert, moet je je systeem klaarmaken. Dit betekent dat je je besturingssysteem update naar de nieuwste versie en alle benodigde dependencies installeert. Deze voorbereidingen zorgen voor een stabiele omgeving en helpen problemen tijdens of na de installatie te voorkomen.

Systeem updaten

Om zeker te zijn dat je systeem draait met de nieuwste software en beveiligingsupdates, voer je eerst een systeemupdate uit. Gebruik hiervoor het volgende commando:

sudo apt update && sudo apt upgrade -y

Dit zorgt ervoor dat je systeem de laatste beveiligingspatches en softwareversies heeft voordat je verder gaat.

Dependencies installeren

Als de update klaar is, kun je de dependencies installeren.

Git

De Supabase data wordt via GitHub gedownload. Hiervoor moet Git eerst geïnstalleerd zijn. Voer het volgende commando uit:

sudo apt install git-all

Docker

Supabase wordt op je machine gedraaid in een Docker container. Hiervoor moet Docker eerst geïnstalleerd zijn. Voer het volgende commando uit:

curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh

Een volledige walkthrough van het installatieproces en hoe je Docker gebruikt, vind je in onze Docker gids.

Installatie

Nu aan alle vereisten is voldaan en de voorbereidingen zijn afgerond, kun je Supabase installeren.

Haal de Supabase repository binnen, maak een aparte projectmap aan en kopieer de Docker bestanden en voorbeeld environment file erin.

git clone --depth 1 https://github.com/supabase/supabase
mkdir supabase-project

cp -rf supabase/docker/* supabase-project
cp supabase/docker/.env.example supabase-project/.env

Ga naar de projectmap, haal de nieuwste container images binnen en start de stack in detached mode.

cd supabase-project
docker compose pull
docker compose up -d

img

Je kunt nu Supabase Studio bereiken via http://<jouw-ip>:8000. Je wordt gevraagd om een gebruikersnaam en wachtwoord. Standaard zijn de inloggegevens:

  • Gebruikersnaam: supabase
  • Wachtwoord: this_password_is_insecure_and_should_be_updated

img

Standaard inloggegevens

Je app draait nu met standaard inloggegevens. Beveilig je services zo snel mogelijk met de instructies hieronder.

Configuratie

Je moet nooit met standaard- of voorbeeldwaarden live gaan. Vervang alle placeholders door sterke, unieke secrets, check je configuratie op je beveiligingseisen en herstart alle services om de wijzigingen door te voeren.

Genereer veilige API keys voordat je een service blootstelt. Begin met het kiezen van een 40-karakter JWT secret. Je kunt de meegeleverde waarde gebruiken of zelf een maken. Bewaar deze secret lokaal op een veilige plek. Deel ‘m niet en commit ‘m niet naar versiebeheer. Gebruik de secret om een JWT te genereren en maak daarna de anon en service API keys aan via het formulier in de Supabase docs: https://supabase.com/docs/guides/self-hosting/docker#generate-api-keys

Voer het formulier twee keer uit om beide keys te maken. Update je ./docker/.env met:

  • ANON_KEY: anon key
  • SERVICE_ROLE_KEY: service key

Update de verplichte secrets in ./docker/.env. Deze waarden moeten ingesteld zijn voor een werkende deployment:

  • POSTGRES_PASSWORD: wachtwoord voor de postgres rol
  • JWT_SECRET: gebruikt door PostgREST en GoTrue
  • SITE_URL: basis URL van je site
  • SMTP_*: mailserver credentials
  • POOLER_TENANT_ID: tenant id gebruikt door de Supavisor pooler

Beveilig het Dashboard met nieuwe inloggegevens voordat je live gaat. Pas ./docker/.env aan:

  • DASHBOARD_USERNAME: dashboard gebruiker
  • DASHBOARD_PASSWORD: dashboard wachtwoord

Je kunt meerdere dashboard gebruikers definiëren in ./docker/volumes/api/kong.yml:

basicauth_credentials:
- consumer: DASHBOARD
username: user_one
password: password_one
- consumer: DASHBOARD
username: user_two
password: password_two

Om alle dashboard features buiten localhost te gebruiken, zet je SUPABASE_PUBLIC_URL in ./docker/.env op de URL of IP waarmee je het dashboard gaat benaderen.

Pas configuratiewijzigingen toe door de stack te herstarten:

docker compose down
docker compose up -d

Conclusie en meer bronnen

Gefeliciteerd! Je hebt Supabase nu succesvol geïnstalleerd en geconfigureerd op je VPS. We raden je ook aan om de volgende bronnen te bekijken, die je extra hulp en tips kunnen geven tijdens je serverconfiguratie.

Heb je specifieke vragen die hier niet behandeld worden? Voor verdere vragen of hulp kun je altijd contact opnemen met onze support, die dagelijks voor je klaarstaat! 🙂