Beste self-hosted apps om te draaien in 2026
Ontdek 25 zelfgehoste apps voor uw VPS in 2026. Wij bieden een lijst met RAM- en schijfgebruik per app en de belangrijkste valkuilen voor uw Docker-setup.
Wat u gaat bouwen
Niet één app — maar een shortlist. Dit is het knooppunt voor alles op deze site: vijfentwintig applicaties die het echt waard zijn om in 2026 op je eigen VPS te draaien, gegroepeerd op basis van hun functie. Voor elke app krijg je de service die het vervangt, een eerlijke schatting van het RAM- en schijfgebruik, en het belangrijkste punt waar het mis kan gaan als je dit overslaat. De links verwijzen naar de volledige stapsgewijze handleiding waar deze beschikbaar is.
Ik beheer al vijftien jaar een VPS-host en ik draai de meeste van deze apps op mijn eigen servers. De onderstaande resource-cijfers zijn wat de app daadwerkelijk verbruikt bij een lichte, reële workload, niet het "minimum" van een marketingpagina. Beschouw ze als een budget en voeg daar extra marge aan toe.
Vereisten en de harde realiteit
Elke app hier draait op een schone Ubuntu 24.04 KVM VPS met root- of sudo-rechten. Bijna alle apps worden geleverd als Docker-containers, dus installeer Docker één keer en je bent klaar voor de hele lijst:
curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker "$USER"
newgrp docker
docker run --rm hello-worldAls docker commando's falen met permission denied while trying to connect to the Docker daemon socket, heb je de groepstap overgeslagen of heb je geen nieuwe shell geopend — log uit en weer in. Als docker compose docker: 'compose' is not a docker command retourneert, heb je de oude standalone binary; het script hierboven installeert de moderne Compose-plugin, die je aanroept als docker compose (met een spatie, niet een streepje).
Drie realiteiten bepalen de vorm van alles hieronder. Ten eerste: RAM is de beperkende factor, niet schijf of CPU. Een VPS met 1 GB RAM draait één kleine app en niets meer. 4 GB is het ideale punt voor een machine om "een paar dingen zelf te hosten". 2 GB is het lastige middengebied waar een beginner een derde service toevoegt, een stille Out-Of-Memory kill krijgt, en nooit begrijpt waarom de container verdween — sudo dmesg toont de Out of memory: Killed process regel die de daemon heeft ingeslikt. Ten tweede: alles wat publiek toegankelijk is, heeft een naam en een certificaat nodig — een kaal IP-adres werkt voor testen, maar faalt zodra je een mobiele app of een browser wilt die de verbinding vertrouwt. Ten derde: twee poorten bepalen de helft van je opties: poort 80 en 443 moeten de machine bereiken voor automatische TLS, en poort 25 (outbound) is geblokkeerd door de meeste providers, wat de reden is dat e-mail op de "niet doen" lijst staat aan het einde.
Bestanden en foto's
- Nextcloud vervangt Google Drive, Dropbox en Google Calendar in één pakket. Budget: 1–2 GB RAM plus de grootte van je bestanden. Het grootste struikelblok: SQLite is prima voor een demo, maar een valstrik in productie — installeer het op PostgreSQL vanaf de eerste start, want het migreren van de database nadat je data er al in staat, is de meest voorkomende manier waarop mensen een Nextcloud ruïneren. De volledige Nextcloud op een VPS met Docker, TLS en backups handleiding installeert het de eerste keer correct.
- Immich vervangt Google Photos, inclusief de mobiele app die je camera-rol automatisch uploadt en de gezichts- en objectherkenning. Budget: 6 GB RAM — de documentatie van Immich noemt dit het minimum, 8 GB is comfortabel. De machine-learning container is het zwaarste onderdeel — en de schijfruimte moet gelijk zijn aan je bibliotheek plus ongeveer twintig procent voor thumbnails. Het struikelblok: Immich heeft nog steeds breaking changes tussen releases, dus pull nooit blindelings
latest; pin een versie en lees de release notes voor elke upgrade. De self-hosted Immich photo library handleiding behandelt het veilige upgradepad. - Seafile vervangt Dropbox met de snelste sync-engine van de drie. Budget: ongeveer 1 GB RAM. Het struikelblok: Seafile slaat je bestanden op als content-addressed blocks, niet als gewone bestanden op de schijf. Je kunt de data dus niet browsen met
lsen je moet back-ups maken via de eigen tools van Seafile, niet door een map te kopiëren.
Wachtwoorden
- Vaultwarden vervangt het betaalde niveau van Bitwarden, LastPass en 1Password met een kleine Rust-server die het Bitwarden-protocol spreekt. Hierdoor werken elke officiële Bitwarden-app en browser-extensie direct. Budget: 100–200 MB RAM en bijna geen schijfruimte. Het struikelblok: deze server bevat elk wachtwoord dat je bezit, dus TLS en backups zijn hier niet optioneel, ze zijn het hoofddoel — en stel
ADMIN_TOKENin als een Argon2-hash, want een plaintext token in je compose-file is een master key in cleartext. De Vaultwarden password manager handleiding is de beste mogelijke start voor self-hosting.
Media
- Jellyfin vervangt Plex en, voor je eigen bibliotheek, Netflix — volledig open, geen account, geen betaalde remote streaming. Budget: 1–2 GB RAM bij idle, maar de CPU piekt hard tijdens transcoding. Het struikelblok: softwarematige transcoding van een 4K-stream zal een kleine VPS oververhitten; geef de machine hardware-acceleratie of bewaar je bestanden in een formaat dat je clients direct kunnen afspelen (Direct Play), zodat de server alleen bytes verstuurt. De Jellyfin media server on a VPS handleiding legt uit wat wat is.
- Navidrome vervangt Spotify voor je eigen muziek, met streaming naar elke Subsonic-compatibele app. Budget: 150–300 MB RAM — het is geschreven in Go en verbruikt nauwelijks resources. Het struikelblok: de eerste bibliotheek-scan leest de tags van elk bestand en kan een uur duren bij een grote collectie. Slechte ID3-tags leiden tot een slechte gebruikerservaring.
- Audiobookshelf vervalt Audible en je podcast-app, waarbij de afspeelpositie over apparaten wordt behouden. Budget: 200–500 MB RAM. Het struikelblok: het vereist een strikte mappenstructuur per boek; een rommelige importmap levert een rommelige, half-gedetecteerde bibliotheek op die lastig te herstellen is.
Automatisering en AI
- n8n vervangt Zapier en Make met een visuele workflow-builder die van jou is, zonder kosten per taak. Budget: 400 MB–1 GB RAM. Het struikelblok: n8n versleutelt opgeslagen credentials met een sleutel die bij de eerste run wordt gegenereerd. Als je die sleutel verliest — of vergeet
N8N_ENCRYPTION_KEYin te stellen waardoor deze opnieuw wordt gegenereerd — worden alle opgeslagen credentials onleesbaar en moet je ze allemaal opnieuw invoeren. De self-hosted n8n with HTTPS handleiding legt de sleutel vast en plaatst een echt certificaat voor de webhook-URL's. - Ollama vervangt een ChatGPT-abonnement voor lokale, private LLM-inferentie. Budget per model: een 7–8B model heeft ongeveer 8 GB RAM nodig, en elk model neemt 4–8 GB schijfruimte in beslag. Het struikelblok: op een VPS zonder GPU is de inferentie traag — denk aan woorden per seconde, niet aan de instant antwoorden van een gehoste API — stel dus de verwachtingen bij, of huur een machine met een GPU. De run Ollama to self-host an LLM handleiding bevat realistische cijfers.
Communicatie
- Rocket.Chat vervangt Slack voor teams, met threads, gesprekken en integraties. Budget: 2 GB RAM of meer, omdat het op MongoDB draait en dat is de zware component. Het struikelblok: Rocket.Chat vereist een specifieke MongoDB major-versie per release; het overslaan van een versie tijdens een upgrade zorgt ervoor dat je database vastloopt — upgrade stap voor stap. De Rocket.Chat with Docker Compose handleiding begeleidt je door de versies.
- Matrix (Synapse) vervangt Slack en Discord met een federated, end-to-end versleuteld netwerk waarbij jij de homeserver bezit. Budget: 1–2 GB RAM, wat groeit naarmate je grote publieke rooms binnenkomt. Het struikelblok: het geheugengebruik van Synapse loopt sterk op in grote federated rooms, en het moet op PostgreSQL draaien — de standaard SQLite werkt alleen voor een single-user test en faalt zodra je gaat federeren. Als Synapse te zwaar aanvoelt, zijn de lichtere Conduit of Dendrite servers een alternatief met hetzelfde protocol.
Netwerken en toegang
- WireGuard vervangt een commerciële VPN en geeft je een privéverbinding naar je eigen IP en andere services. Budget: vrijwel niets — minder dan 50 MB en de crypto draait in de kernel. Het struikelblok: op container-gebaseerde virtualisatie (OpenVZ, sommige LXC) faalt de module met
RTNETLINK answers: Operation not supported; gebruik KVM. De self-hosted WireGuard VPN handleiding is de standaard, en het koppelen van services aan deze tunnel is de manier om alles volledig van het publieke internet af te houden. - Traefik vervangt handgeschreven nginx virtual hosts en handmatige certificaatvernieuwing — het ontdekt je containers via Docker-labels en haalt automatisch Let's Encrypt-certificaten op. Budget: ongeveer 100 MB RAM. Het struikelblok: het configuratiemodel op basis van labels is in het begin verwarrend, en één foutief label zorgt ervoor dat een app niet bereikbaar is zonder duidelijke foutmelding. De Traefik reverse proxy for multiple Docker apps handleiding is specifiek gemaakt om meerdere apps uit deze lijst achter één toegangspunt te draaien.
- AdGuard Home vervangt een Pi-hole en betaalde DNS-filtering, waarmee advertenties en trackers voor elk apparaat op je netwerk op DNS-niveau worden geblokkeerd. Budget: 100–150 MB RAM. Het struikelblok: het wil poort 53 bezetten, wat botst met
systemd-resolvedop Ubuntu — het start niet metlisten udp 0.0.0.0:53: bind: address already in usetotdat je de poort eerst vrijmaakt.
Monitoring
- Uptime Kuma vervangt Pingdom, UptimeRobot en StatusPage met een strak dashboard en meldingen naar bijna elk kanaal. Budget: 150–300 MB RAM. Het struikelblok, en dit wordt vaak vergeten: monitor je productie-server vanaf een andere server — Uptime Kuma die op dezelfde server draait die hij controleert, kan je niet vertellen wanneer die server uitvalt. De Uptime Kuma status monitoring handleiding behandelt externe plaatsing.
- Zabbix vervangt Datadog en enterprise monitoring-suites, met diepgaande agent-gebaseerde metrics, triggers en historie. Budget: 2 GB RAM of meer, plus een eigen database. Het struikelblok: Zabbix is krachtig maar zeer complex om in te stellen — het is overkill voor het monitoren van drie containers, maar het juiste middel voor een heel netwerk. Begin met Uptime Kuma; stap over naar de Zabbix monitoring server wanneer je daadwerkelijk infrastructuur hebt om te monitoren.
Prometheus en Grafana ontbreken opzettelijk in deze lijst: ze zijn uitstekende tools voor fleet-scale beheer, maar ze zijn zwaarder om te draaien en te configureren dan een persoonlijke stack van twee of drie servers rechtvaardigt, en Uptime Kuma plus Zabbix beantwoorden dezelfde vragen op deze schaal met minder onderhoud.
Dashboards en controlepanelen
Deze veranderen het hele model — in plaats van handmatig compose-files te draaien, beheert een paneel de apps voor je.
- Cloudron vervangt de wens voor "one-click" installaties met een gepolijste app store, automatische TLS en ingebouwde backups. Budget: minimaal 2 GB RAM, 4 GB is comfortabel. Het struikelblok: het is restrictief en wil de volledige controle over de machine, en het is alleen gratis tot twee apps — daarna is het een betaald product.
- CasaOS vervangt een rommelig homelab-dashboard met een gebruiksvriendelijk app-grid, gratis en lichtgewicht. Budget: ongeveer 150 tot 300 MB voor CasaOS zelf. Het struikelblok: het is ontworpen voor een vertrouwd thuisnetwerk en is niet beveiligd voor het publieke internet — exposeer het niet direct; bereik het via WireGuard.
- Coolify vervangt Heroku, Vercel en Netlify — git-push deployments, databases en previews op je eigen server. Budget: minimaal 2 GB RAM. Het struikelblok: het is een jong project dat snel verandert, dus pin versies en lees de release notes voor een upgrade. De Cloudron vs CasaOS vs Coolify comparison legt uit welke van de drie bij welke gebruiker past.
Developer en productiviteitstools
- Gitea (of Forgejo) vervangt GitHub voor private repositories, issues en CI. Budget: 200–500 MB RAM. Het struikelblok: Forgejo is de community-governed fork van Gitea en wordt door velen aanbevolen; beide zijn uitstekend, maar kies er één en maak back-ups van de repositories en de database samen — een repo-backup zonder de database verliest alle issues en pull requests.
- Paperless-ngx vervangt een archiefkast en betaalde documentscanners, door alles te OCR-en zodat je documenten doorzoekbaar worden. Budget: ongeveer 1 GB RAM, met CPU-pieken tijdens OCR. Het struikelblok: de OCR-resultaten zijn slechts zo goed als je scans, en het opnieuw verwerken van een groot archief is traag — optimaliseer dit voordat je tien jaar aan papier bulk-importeert.
- Actual Budget vervangt YNAB en Mint met snelle, lokale, private budgettering via enveloppen. Budget: ongeveer 150 MB RAM. Het struikelblok: automatische bank-sync is een aparte add-on met een eigen setup, dus standaard importeer je transacties handmatig.
- FreshRSS vervangt Feedly en het verdwenen Google Reader — een snelle, private feed-reader met mobiele apps. Budget: ongeveer 150 MB RAM. Het struikelblok: stel de cron-gebaseerde feed-refresh in, anders worden feeds pas bijgewerkt wanneer je de pagina toevallig opent.
- BookStack vervart Notion en Confluence voor documentatie, georganiseerd als planken, boeken en pagina's. Budget: ongeveer 500 MB RAM op PHP en MySQL. Het struikelblok: het structureert content op een eigen manier in plaats van als vrije tekst, wat sommigen geweldig vinden en anderen rigide — probeer het voordat je je hele wiki committeert.
- Home Assistant vervangt SmartThings en een dozijn vendor-apps, door je smart home lokaal te verenigen. Budget: ongeveer 1 GB RAM. Het struikelblok: veel van de magie vereist toegang tot je apparaten via het lokale netwerk, waardoor het natuurlijker op hardware thuis draait dan op een remote VPS — draai het dashboard op afstand en maak een brug als dat moet.
Een representatieve installatie
Om het concreet te maken: dit is de volledige vorm van self-hosting: een compose-file, een echt certificaat en een backup. Dit is Uptime Kuma, maar elke app op de lijst volgt hetzelfde patroon.
services:
uptime-kuma:
image: louislam/uptime-kuma:2
container_name: uptime-kuma
volumes:
- ./data:/app/data
ports:
- "127.0.0.1:3001:3001"
restart: unless-stoppeddocker compose up -d
docker compose logs -fLet op de 127.0.0.1: — de app luistert alleen op localhost, en een reverse proxy zoals Traefik of nginx termineert de TLS voor de app. Het direct binden aan 0.0.0.0:3001 is hoe mensen per ongeluk een onversleuteld admin-paneel naar het hele internet publiceren.
Wat je NIET moet zelf hosten (nog niet)
- E-mail. Dit is de eerlijke waarheid. Poort 25 (outbound) is geblokkeerd door de meeste VPS-providers — je krijgt
Connection timed outvantelnet aspmx.l.google.com 25en er is niets aan te doen, het is beleid. Zelfs met poort 25 open, zal een nieuwe IP zonder reputatie, PTR-record, SPF, DKIM en DMARC je mail in spam sturen of direct weigeren. Het is een continu proces, geen weekendproject. Als je het toch wilt proberen, doe het dan met open ogen met de self-hosted email with Mailcow handleiding, en verwacht dat je maandenlang de leverbaarheid moet beheren. - Alles wat je niet betrouwbaar kunt back-uppen en herstellen. Als je nog nooit een test-restore hebt gedaan, heb je geen backup, maar een hoop hoop. Zet geen onvervangbare data — de enige kopie van je foto's, je accounts — op een service totdat de herstelbaarheid is bewezen.
- Je enige kopie van een kritieke afhankelijkheid. Een zelf-gehoste DNS-server die, wanneer deze crasht, het internet van je hele netwerk meeneemt, is een slecht eerste project. Houd een upstream fallback aan.
- Real-time veiligheidssystemen. Huishoudelijke alarmen, medische meldingen, of alles waarbij vijf minuten downtime een echt probleem is, hoort niet thuis op een hobby-server die je op zondagavond updatet.
Hoe je je eerste app kiest, en de twee niet-onderhandelbare regels
Kies de app die een rekening wegneemt waar je tegenop ziet, of een privacyzorg die je echt ervaart. In de praktijk zijn de beste eerste installaties Vaultwarden en Uptime Kuma: beide zijn klein, beide zijn direct nuttig, en beide zijn vergevingsgezind als je een fout maakt. Zorg dat één app volledig werkt — installeren, certificaat, backup, hersteltest — voordat je een tweede toevoegt. De vaardigheid die je opbouwt is operations, niet alleen op knoppen klikken.
Twee dingen zijn niet-onderhandelbaar voor elke app hierboven, zonder uitzonderingen:
- TLS op alles wat publiek is. Een kaal IP-adres met plaintext is een demo, geen productie-omgeving. Plaats een echt certificaat voor de app met Certbot and Let's Encrypt on nginx, of laat Traefik dit automatisch doen. Beveilig daarna de voordeur met Fail2ban for SSH on Ubuntu 24.04.
- Backups die je daadwerkelijk hebt hersteld. Automatiseer een dagelijkse dump — database en data-volume samen — stuur deze van de server af, en herstel deze één keer per maand op een tijdelijke VPS om te bewijzen dat het werkt. De dag dat je schijf sterft, is niet het juiste moment om te ontdekken dat de backup leeg was.
Als je deze twee op orde hebt, is self-hosting een genoegen. Sla ze over en het is een kwestie van tijd voordat het misgaat.
De opties variëren van praktisch tot absurd, van een familie Minecraft server op een VPS tot, als je houdt van een waarschuwend verhaal, het minst efficiënte datacenter ter wereld.
FAQ
Wat moet ik als eerste zelf hosten?
Vaultwarden. Een wachtwoordmanager biedt dagelijkse waarde, vervangt een abonnement en dwingt je om de volledige workflow te leren — Docker, een reverse proxy, TLS en backups — op een app die klein genoeg is om in tien minuten te herbouwen als je een fout maakt. Uptime Kuma is een goede tweede, zodat je weet dat er een storing is voordat je gebruikers dat doen.
Hoeveel VPS heb ik daadwerkelijk nodig?
Voor één kleine app is 1 GB RAM voldoende. Voor een comfortabele machine om "een handvol dingen te draaien", streef naar 4 GB — het middengebied van 2 GB is waar mensen te maken krijgen met stille Out-Of-Memory container-kills en niet begrijpen waarom. RAM is bijna altijd de beperkende factor; voeg schijfruimte toe die past bij de data die je wilt opslaan, en houd er rekening mee dat Immich, Ollama en alles met een grote database het meeste van beide nodig hebben.
Wat moet ik niet zelf hosten?
E-mail, in de eerste plaats — poort 25 (outbound) is geblokkeerd door de meeste providers en de leverbaarheid is een dagtaak. Daarna alles wat je niet betrouwbaar kunt back-uppen en herstellen, en elk enkelvoudig punt van falen waarvan downtime echte schade aanricht, zoals een DNS-server zonder fallback of een veiligheidssysteem voor in huis. De rest van deze lijst is veilig.
Heb ik Docker nodig voor dit alles?
Nee, maar het is wel aanbevolen. Elke app hier heeft een Docker-image, en Docker biedt je schone installaties, eenvoudige verwijdering, makkelijke versiebeheersing en portabiliteit naar een nieuwe host. Een paar apps (WireGuard, Zabbix) kunnen ook lokaal worden geïnstalleerd via apt als je dat verkiest. Zodra je één compose-file begrijpt, begrijp je ze allemaal, wat de hele lijst toegankelijk maakt.
Hoe houd ik het allemaal veilig?
Vier gewoontes dekken het meeste: plaats TLS voor alles, houd SSH strikt beveiligd met alleen key-login en Fail2ban om brute-force pogingen te verbannen, exposeer alleen de poorten die je echt nodig hebt publiekelijk en bereik de rest via je WireGuard VPN, en update regelmatig terwijl je de release notes leest zodat een upgrade je nooit verrast. Backups zijn de vijfde gewoonte — zij zijn je redding wanneer een fout de eerste vier omzeilt.