Discord is handig, maar gemak heeft een prijs: je berichten, metadata en communitygegevens staan op de servers van iemand anders. Als je op zoek bent naar een manier om je eigen chatinfrastructuur te draaien zonder je gegevens aan een derde partij te geven, is Matrix je aandacht waard.
Matrix is een open-source, gefedereerd berichtenprotocol. In tegenstelling tot Discord is niemand eigenaar van het netwerk, kan iedereen een homeserver draaien, en kunnen gebruikers op verschillende servers toch met elkaar communiceren. Deze handleiding legt uit hoe je een Matrix-homeserver host met Synapse, op een Linux VPS.
Wat is Matrix, en waarom zou je het gebruiken in plaats van Discord?
Matrix is een protocol, niet alleen een app. Het definieert hoe berichten tussen servers worden uitgewisseld, wat betekent dat het netwerk van nature gedecentraliseerd is. Twee personen op compleet verschillende homeservers kunnen dezelfde ruimte betreden en in realtime chatten, vergelijkbaar met hoe e-mail werkt tussen verschillende providers.
Discord daarentegen is een gesloten platform. Je gegevens, je communities en je communicatie draaien allemaal via de infrastructuur van Discord. Er is geen export, geen federatie en geen privacygarantie buiten wat hun gebruiksvoorwaarden vermelden.
Matrix biedt je:
- Volledig eigendom van je berichten en gebruikersgegevens
- Federatie met het bredere Matrix-netwerk (of je kunt het privé houden)
- End-to-end-encryptie via het Matrix-protocol
- Een groeiend ecosysteem van clients, bots en bridges
De populairste Matrix-client is Element, die draait op desktop, mobiel en het web. Qua interface en functies is het een degelijk equivalent van Discord.
Een server kiezen om Synapse te draaien
Synapse is de meest gebruikte Matrix-homeserver. Het is geschreven in Python en heeft een redelijke resourcevoetafdruk voor kleine communities, hoewel het geheugenintensief kan worden bij opschaling.
Voor een kleine tot middelgrote homeserver (tot een paar honderd actieve gebruikers) is een VPS met minimaal:
- 2 vCPU's
- 4 GB RAM
- 40–80 GB NVMe-opslag
...voldoende om comfortabel te starten. Als je federatie met het bredere Matrix-netwerk wilt inschakelen, heb je meer ruimte nodig, vooral RAM.
Als je op zoek bent naar een goede plek om te hosten, zijn VPS-providers in Nederland een populaire keuze voor privacygerichte projecten, dankzij sterke gegevensbeschermingswetten en goed verbonden infrastructuur.
Vereisten
Voordat je begint, zorg ervoor dat je het volgende hebt:
- Een Linux VPS met Ubuntu 22.04 of Debian 12 (of nieuwer)
- Een domeinnaam die je beheert (bijv.
matrix.jouwdomein.com) - DNS A-records die je domein naar het IP-adres van je server wijzen
- Root- of sudo-toegang op de server
- Poorten 80, 443 en 8448 open in je firewall
Poort 8448 wordt gebruikt voor Matrix-federatie. Als je niet van plan bent om met andere servers te federeren, kun je die overslaan.
Synapse installeren op Ubuntu/Debian
Stap 1: Afhankelijkheden installeren
sudo apt update && sudo apt upgrade -y
sudo apt install -y lsb-release wget apt-transport-https
Stap 2: De Matrix.org-pakketrepository toevoegen
wget -qO /usr/share/keyrings/matrix-org-archive-keyring.gpg https://packages.matrix.org/debian/matrix-org-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/matrix-org-archive-keyring.gpg] https://packages.matrix.org/debian/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/matrix-org.list
sudo apt update
Stap 3: Synapse installeren
sudo apt install matrix-synapse-py3 -y
Tijdens de installatie word je gevraagd om je servernaam in te voeren. Gebruik je domein (bijv. jouwdomein.com), niet een subdomein. Dit wordt je Matrix-identiteitsnamespace — gebruikers krijgen ID's als @gebruiker:jouwdomein.com.
Stap 4: Synapse configureren
Het hoofdconfiguratiebestand staat op /etc/matrix-synapse/homeserver.yaml. Open het met je favoriete editor en bekijk de belangrijkste instellingen:
sudo nano /etc/matrix-synapse/homeserver.yaml
Belangrijke instellingen om te controleren of in te stellen:
server_name: je domein (al ingesteld tijdens de installatie)public_baseurl: stel in ophttps://jouwdomein.comregistration_shared_secret: genereer hier een willekeurige tekenreeks als je gebruikers via de commandoregel wilt aanmakenenable_registration: stel in opfalsetenzij je open registratie wilt
Om een veilige geheime tekenreeks te genereren, kun je het volgende gebruiken:
cat /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c 32
Stap 5: Een reverse proxy instellen met Nginx en SSL
Installeer Nginx en Certbot:
sudo apt install nginx certbot python3-certbot-nginx -y
Maak een Nginx-configuratie aan voor je Matrix-domein:
sudo nano /etc/nginx/sites-available/matrix
Plak deze configuratie:
server {
listen 80;
server_name matrix.jouwdomein.com;
location / {
proxy_pass http://localhost:8008;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $host;
client_max_body_size 50M;
}
}
Activeer de site en haal je SSL-certificaat op:
sudo ln -s /etc/nginx/sites-available/matrix /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
sudo certbot --nginx -d matrix.jouwdomein.com
Certbot werkt je Nginx-configuratie automatisch bij om HTTP naar HTTPS om te leiden.
Stap 6: Synapse starten
sudo systemctl enable matrix-synapse
sudo systemctl start matrix-synapse
sudo systemctl status matrix-synapse
Als alles er goed uitziet, draait Synapse op poort 8008 lokaal, geproxied via Nginx over HTTPS.
Stap 7: Je eerste admin-gebruiker aanmaken
register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml http://localhost:8008
Volg de prompts om een gebruikersnaam en wachtwoord in te stellen. Markeer dit account als admin.
Federatie instellen (optioneel)
Federatie laat je server communiceren met andere Matrix-homeservers. Hiervoor moeten andere servers je server kunnen bereiken op poort 8448, of je moet een .well-known-delegatie configureren zodat ze je kunnen vinden via poort 443.
De eenvoudigere aanpak is de .well-known-methode. Maak een bestand aan op https://jouwdomein.com/.well-known/matrix/server met:
{
"m.server": "matrix.jouwdomein.com:443"
}
Werk vervolgens je Nginx-configuratie bij om dit bestand te serveren vanaf je rootdomein en configureer Synapse om te luisteren op poort 8448 met een geldig TLS-certificaat. De Matrix-federatiedocumentatie behandelt dit uitgebreid.
Als je een volledig privéserver wilt voor intern gebruik, kun je federatie helemaal overslaan.
Verbinden met Element
Zodra je server draait, wijs Element Web naar je homeserver:
- Open Element en klik op "Sign in"
- Klik op "Edit" naast de homeserver-URL
- Voer
https://matrix.jouwdomein.comin - Log in met de admin-inloggegevens die je hebt aangemaakt
Je kunt ook Element Web zelf hosten voor een volledig onafhankelijke opzet, hoewel de gehoste versie op app.element.io gebruiken met je eigen homeserver een redelijk compromis is.
Bridges: Matrix verbinden met Discord, Slack en meer
Een ondergewaardeerde functie van Matrix is bridging. Je kunt je Matrix-server verbinden met Discord, Slack, Telegram, WhatsApp en meer, zodat je kunt lezen en reageren vanuit Element terwijl anderen in hun eigen apps blijven.
Populaire bridges zijn onder andere:
- mautrix-discord — bridge naar Discord
- mautrix-telegram — bridge naar Telegram
- mautrix-signal — bridge naar Signal
Elke bridge draait als een apart proces en registreert zich als application service op je homeserver. De opzet verschilt per bridge, maar ze volgen allemaal een vergelijkbaar patroon: installeren, configureren, registreren bij Synapse, herstarten.
Je server privé en veilig houden
Een paar dingen die het waard zijn om meteen te doen:
- Schakel open registratie uit tenzij je wilt dat iedereen zich kan aanmelden (
enable_registration: false) - Schakel rate limiting in via de Synapse-configuratie om misbruik te voorkomen
- Stel een firewall in (ufw of iptables) en stel alleen de noodzakelijke poorten open
- Houd Synapse up-to-date — het project brengt regelmatig beveiligingspatches uit
Voor meer informatie over privacygerichte hostingkeuzes is het artikel over de beste privacyvriendelijke hostingproviders het lezen waard.
Conclusie
Het zelf hosten van een Matrix-server vergt wat opzet, maar zodra het draait, heb je een berichtenplatform dat je volledig beheert. Geen vendor lock-in, geen dataverzameling, en je kunt federeren met de rest van het Matrix-netwerk of alles volledig privé houden.
Als je op zoek bent naar een betrouwbare plek om je homeserver te draaien, biedt QDE VPS-hosting krachtige abonnementen met NVMe-opslag en 10 Gbps-uplinks, gehost in Nederland, een uitstekende match voor privacygerichte projecten.
Klaar om te beginnen of wil je je opzet bespreken? Neem contact op met ons team en we helpen je het juiste abonnement te vinden.
Veelgestelde vragen over het zelf hosten van een Matrix-server
Wat is het verschil tussen Matrix en Discord?
Discord is een gesloten platform waarbij alle gegevens op de servers van Discord worden opgeslagen. Matrix is een open, gefedereerd protocol — je draait je eigen server en bent eigenaar van je gegevens. De twee zijn niet uitwisselbaar, maar Matrix kan een bridge naar Discord leggen als je nog steeds toegang nodig hebt tot Discord-communities.
Is Matrix end-to-end versleuteld?
Ja, Matrix ondersteunt end-to-end-encryptie in privéruimtes en directe berichten met behulp van de Olm- en Megolm-cryptografische protocollen. Groepsruimtes kunnen ook worden versleuteld, hoewel federatie en encryptie samen enige complexiteit kunnen introduceren.
Hoeveel kost het om een Matrix-server te draaien?
Dat hangt af van je aantal gebruikers. Een kleine homeserver voor persoonlijk of teamgebruik kan comfortabel draaien op een VPS van $5–15/maand. Het geheugengebruik van Synapse schaalt met actieve gebruikers en ruimtegeschiedenis, dus grotere communities hebben meer resources nodig.
Kan ik migreren van Discord naar Matrix?
Er is geen directe migratietool, maar je kunt een Discord-bridge gebruiken om beide parallel te draaien terwijl je overschakelt. Na verloop van tijd kunnen communities hun activiteit volledig verplaatsen naar Matrix-ruimtes.
Heb ik een domeinnaam nodig?
Ja. Je servernaam (en daarmee alle gebruikers-ID's) is gekoppeld aan een domein. Je kunt een subdomein als matrix.jouwdomein.com gebruiken voor de daadwerkelijke server, terwijl je je rootdomein schoon houdt voor identiteitsdoeleinden.
Wat als ik Element Web ook wil hosten?
Element Web is een statische site die je kunt serveren vanaf dezelfde VPS met Nginx. Kloon de Element Web-repository, configureer config.json om naar je homeserver te wijzen, en serveer de build-directory. Het is eenvoudig in te stellen naast Synapse.
Is Synapse de enige optie voor een Matrix-homeserver?
Nee. Conduit en Dendrite zijn lichtere alternatieven, geschreven in respectievelijk Rust en Go. Conduit is met name een goede keuze voor kleine persoonlijke servers waar resource-efficiëntie belangrijker is dan functievolledigheid.
