Independent testing Updated August 2026 387 self-hosting guides 5 VPS providers tested

guide

Hoe je Plane Zelf host op een VPS (Complete Gids)

Installeer Plane, het open-source alternatief voor Jira, op een VPS met de officiële installer. Echte sizing, de stack van 13 containers, DNS, back-ups en updates.

Plane is een open-source tool voor projectbeheer - issues, cycles, modules en pages, op hetzelfde terrein als Jira en Linear - en een van de zwaardere zelfgehoste toepassingen die je op een kleine VPS kunt zetten. De Community Edition brengt een stack van dertien containers mee, dus het interessante deel van deze gids is het goed dimensioneren van de server, niet het intikken van docker compose up.

Waarom Plane zelf hosten?

Het gehoste abonnement rekent per gebruiker af. Zelf hosten schrapt die kosten en houdt de issuegeschiedenis, bijlagen en projectgegevens op infrastructuur die jij beheert, wat telt zodra er klantnamen, beveiligingsbevindingen of nog niet gepubliceerde roadmap-punten in staan. De Community Edition valt onder AGPL-3.0, dus je mag hem zonder licentiekosten in een commercieel team inzetten.

De keerzijde is echt: updates, back-ups en de Postgres-instantie liggen bij jou. Wil niemand in het team die klus, dan is de gehoste versie het eerlijke antwoord.

Vereisten

De documentatie van Plane benoemt de eisen ondubbelzinnig:

Die ondergrens van 4 GB is geen marge. De stack start web, admin, space, api, worker, beat-worker, migrator, live, een proxy, plus postgres:15.7-alpine, valkey/valkey:7.2.11-alpine, rabbitmq:3.13.6-management-alpine en minio/minio. Dertien containers in rust vullen het grootste deel van 4 GB voordat één gebruiker inlogt.

Heb je nog een server nodig, dan halen Contabo, Hetzner Cloud en DigitalOcean de lat; zie de tabel hieronder en onze volledige VPS-vergelijking.

Stap 1: Kies een pakket boven de 4 GB

Hier gaat het bij de meeste Plane-installaties mis. Het goedkoopste pakket heeft bij vrijwel elke aanbieder 1 GB RAM, een kwart van wat Plane gedocumenteerd vraagt.

PakketvCPU / RAM / SchijfPrijsOordeel voor Plane
Contabo Cloud VPS 44 / 8 GB / 100 GB SSD5.50 EUR/mnd excl. btwHaalt de aanbevolen 8 GB
Hetzner CX334 / 8 GB / 80 GB NVMe8.49 EUR/mnd excl. btwHaalt de aanbevolen 8 GB
Hetzner CX232 / 4 GB / 40 GB NVMe5.49 EUR/mnd excl. btwPrecies het minimum; prima voor een klein team
DigitalOcean, instapdroplet1 / 1 GB / 25 GB6 USD/mndTe klein - hier draait Plane niet op

Zet Ubuntu 24.04 LTS neer, maak een gebruiker zonder rootrechten aan en zet de firewall aan:

sudo apt update && sudo apt upgrade -y
sudo adduser plane
sudo usermod -aG sudo plane
sudo ufw allow OpenSSH && sudo ufw allow 80 && sudo ufw allow 443
sudo ufw enable

Stap 2: Docker installeren

Plane heeft Compose v2 nodig. Installeer vanuit Dockers eigen repository, dan krijg je docker-compose-plugin in plaats van het uitgefaseerde v1-script:

sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo usermod -aG docker $USER

Log uit en weer in, en controleer dan de versie:

docker compose version

Stap 3: Laat DNS eerst naar de server wijzen

Doe dit voordat je de installer start. Die vraagt tijdens de configuratie om je domein en schrijft het weg in WEB_URL en CORS_ALLOWED_ORIGINS; als DNS nog niet resolvet, mislukt de certificaatuitgifte en zit je achteraf in omgevingsbestanden te sleutelen.

Maak een A-record voor plane.example.com naar het IP-adres van de VPS en wacht tot het resolvet:

dig +short plane.example.com

Stap 4: Voer de officiële installer uit

Plane levert één installatiescript dat kant-en-klare images ophaalt en een beheerde docker-compose.yaml schrijft:

curl -fsSL https://prime.plane.so/install/ | sh -

Het script vraagt om je domein en biedt daarna Express (standaardwaarden) of Advanced (variabelen los instellen). Voor een eerste installatie is Express de juiste keuze. Daarna draait Plane op poort 80 en 443, aangestuurd door LISTEN_HTTP_PORT en LISTEN_HTTPS_PORT.

Een kanttekening bij de repository: de docker-compose.yml op GitHub bouwt elke dienst uit de broncode in plaats van images op te halen. Dat is een werkwijze voor bijdragers - een build vraagt aanzienlijk meer RAM dan draaien, en zal op een VPS met 4 GB mislukken of de machine laten swappen. Gebruik de installer.

Open https://plane.example.com en maak het eerste account aan. Dat account wordt beheerder van de instantie; het beheerpaneel staat op /god-mode/, waar je SMTP, registratiebeperkingen en authenticatie instelt.

Stap 5: Back-up wat er echt toe doet

Twee dingen bevatten je gegevens: het PostgreSQL-volume en het MinIO-volume, waarin elke bijlage staat. Een snapshot van de VPS dekt beide, maar een databasedump die je gericht kunt terugzetten is goud waard:

docker exec plane-db pg_dump -U plane plane | gzip > plane-$(date +%F).sql.gz

Kopieer de dump van de server af. Een back-up die op de schijf staat die je back-upt, is geen back-up.

VPS-opties vergeleken voor het zelf hosten van Plane

AanbiederInstappakket vanaf 4 GBPrijs (per maand)OpmerkingenLink
ContaboCloud VPS 4 - 4 vCPU, 8 GB, 100 GB SSD5.50 EUR excl. btwGoedkoopste route naar de aanbevolen 8 GBContabo
Hetzner CloudCX23 - 2 vCPU, 4 GB, 40 GB NVMe5.49 EUR excl. btwHaalt het minimum; CX33 voor 8.49 met 8 GBHetzner
DigitalOcean2 vCPU, 4 GB, 80 GB SSD24 USDDuurder, maar documentatie en snapshots zijn hier het bestDigitalOcean
Vultr2 vCPU, 4 GB, 80 GB SSD20 USDDe goedkoopste van de drie; ruime keuze aan regio’sVultr
Linode (Akamai)2 vCPU, 4 GB, 80 GB SSD24 USDVoorspelbare prestaties, sterke APILinode

Het patroon springt eruit: de Amerikaanse aanbieders vragen 20 tot 24 USD voor de 4 GB-trede, ruwweg drie tot vier keer het Europese equivalent. Voor een zelfgehoste issuetracker die toch één kantoor in één regio bedient, is dat verschil moeilijk te verdedigen.

Het hele veld vind je in onze volledige VPS-vergelijking.

Waar teams vastlopen

Dimensioneren op de productpagina in plaats van de documentatie. Plane ziet eruit als een webapp maar gedraagt zich als een klein platform. Vier GB is de ondergrens, niet het doel.

SMTP overslaan. Zonder ingestelde mail in /god-mode/ komen uitnodigingen nooit aan en kun je niemand aan de workspace toevoegen. Regel dat vóór het onboarden van het team.

MinIO vergeten in de back-up. Alleen Postgres wegschrijven geeft je elke issue en elke reactie terug, zonder één bijlage.

Plane is de installatiemoeite waard als je team toch al in een issuetracker leeft en er liever niet per persoon voor betaalt. Dimensioneer de machine fatsoenlijk, zet de back-ups elders neer, en de dienst draait geruisloos door.

Voor meer zelfhostingprojecten en tips: de lijst awesome-selfhosted of de community r/selfhosted.

Frequently asked questions

Kan ik Plane zelf hosten op een VPS met 1 GB of 2 GB RAM?

Nee. De documentatie van Plane legt de ondergrens op 2 CPU-kernen en 4 GB RAM, en de Compose-stack van de Community Edition start dertien containers, waaronder PostgreSQL, Valkey, RabbitMQ en MinIO. Op een machine met 2 GB loopt de installer wel door, maar containers worden bij echt gebruik afgeschoten wegens geheugentekort. 4 GB is het werkbare minimum en de documentatie adviseert 8 GB voor productie.

Hoe werk ik Plane bij naar een nieuwere versie?

Voer het beheerscript opnieuw uit dat de installer op de server heeft achtergelaten en kies de upgrade-optie. Als alternatief draai je vanuit de installatiemap docker compose pull gevolgd door docker compose up -d. De migrator-container voert bij het starten de databasemigraties uit, dus maak vooraf een PostgreSQL-dump en een snapshot. Lees eerst de release notes, want grote versies wijzigen soms omgevingsvariabelen.

Heb ik een eigen domeinnaam nodig om Plane te draaien?

In de praktijk wel. De installer vraagt tijdens de configuratie om je domein en schrijft dat weg in WEB_URL en CORS_ALLOWED_ORIGINS, die de frontend en de API gebruiken om met elkaar te praten. Een kaal IP-adres werkt voor een lokale proef maar breekt de CORS-instelling zodra het adres verandert, en zonder domein kun je geen Let's Encrypt-certificaat uitgeven.