ID.nl logo
Zo maak je je eigen Bitwarden-server
© Reshift Digital
Huis

Zo maak je je eigen Bitwarden-server

Wil je accountgegevens, notities en creditcardgegevens opslaan in een digitale kluis, dan is Bitwarden al jaren een van de beste opties. Wel moet je er genoegen mee nemen dat gegevens in de cloud worden bewaard. Vind je dat maar niks, dan kun je Bitwarden ook lokaal op je eigen server hosten. In dit artikel laten we zien hoe je dat veilig en relatief eenvoudig voor elkaar krijgt via Docker, een reverse proxy en de alternatieve Bitwarden-server Vaultwarden.

In dit artikel nemen we je mee in het maken van een server waarop je superveilig je wachtwoorden kunt bewaren.

  • Eerst installeren we Docker
  • Daarna stellen we Vaultwarden in
  • Vervolgens zetten we een reverse proxy op voor toegang op afstand
  • En tot slot stellen we alles in

Te lastig? Gebruik Bitwarden dan gewoon via de cloud: Alles over je wachtwoorden beheren met Bitwarden

Code downloaden In dit artikel worden wat voorbeelden van stukken code gegeven. Omdat overtikken van code erg foutgevoelig is, kun je die code beter downloaden en daarna bekijken of kopiëren. Zie het bestand code-bitwarden.txt.

Een wachtwoordbeheerder is een bijna onmisbare tool. In de digitale kluis kun je veilig al je accounts bewaren, maar ook notities en financiële gegevens van je creditcard. In principe brengt zo’n tool ook veiligheid. Je kunt bijvoorbeeld veel makkelijker heel sterke wachtwoorden gebruiken. Je hoeft maar één hoofdwachtwoord te onthouden en op individuele apparaten volstaat vaak een pincode.

Wachtwoordbeheerders bewaren al je gegevens normaliter in de cloud, met als voordeel dat je er vanaf elk apparaat bij kunt. Ook daar zijn ze natuurlijk versleuteld met het hoofdwachtwoord. Toch is het geen prettig gevoel als je leest over gestolen data, zeker als je financiële gegevens in je digitale kluis bewaart. Zo is LastPass al meerdere keren het slachtoffer van een datalek geweest. Het versleutelingsmechanisme zelf werd niet gekraakt, maar hackers hadden wel alle tijd om te proberen met brute kracht het hoofdwachtwoord te kraken – wat dan eigenlijk de laatste verdedigingslinie is.

We nemen daarom in dit artikel het heft in eigen hand. We gaan Bitwarden, een van de populairste en veiligste wachtwoordbeheerders, installeren op een lokale server achter een reverse proxy.

©Song_about_summer

De digitale kluis van je wachtwoordbeheerder staat meestal in de cloud.

Waarom zelf hosten

Het zelf hosten van Bitwarden brengt veel voordelen met zich mee, maar ook een paar nadelen. Om te beginnen zullen hackers zich eerder op de centrale servers richten van de wachtwoordbeheerders. Ze kennen niet eens de locatie van jouw Bitwarden-server, die ook nog eens verscholen gaat achter een reverse proxy. En je kunt ook nog extra maatregelen treffen om de toegang te beperken.

De alternatieve Bitwarden-server Vaultwarden (zie het gelijknamige kader) die we in dit artikel gebruiken, geeft je ook nog eens mogelijkheden waar je normaal voor moet betalen. Een nadeel is dat je uiteraard een server nodig hebt en ook verantwoordelijk bent voor de beveiliging daarvan. Je zult bijvoorbeeld het besturingssysteem en de software up-to-date moeten houden en ook voor back-ups van je digitale kluis moeten zorgen.

©tutye - stock.adobe.com

Zelfs een Raspberry Pi is voor de meeste toepassingen geschikt als server.

Vaultwarden: lichtgewicht Bitwarden-server Voor onze Bitwarden-server gebruiken we niet de officiële server maar het opensource-alternatief Vaultwarden, eerder bekend als bitwarden_rs. Je kunt het project vinden op GitHub. Het is een lichtgewicht Bitwarden-server die je eenvoudig zelf kunt hosten. De eisen zijn bescheiden in vergelijking met de officiële server. Veel mensen gebruiken zelfs een Raspberry Pi, inclusief de Zero W!

De software ondersteunt vrijwel alle mogelijkheden van Bitwarden. Je kunt uiteraard ook alle standaardtoepassingen van Bitwarden ermee gebruiken, zoals de browserextensies. Ook kun je zonder meerprijs enkele mogelijkheden gebruiken die normaal zijn voorbehouden aan betalende klanten, zoals het maken van een organisatie en bewaren van bijlagen.

Deze alternatieve en opensource Bitwarden-server kun je vinden op GitHub.

Wat heb je nodig?

Vaultwarden is geschreven in Rust, een programmeertaal die snel aan populariteit wint en wordt geroemd om zijn snelheid en veiligheid. We hebben er in dit artikel weinig mee te maken, omdat we alles gaan installeren via Docker. Maar het betekent wel dat een relatief licht systeem volstaat. Je kunt bijvoorbeeld een eenvoudige server met Ubuntu gebruiken, maar ook alle uitvoeringen van de Raspberry Pi zijn geschikt. Verder zou je een NAS van Synology of QNAP kunnen gebruiken die Docker ondersteunt.

We zorgen er ook direct voor dat Bitwarden toegankelijk is van buitenaf via een reverse proxy. We kiezen daarbij voor een installatie van Nginx Proxy Manager via Docker, maar er zijn ook alternatieven mogelijk, zoals Caddy of Traefik. En ook binnen het Toepassingsportaal op een Synology-NAS kun je een reverse proxy instellen.

We installeren alles binnen Docker, wat vaak ook werkt op een Synology-NAS.

Domein en portforwarding

Om onze Bitwarden-server op afstand te kunnen benaderen, gaan we een subdomein gebruiken en enkele regels voor portforwarding instellen in de router. Hiervoor verwijs je het A-record van een subdomein naar het ip-adres van je internetverbinding thuis. Als je geen vast ip-adres hebt, zou je met dynamische DNS kunnen werken, zoals Duck DNS of No-IP.

In je router moet je het verkeer naar de poorten 80 en 443 doorsturen naar de reverse proxy. Aan de kant van de reverse proxy gaan we ook voor veilige https-toegang zorgen met een echt ssl-certificaat van Let’s Encrypt. Hiervoor zijn nauwelijks extra configuratiestappen nodig.

We sturen verkeer voor het subdomein door naar ons thuisnetwerk.

Installatie Docker

In dit artikel gaan we zowel Vaultwarden als de reverse proxy opzetten via Docker. Instructies voor de installatie van Docker voor verschillende besturingssystemen zijn wijd verspreid op internet. Wij hebben Docker onder Ubuntu 22.04 geïnstalleerd aan de hand van deze instructies.

Tegenwoordig wordt ook Docker Compose standaard geïnstalleerd. Dat gaan we in dit artikel gebruiken. Het zorgt ervoor dat je containers via een script kunt configureren. Bij een NAS van Synology of QNAP kun je containers via de webinterface beheren. Een standaard Docker-installatie kun je overigens ook uitbreiden met een webinterface, door bijvoorbeeld Portainer (ook via een Docker-container) te installeren.

Heb je Home Assistant? Dan kun je Vaultwarden eventueel via een community-add-on installeren. De vereiste repository wordt tegenwoordig standaard toegevoegd en geactiveerd.

Binnen Home Assistant kun je de add-on voor Vaultwarden installeren.

Docker-container

Om Vaultwarden te installeren, heb je uiteraard het juiste Docker-image nodig. Wij kiezen het standaardimage (vaultwarden/server). Datzelfde image ondersteunt het gebruik van SQLite, MySQL of PostgreSQL als database. Voorheen waren er verschillende images voor elk type database. Het advies is doorgaans om de standaardoptie SQLite te gebruiken, omdat deze het meest gebruikt en getest is. Verder worden meerdere architecturen ondersteund, waardoor je de container zowel op een x86-systeem als een ARM-systeem (zoals een Raspberry Pi) kunt opzetten.

We gebruiken de officiële container voor Vaultwarden.

Docker Compose-script

Op ons Ubuntu-systeem beginnen we met het maken van een map voor Vaultwarden en de bijbehorende data. We maken deze onder onze thuisfolder met de opdracht:

mkdir -p ~/docker/vaultwarden/data

Ga met de volgende opdracht naar de map voor Vaultwarden:

cd ~/docker/vaultwarden

En maak daarin het onderstaande script aan met:

nano docker-compose.yml

Het script bevat:

De code kun je overnemen vanuit .

Vooral de opties onder environment zijn persoonlijk. Dit zijn de zogenoemde omgevingsvariabelen. Als je een reverse proxy gaat gebruiken, vul dan achter DOMAIN het https-adres in dat je voor Bitwarden gaat gebruiken. Op de host (het systeem waarop we Vaultwarden installeren) gebruiken we poort 8080, die we koppelen aan poort 80 binnen de container.

Voor websockets gebruiken we (aan beide kanten) poort 3012. Met deze opdracht (in dezelfde map als het bestand docker-compose.yml) kun je Vaultwarden starten:

docker compose up -d

Wil je Vaultwarden stoppen, bijvoorbeeld om aanpassingen te maken aan de configuratie, stop dan eerst de container met:

docker compose down

Na het aanpassen van de configuratie start je de toepassing weer.

Met deze configuratie starten we onze container via Docker Compose.

Toegang configureren

Met bovenstaande configuratie kan iedereen via de web vault (de pagina die je ziet als je naar http://ipadres:8080 gaat) inloggen met een account, maar ook gewoon een nieuw account registreren. Wil je niet dat iedereen zomaar een nieuw account kan maken? Verander dan (eventueel op een later moment) de optie SIGNUPS_ALLOWED van true naar false.

Overigens kun je dat ook prima vanaf het begin doen als je nog geen account hebt. Er is namelijk een speciale beheerdersomgeving waar je gebruikers kunt bekijken of verwijderen, maar ook kunt uitnodigen om te registreren, zelfs als je die optie hebt uitgezet.

Je komt in deze omgeving als je /admin achter het adres zet. Om de omgeving te activeren, moet je een tekststring achter ADMIN_TOKEN invullen. Diezelfde tekststring moet je invullen om daadwerkelijk toegang te krijgen. Je kunt zelf een tekststring bedenken of je genereert een willekeurige met de opdracht:

openssl rand -base64 48
Via een speciale admin-omgeving wijzig je de opties.

SMTP-configuratie

Bij sommige acties zal Vaultwarden een e-mail willen versturen. Denk aan bepaalde meldingen, maar ook verzoeken zoals het bevestigen van een e-mailadres. Daarom is het handig om via omgevingsvariabelen de correcte instellingen voor SMTP op te geven. Je kunt bijvoorbeeld die van je internetprovider gebruiken. Voor bijvoorbeeld KPN kun je de omgevingsvariabelen in het bestand docker-compose.yml aanvullen met onderstaande regels. Daarbij kun je bij SMTP_FROM overigens zelf een afzender invullen. Op de admin-pagina vind je op het tabblad Settings een handige optie om je SMTP-instellingen te testen. Het is overigens niet handig om de configuratie daar aan te passen (zie kader ‘Configuratie Vaultwarden’).

De code kun je overnemen vanuit .
Via de beheeromgeving verstuur je een testmail.

Configuratie Vaultwarden In deze masterclass gebruiken we omgevingsvariabelen voor de configuratie van Vaultwarden. Eventueel kun je de configuratie ook veranderen en opslaan via de admin-pagina (/admin) van Vaultwarden. Dat raden we in principe af om praktische redenen: de veranderingen op de admin-pagina worden namelijk in een bestand (config.json) vastgelegd en ze hebben daarna voorrang boven de omgevingsvariabelen. Dat is in sommige situaties verwarrend.

Server te lastig, cloud onveilig?

Schrijf ze dan zelf op!

Verbinden op afstand

Je kunt Bitwarden ook onderweg gebruiken, bijvoorbeeld op een smartphone of tablet. Dit vereist wel dat je het account thuis via je lokale netwerk aanmaakt en ook steeds thuis gegevens synchroniseert. Wil je onderweg ook een nieuw apparaat toegang kunnen geven tot Bitwarden of gegevens synchroniseren, dan zul je voor toegang op afstand moeten zorgen. Daar zijn verschillende mogelijkheden voor.

Een populaire optie is het opzetten van een VPN-verbinding naar je thuisnetwerk met bijvoorbeeld Wireguard of OpenVPN. Maar in dit artikel gaan we een reverse proxy gebruiken. We kiezen daarbij voor Nginx Proxy Manager. Ook dit geeft een goede bescherming en de drempel voor toegang is lager. Je kunt de reverse proxy natuurlijk ook heel handig voor andere toepassingen op je netwerk gebruiken!

Voor toegang op afstand gaan we Nginx Proxy Manager gebruiken.

Installatie reverse proxy

Nginx Proxy Manager installeer je net als Vaultwarden eenvoudig via Docker, eventueel op hetzelfde systeem. Het maakt (uiteraard) op de achtergrond gebruik van de webserver Nginx als reverse proxy en maakt desgevraagd gratis ssl-certificaten van Let’s Encrypt aan, zodat directe toegang via https mogelijk is.

Via een handige webinterface voeg je vervolgens verbindingen voor de proxyserver toe, waaronder die van Vaultwarden. Zorg dat je (zoals eerder aangegeven) in je router de poorten 80 en 443 doorstuurt naar de server waarop je Nginx Proxy Manager hebt geïnstalleerd. We maken op dat systeem een nieuwe map met een eigen bestand docker-compose.yml, met daarin de volgende inhoud:

De code kun je overnemen vanuit .

Ook deze Docker-container start je weer met deze opdracht (in dezelfde map als het bestand docker-compose.yml):

docker compose up -d
Voor de reverse proxy volstaat deze bescheiden configuratie.

Bitwarden toevoegen

Heb je Nginx Proxy Manager gestart, dan zie je op het adres http://ipadres:81 de webinterface. De eerste keer moet je inloggen met admin@example.com en het wachtwoord changeme. Direct wordt gevraagd om je gegevens en het wachtwoord aan te passen. Hierna kun je de Vaultwarden-server toevoegen. Ga daarvoor naar Hosts / Proxy Hosts en kies Add Proxy Host. Vul bij Domain Names de domeinnaam in (bijvoorbeeld bitwarden.domein.nl) en druk op Enter.

Daaronder geef je aan hoe de toepassing op je netwerk wordt benaderd. Bij Scheme kies je http, bij Forward Hostname / IP vul je het ip-adres van de Vaultwarden-server in en bij Forward Port het poortnummer (8080). Zet een vinkje bij Websockets Support, Vaultwarden maakt hier gebruik van. Vink optioneel ook Block Common Exploits aan voor wat extra bescherming.

Op het tabblad Custom locations voeg je twee locaties toe voor websocket-ondersteuning: /notifications/hub met bij Scheme de waarde http, bij Forward Hostname / IP het ip-adres van de Vaultwarden-server en bij Forward Port het poortnummer 3012. Voeg via Add location de tweede locatie /notifications/hub/negotiate toe met dezelfde gegevens, maar nu poortnummer 8080.

Op het tabblad SSL kies je onder SSL Certificate de optie Request a new SSL Certificate. Zet een vinkje bij Force SSL en bij HTTP/2 Support. Vink ook aan dat je akkoord gaat met de gebruiksvoorwaarden van Let’s Encrypt. Klik dan op Save. Hiermee is je reverse proxy actief!

We voegen onze Bitwarden-server toe aan Nginx Proxy Manager.

Werking websockets controleren Vaultwarden gebruikt websockets om gegevens te synchroniseren tussen clients. Het activeren kan soms een uitdaging zijn. Je kunt de werking eenvoudig controleren als je de web vault opent in Chrome en dan de console in de gaten houdt. Dat is een onderdeel van de tools voor ontwikkelaars; je komt daar met de toetscombinatie Ctrl+Shift+I.

Je ziet hier na het inloggen direct een bevestiging dat de websocket is verbonden en als het goed is gegaan zie je geen foutmeldingen. Op mobiele apparaten zijn websockets overigens niet genoeg en zul je gegevens zelf (eventueel handmatig) moeten synchroniseren, omdat Vaultwarden geen pushnotificaties ondersteunt, in tegenstelling tot de officiële Bitwarden.

Digitale kluis maken

Je kunt in het vervolg de web vault via je domein benaderen, zoals https://bitwarden.domein.nl. Maak hier als eerste een nieuw account aan met uiteraard een sterk hoofdwachtwoord. Daarna kun je direct inloggen met deze gegevens. Via een knop stuur je een bericht waarmee je jouw e-mailadres bevestigt.

Gebruik je reeds de officiële Bitwarden en wil je overstappen naar Vaultwarden? Dan exporteer je de gegevens vanuit Bitwarden als JSON-bestand. Binnen Vaultwarden importeer je het bestand daarna op het tabblad Hulpmiddelen. Via het icoontje rechtsboven kun je onder Accountinstellingen de optie voor tweestapsverificatie aanzetten en ook andere beveiligingsopties configureren.

Via de browser hebben we toegang tot de digitale kluis met onze gegevens.

Tweestapsverificatie Zoals veel wachtwoordbeheerders kunnen Bitwarden en Vaultwarden niet alleen inloggegevens bewaren, maar ook inlogcodes genereren voor tweestapsverificatie. Daartoe moet wel de sleutel die wordt gedeeld bij het inschakelen van tweestapsverificatie worden opgeslagen in je digitale kluis. Dat is de kluis waar óók je wachtwoorden in staan. We raden je daarom altijd aan om tweestapsverificatie niet met je wachtwoordbeheerder af te handelen. Beter kun je een andere app gebruiken, zoals Google Authenticator of Aegis Authenticator. Als je digitale kluis wordt gekraakt, zorg je er in ieder geval voor dat hackers alsnog aan de poort worden tegengehouden, omdat ze niet de gegevens hebben om voorbij de tweede verificatiestap te komen.

▼ Volgende artikel
Docker op je NAS: zo draai je Plex, Home Assistant en meer
© Andrii - stock.adobe.com
Huis

Docker op je NAS: zo draai je Plex, Home Assistant en meer

Een NAS is voor de meeste gebruikers veel meer dan een netwerkschijf. Je kunt er eenvoudig extra toepassingen op draaien, bijvoorbeeld voor extra back-upmogelijkheden, productiviteit, multimedia en thuisautomatisering. Daarvoor is het vaak ook krachtig genoeg. Toepassingen kunnen bovendien bestanden op je NAS benutten. De makkelijkste manier om toepassingen te installeren en beheren is via Docker. We laten zien hoe je hiermee werkt op een NAS van Synology of QNAP.

In dit artikel

Je leest hoe Docker op een NAS werkt en waar je op moet letten bij Synology en QNAP. Je ziet hoe je images binnenhaalt, containers opzet en opslag goed regelt met bind mounts en volumes, zodat configuratie en data netjes op je NAS blijven staan. Ook leggen we uit hoe poortkoppelingen werken, wanneer Docker Compose handiger is dan losse containers en hoe je met Portainer het beheer overzichtelijker maakt.

Lees ook: Bouw je eigen dashboard met Homepage: al je webapplicaties overzichtelijk op één plek

Je hebt meestal geen zware server nodig voor toepassingen als Plex, Jellyfin, SABnzbd of Home Assistant. Een NAS is meestal krachtig genoeg. Soms is hooguit wat extra geheugen wenselijk. Zo heb je behalve je opslag ook al je toepassingen centraal. Mis je softwareopties op je NAS, bijvoorbeeld voor back-up of synchronisatie, dan is dat óók eenvoudig op te lossen met extra software. Maar hoe installeer je zulke toepassingen? Soms kun je een pakket installeren, bijvoorbeeld van SynoCommunity. Maar je moet dan precies de juiste variant vinden en er kunnen afhankelijkheden zijn, zoals php of Apache. Met Docker ben je veel flexibeler. Toepassingen zijn niet meer afhankelijk van de inrichting van je NAS en worden bovendien sneller bijgewerkt. Maar hoe werk je hier in de praktijk mee op een NAS? In dit artikel laten we dat zien. We beginnen met algemene uitleg over het werken met Docker op een NAS. Daarna behandelen we het downloaden van images en het maken en configureren van containers. We richten ons daarbij voornamelijk op Synology en QNAP. Heb je een NAS van een ander merk, dan zul je merken dat veel principes hetzelfde zijn. Bij het merk Ugreen lijkt de software bovendien sterk op die van Synology.

Containers of virtuele machines

Bij Docker draait een toepassing in een lichte en geïsoleerde container. De image, het uitgangspunt van een container, bevat alles wat de toepassing nodig heeft. Gegevens worden buiten de container opgeslagen, bijvoorbeeld in een gedeelde map op de NAS zelf. Een update is eenvoudig: je herbouwt gewoon de container op basis van een nieuwe image. Er zijn ook alternatieven, zowel bij QNAP als Synology. Zo kun je met virtuele machines werken, via Virtual Machine Manager (Synology) of Virtualization Station (QNAP). Maar in zo'n virtuele machine moet je een heel besturingssysteem installeren. Daar is een NAS niet altijd krachtig genoeg voor. Iets praktischer zijn de lichtgewicht Linux-containers die je bij QNAP kunt opzetten, maar dat vraagt meer technische kennis. Gevorderde gebruikers kunnen daarnaast bij QNAP vaak Kubernetes inzetten voor containerbeheer. Dat biedt veel mogelijkheden voor schaalbare omgevingen, maar is voor de meeste thuistoepassingen onnodig complex. Om snel een toepassing op je NAS te installeren, is Docker vrijwel ongeslagen.

Wat heb je nodig?

Niet alle modellen van Synology en QNAP ondersteunen Docker. Synology vereist een model met x86-cpu van Intel of AMD. Bij ARM-modellen kun je het soms via een omweg installeren, maar dat is niet officieel en ook niet zonder risico's. Verder hangt het van het model af. Vooral de Plus-series (zoals de DS224+ en DS923+) en hogere modellen ondersteunen Docker. Je kunt het eenvoudig controleren door in Synology Package Center te zoeken naar Container Manager (DSM 7.2 of hoger) of (als je een oudere DSM-versie hebt) naar Docker. Bij QNAP is de toepassing, onder de naam Container Station, beschikbaar via App Center. Het is geschikt voor de meeste niet al te oude modellen. Zowel bij Synology als QNAP is 2 GB werkgeheugen aanbevolen, maar we raden minimaal 4 GB RAM aan. Voor dit artikel gebruiken we een wat oudere Synology DS918+ en QNAP TS-453Be. Beide komen nog goed mee en beschikken over recente software.

Container Manager kun je vinden in Synology Package Center.

Opslag bij Docker

Belangrijke gegevens zoals configuratiebestanden, databases en cachebestanden worden in principe buiten een container bewaard. Dat kan op twee manieren. Normaal zal Docker voor de paden in de container die persistent moeten zijn een anoniem volume gebruiken. Dat krijgt een lange hash als naam. Je kunt ook zelf een naam toewijzen. We noemen dat dan een named volume. Die kun je makkelijker herkennen of hergebruiken in andere containers. De tweede optie is een zogeheten bind mount. Je koppelt dan de persistente paden in de container aan mappen op de host (het systeem waarop Docker draait), zoals je NAS. Zeker bij een NAS van Synology is dat het meest praktisch. Synology verbergt in de webinterface namelijk volumes, ook al zijn ze er wel! Bij een bind mount zie je de bestanden altijd netjes in de gedeelde mappen, zodat jij ze zelf kunt raadplegen of back-uppen.

QNAP maakt volumes met opslag voor een container wél zichtbaar.

Opslag bij een NAS

Voor het organiseren van je bestanden op een NAS gebruik je standaard al gedeelde mappen. Ga je met Docker werken, dan zul je óók zo'n map gebruiken voor de opslag voor je containers. Synology maakt die map standaard onder /docker. Bij QNAP is dat (meestal) /Container. Stel dat je WordPress wilt installeren. Het persistente pad in de container is in dit geval /var/www/html. Daar worden alle websitebestanden opgeslagen. Bij Synology zul je dan een map zoals /docker/wordpress maken die je bij de configuratie koppelt aan het container-pad /var/www/html. Er kunnen ook meerdere paden zijn. SearXNG gebruikt in de container bijvoorbeeld /etc/searxng voor de configuratie (zoals settings.yml) en /var/cache/searxng voor data en cachebestanden. Beide kun je dan koppelen met de NAS, bijvoorbeeld onder /docker/searxng/config en /docker/searxng/cache. Gebruik eventueel de bestandsbeheerder (zoals File Station) om de mappen vooraf aan te maken of aangemaakte bestanden te bekijken!

Het is handiger om gegevens van containers in een gedeelde map te bewaren.
Bestanden op je NAS gebruiken

Het mooie van Docker op een NAS is dat je een container toegang kunt geven tot bestanden op die NAS, zoals foto's, video's, documenten en back-ups. Je koppelt daarvoor gewoon de gewenste gedeelde mappen of submappen. Op die manier kun je bijvoorbeeld de muziekspeler NaviDrome direct toegang tot de muziek op de NAS geven. De muziek kun je daarna netjes georganiseerd bekijken en afspelen via de vlotte webinterface. Het werkt ook samen met verschillende bekende apps. Ook bijvoorbeeld voor video's zijn goede toepassingen beschikbaar, zoals Plex en Jellyfin. Of probeer eens een toepassing als Immich of Photoprism voor je fotobibliotheek.

Met NaviDrome kun je heel handig de muziek op je NAS beluisteren.

Werken met poorten

Containers gebruiken vaak één of meerdere poorten voor bijvoorbeeld een webinterface. Een voorbeeld is de webserver nginx met http-poort 80. Bij de configuratie koppel je die interne poort 80 aan een poort op de host en daarmee je lokale netwerk. Je kunt soms hetzelfde poortnummer (in dit voorbeeld 80) kiezen, maar dat hoeft niet. In dit geval is dat ook af te raden. Liever gebruik je een hogere, vrije poort. Let goed op de bezette poorten van de NAS zelf. Dat zijn er vaak best veel. Een voorbeeld is de veelgebruikte poort 8080 die QNAP voor de webinterface gebruikt. Bij Synology zie je een overzicht van gebruikte poorten in Configuratiescherm / Infocenter op het tabje Service. Bij QNAP ga je naar Systeem / Systeemstatus / Systeemdiensten. Een blok als 6000-6999 is bij beide merken een goede optie. Heb je een container gestart, dan moet je deze vaak even de tijd geven om te starten voordat je de webinterface kunt benaderen via de ingestelde poort.

Je maakt een koppeling tussen poorten op de host en poorten in de container.

Docker Compose

Bij een NAS kun je een container relatief makkelijk via een wizard starten. Maar de details die je opgeeft, zoals poorten en volumes, kun je naderhand niet aanpassen. Wil je iets veranderen, dan zul je een nieuwe container moeten maken met de juiste instellingen. Bij zowel Synology als QNAP kun je ook werken met Docker Compose. Bij Synology heet dit een project, QNAP noemt het een toepassing. Je kunt dan de instellingen voor één of meerdere containers beheren in één yaml-bestand, meestal met de naam docker-compose.yml. Een groot voordeel is dat je dan eenvoudiger achteraf de configuratie kunt aanpassen. Het werken met meerdere containers is bovendien veel overzichtelijker. Je groepeert ze samen in één bestand, ook wel 'stack' genoemd. En je kunt alle containers in één handeling starten, stoppen of verwijderen. Bij problemen zul je overigens wel nog steeds de individuele containers moeten inspecteren (zie kader 'Problemen oplossen').

Via een wizard kies je vooraf de gewenste instellingen voor een container.
Problemen oplossen

Heb je een probleem met een container? Open dan het overzicht met containers. Klik vervolgens op de naam van de container. De logboeken die je hier kunt bekijken, geven vaak goede aanwijzingen voor problemen. Ook als je met Docker Compose werkt, zul je bij problemen de individuele containers moeten inspecteren. Soms is het ook weleens handig om opnieuw te beginnen. Stop daarvoor eerst de relevante containers, verwijder de volumes én bestanden die in de gekozen gedeelde mappen zijn gemaakt en start je project opnieuw.

Synology: Docker installeren

Docker is meestal niet standaard geïnstalleerd. Je logt eerst in bij DSM, het besturingssysteem van je NAS. Vervolgens installeer je de toepassing via

Package Center. De toepassing heet Container Manager (sinds DSM 7.2) of (bij een eerdere versie) Docker. Bij de installatie wordt gevraagd om een brugnetwerk te configureren. Dat is het netwerk waarop containers intern communiceren. Je hoeft dit subnet (172.17.0.0/16) niet te veranderen, tenzij dit conflicteert met jouw eigen netwerk (wat heel zeldzaam is).

Installeer de toepassing via de downloadtool van je NAS.

Synology: images downloaden

Om een container met een bepaalde toepassing te starten, heb je een image nodig. Open daarvoor Container Manager en ga naar Register. Hier kun je images op naam opzoeken. Dubbelklik dan op een image om deze te downloaden. Vaak zul je de officiële of populairste optie kiezen. De images van LinuxServer.io zijn ook altijd goed. Omdat ze dezelfde opbouw en documentatie volgen, zijn ze herkenbaar en makkelijk te gebruiken. Je kunt bij het downloaden een tag kiezen. Vaak kies je latest voor de laatste stabiele versie. Alle images die je hebt gedownload, vind je terug onder Image. Als er updates zijn, kun je die daar ook downloaden. Je containers blijven overigens draaien op de versie waarmee ze zijn gemaakt. Pas als je een nieuwe container start, wordt de nieuwe image gebruikt.

Je kunt direct binnen Container Manager de gewenste images downloaden.

Synology: container maken

We gaan als voorbeeld een container voor SearXNG maken, een privacyvriendelijke zoekmachine die live resultaten bij andere zoekmachines ophaalt. Ga hiervoor naar Container en kies Maken. We gebruiken de image searxng/searxng. Bij het maken van de container hoef je bij Algemene instellingen niet veel te veranderen. Wel handig is de optie Automatisch opnieuw starten inschakelen, voor hogere beschikbaarheid. Op het tweede scherm, bij Geavanceerde instellingen, zie je onder het kopje Poortinstellingen dat deze toepassing in de container poort 8080 gebruikt. Bij Lokale poort kies je de lokale poort (op de host), zoals 8080 (of iets anders, als deze al in gebruik is). Na het maken van de container kun je de zoekmachine bereiken via de gekozen lokale poort, zoals http://ip-NAS:8080. Onder het kopje Volume-instellingen maak je zoals eerder toegelicht een bind mount. Koppel /docker/searxng/config met /etc/searxng en koppel /docker/searxng/cache met /var/cache/searxng. Via het venster kun je naar de map op de NAS bladeren om deze aan te wijzen (en eventueel ook aan te maken).

We maken koppelingen tussen gedeelde mappen en volumes in de container.

Synology: lokale bestanden gebruiken

Een van de voordelen is dat toepassingen bestanden op de NAS kunnen gebruiken. We noemden NaviDrome al, een populaire muziekspeler. Bij het maken van deze container koppel je poort 4533 aan de lokale poort, zoals 4533. Bij de volumes moet je opletten. NaviDrome gebruikt /data voor gegevensopslag en /music voor muziek. Koppel bij Volume-instellingen daarom bijvoorbeeld /docker/navidrome/data aan /data. Staat je muziek op de NAS onder /music/albums, dan koppel je precies die map aan /music in de container. Kies hier eventueel voor alleen leestoegang, omdat deze toepassing geen bestanden hoeft te wijzigen. Na het starten van de container zul je het programma even de tijd moeten geven om alle muziek te indexeren.

We geven NaviDrome toegang tot muziek op de NAS.

Synology: project maken

Wil je bij Synology met Docker Compose werken dan ga je naar Project en kies je Maken. Je kunt bij Bron kiezen om zelf een docker-compose.yml te uploaden, maar ook een nieuw bestand maken. Dat laatste heeft meestal de voorkeur. Je kunt de configuratie dan in het venster plakken en meteen nog wat persoonlijke aanpassingen maken. We nemen WordPress als voorbeeld dat twee containers heeft: één voor WordPress zelf en één voor een database (zoals MySQL of MariaDB). Je zet ze samen in één project en beheert ze daarna als geheel, in plaats van als twee losse containers. Bij Naam van project vullen we in wordpress (alleen kleine letters). Bij Pad kiezen we een gedeelde map op de NAS, zoals /docker/wordpress. Bij Bron kiezen we voor het maken van een docker-compose.yml. Hieronder zie je het voorbeeld voor de officiële image voor WordPress, waar we wat aanpassingen in gaan maken voor de NAS:

services:

  wordpress:

    image: wordpress

    restart: always

    ports:

      - 8080:80

    environment:

      WORDPRESS_DB_HOST: db

      WORDPRESS_DB_USER: exampleuser

      WORDPRESS_DB_PASSWORD: examplepass

      WORDPRESS_DB_NAME: exampledb

    volumes:

      - wordpress:/var/www/html

  db:

    image: mysql:8.0

    restart: always

    environment:

      MYSQL_DATABASE: exampledb

      MYSQL_USER: exampleuser

      MYSQL_PASSWORD: examplepass

      MYSQL_RANDOM_ROOT_PASSWORD: '1'

    volumes:

      - db:/var/lib/mysql

volumes:

  wordpress:

  db:

Begin met het maken van een nieuw project.

Synology: configuratie aanpassen

Hoewel de configuratie werkt, zijn enkele aanpassingen wel wenselijk. In het voorbeeld worden twee named volumes gebruikt, terwijl bind mounts handiger zijn, zeker bij Synology. Daarom halen we de onderste drie regels weg. We maken op de NAS de mappen /docker/wordpress/db en /docker/wordpress/html aan. Ten slotte passen we het volume aan voor de twee containers. Voor WordPress wordt dit als volgt:

- /volume1/docker/wordpress/html:/var/www/html

Voor de database passen we het aan naar:

- /volume1/docker/wordpress/db:/var/lib/mysql

Controleer op jouw NAS of de volumenaam volume1 klopt. Kies ook een betere gebruikersnaam en een sterker wachtwoord voor de database. Let wel op: wat je bij WORDPRESS_DB_USER en WORDPRESS_DB_PASSWORD invult, moet hetzelfde zijn als bij MYSQL_USER en MYSQL_PASSWORD. MySQL maakt met die toegangsgegevens de database, terwijl WordPress ze gebruikt om daar toegang toe te krijgen.

Je kunt de configuratie via een YAML-bestand aanpassen.

Nieuwe NAS? Kijk en vergelijk op Kieskeurig.nl

QNAP: Docker installeren

Om Docker te installeren op je NAS van QNAP log je eerst in bij het besturingssysteem QTS. Daarna installeer je de toepassing via App Center. Je vindt het onder de naam Container Station. De installatie wijst zichzelf. Als je de toepassing de eerste keer start, wordt gevraagd waar je gegevens van containers op wilt slaan. Je kunt de standaardmap /Container accepteren.

Installeer de toepassing via de downloadtool van je NAS.

QNAP: image zoeken en gebruiken

Voor het zoeken van een image open je Container Station en klik je op Verkennen. Hier kun je images op naam opzoeken. Voor Docker gebruik je de resultaten van Docker Hub, de centrale verzamelplek voor Docker-images. Kies bij de gewenste image de optie Implementeer. Je kunt dan een tag kiezen (zoals latest). Vervolgens kun je direct de container configureren. Dit behandelen we in de volgende stap. Voor een overzicht van alle gedownloade images kun je naar Installatiekopieën. Wij installeren ook in dit voorbeeld een container voor SearXNG.

Gebruik voor Docker de resultaten van Docker Hub.

QNAP: container configureren

Bij de configuratie van de container kan de optie Standaardpoort voor web-URL wat verwarrend zijn. In feite maakt Container Station op basis van die poort een klikbare link die je in de webinterface ziet om de container te openen in je browser. Je kunt het dus zien als een soort shortcut. Je moet daaronder dus nog steeds de benodigde poorten openstellen. In dit voorbeeld vul je dus achter Host een poortnummer in, zoals 8000 (8080 is bij QNAP bezet!). Verander de poort bij Container (8080) niet. Vul bij Standaardpoort voor web-URL ook 8000 in, zodat de shortcut ook werkt.

Om andere opties in te kunnen stellen, zoals opslag, klik je op Uitgebreide instellingen.

Let bij de configuratie van de container vooral op de lokale poort.

QNAP: opslag configureren

SearXNG heeft in de container de persistente paden /etc/searxng en /var/cache/searxng. Bij QNAP kun je prima met (anonieme of named) volumes werken. In dit voorbeeld zullen we dat doen voor de wegwerpbare cachebestanden. Voor de configuratiebestanden maken we via File Station vooraf een map aan onder /Container/searxng/config. Achter Volume vullen we nu de naam searxngcache in, in het deel waar bij Container het pad /var/cache/searxng staat. Hier wordt dan een named volume voor gemaakt. We verwijderen de andere optie (met het pad /etc/searxng). Via het pijltje achter Voeg volume toe kiezen we Gekoppelde hostlocatie binden. Blader dan achter Host naar de zojuist gemaakte map (/Container/searxng/config). Achter Container vul je het pad /etc/searxng in. SearXNG zal zijn configuratie nu in de gekozen map bewaren en de cache in een named volume. Rond het maken van de container af. Die zal daarna worden gestart. Onder Volumes zie je alle volumes die zijn gemaakt, zoals searxngcache. Merk op dat In gebruik hier betekent dat het volume is gekoppeld aan een container, en dus niets over de status van de container zegt! Je kunt ongebruikte volumes eventueel verwijderen.

We gebruiken een named volume voor cache en een bind mount voor de configuratie.

QNAP: toepassingen

QNAP ondersteunt het werken met Docker Compose. Hiervoor ga je naar Toepassing en kies je Maken. Bij Naam van de toepassing vul je een herkenbare naam in. Daaronder kun je de yaml-code invullen. Voor SearXNG, ingesteld zoals hiervoor met een bind mount voor de configuratiebestanden en een named volume voor cache, vul je het in zoals hieronder. Let op het absolute pad /share/Container/searxng/config. Dat is hoe je naar die map moet verwijzen. De code is als volgt:

services:

  searxng:

    image: searxng/searxng

    container_name: searxng

    restart: unless-stopped

    ports:

      - "8000:8080"

    volumes:

      - /share/Container/searxng/config:/etc/searxng

      - searxngcache:/var/cache/searxng

volumes:

  searxngcache:

Het maken van eventuele aanpassingen is niet heel intuïtief. Je gaat hiervoor naar Toepassingen en klikt achter de toepassing op het instellingenicoontje. Kies dan de optie Opnieuw maken. Je kunt nu de yaml-code bewerken. Na het maken van de aanpassingen zal een nieuwe container worden opgebouwd met deze nieuwe configuratie.

QNAP ondersteunt ook het werken met Docker Compose.
Beheer containers op je NAS met Portainer

Het kan om meerdere redenen praktisch zijn om Portainer te installeren op je NAS, een grafische webinterface voor het beheer van je containers. Het is wat overzichtelijker en er blijft, zeker in vergelijking met Container Manager van Synology, minder verborgen. Je kunt Portainer gewoon via Docker installeren. Het is handig eerst een map te maken voor Portainer, waar het zijn configuratie persistent kan bewaren. Maak dan een project in Container Manager met de onderstaande configuratie:

services:

  portainer:

    image: portainer/portainer-ce:latest

    container_name: portainer

    restart: always

    ports:

      - "9443:9443"   # HTTPS toegang

      - "9000:9000"   # (optioneel, oudere HTTP-poort)

    volumes:

      - /var/run/docker.sock:/var/run/docker.sock

      - /volume1/docker/portainer:/data

Bij QNAP kun je dezelfde configuratie gebruiken, maar vervang dan /volume1/docker/portainer:/data door /share/Container/portainer:/data. Na het starten zie je op https://ip-NAS:9443 (of http://ip-NAS:9000) de webinterface van Portainer. De eerste keer wordt gevraagd om een wachtwoord aan te maken. Portainer heeft (ook) een kleine leercurve, maar het geeft je veel opties, en werkt op elk systeem hetzelfde.

Je kunt nu in Portainer alles rondom Docker beheren, zoals containers en images.
▼ Volgende artikel
Liebherr IRd 3900: waarom dit de favoriete inbouwkoelkast van 2025 is
Huis

Liebherr IRd 3900: waarom dit de favoriete inbouwkoelkast van 2025 is

Wat maakt een koelkast de allerbeste van het jaar? Niet een glanzende folder vol beloftes, maar de dagelijkse ervaringen van echte gebruikers. De Liebherr IRd 3900 is door consumenten van Kieskeurig.nl bekroond met de prestigieuze Best Reviewed van het Jaar-award 2025. Van de slimme EasyFresh-technologie tot het fluisterstille ontwerp en de praktische indeling: lees waarom dit model als de absolute favoriet uit de bus kwam en waarom gebruikers er zo enthousiast over zijn.

Partnerbijdrage - in samenwerking met Liebherr

Wie een inbouwkoelkast zoekt, heeft enorm veel keuze, maar één model wist het afgelopen jaar de harten van de Nederlandse consument echt te veroveren. Met zijn doordachte design, gebruiksvriendelijke bediening en bewezen betrouwbaarheid is de Liebherr IRd 3900 uitgeroepen tot Best Reviewed van het Jaar 2025. In dit artikel lees je wat deze inbouwkoelkast zo bijzonder maakt – en waarom gebruikers er zo lovend over zijn.

De stem van de consument: Best Reviewed 2025

De beste keuze volgens consumenten – dat is waar het bij Best Reviewed 2025 om draait. Want niets zegt zo veel als de ervaring van andere gebruikers. Jaarlijks delen duizenden consumenten hun eerlijke mening op Kieskeurig.nl. Hun reviews vormen de basis voor de Best Reviewed-awards. De producten die deze titel verdienen, hebben zich een heel jaar lang bewezen in de praktijk: ze blinken uit in kwaliteit, gebruiksgemak en klanttevredenheid. Absolute consumentenfavorieten dus – en in de categorie inbouwkoelkasten is de Liebherr IRd 3900 de winnaar geworden.

Van EasyFresh tot verstelbare indeling

De Liebherr IRd 3900 is een inbouwkoelkast die laat zien waarom het Duitse merk al jaren bekendstaat om betrouwbaarheid en technische vernieuwing. Deze koelkast combineert een strak, tijdloos design met praktische functies die het dagelijks leven makkelijker maken. Dankzij het EasyFresh-systeem blijven groenten en fruit langer vers: de ideale luchtvochtigheid in de lade voorkomt uitdroging en zorgt dat smaak en textuur behouden blijven. Dat maakt het apparaat niet alleen zuinig in gebruik, maar helpt ook voedsel langer goed te houden en verspilling te beperken.

©Liebherr

Wie de deur opent, merkt direct de doordachte indeling. Het interieur en de deurvakken zijn over de volledige hoogte verstelbaar, zodat je er moeiteloos alles in kwijt kunt wat koel moet blijven: of dat nu hoge flessen zijn of een brede ovenschotel. Fijn daarbij is dat de glazen draagplateaus tot wel 30 kg kunnen dragen. Daarbij zorgt de heldere LED-plafondverlichting voor een perfect overzicht, zelfs wanneer de koelkast vol is. De bediening verloopt via een intuïtief Touch-display, waarmee je supersnel de temperatuur of functies kunt aanpassen. Bovendien is de IRd 3900 voorbereid op SmartHome-toepassingen (accessoire). Liebherr biedt, na registratie, maar liefst 10 jaar garantie op dit model – dat doe je als merk natuurlijk alleen maar wanneer je helemaal overtuigd bent van je product.

©Liebherr

Waarom gebruikers enthousiast zijn

Die combinatie van slimme technologie en gebruiksgemak is ook precies wat consumenten zo waarderen. Uit tientallen reviews op Kieskeurig.nl blijkt dat gebruikers de IRd 3900 een uitzonderlijk hoge gemiddelde score van 9,1 geven. De koelkast wordt geroemd om zijn stille werking – "Dan zet je hem aan en hoor je nagenoeg niets! Heerlijk stille koelkast!" – en om de praktische indeling die volgens velen "fijn en flexibel" is. Ook wat betreft dagelijks gemak scoort de IRd 3900 hoog. "Door het digitale display makkelijk in te stellen naar de gewenste koeltemperatuur", zegt een van de reviewers. Een ander voegt daar nog aan toe: "Mooie heldere verlichting … Makkelijke display, goed zichtbaar en makkelijk te bedienen." Daarnaast valt op dat veel reviewers de energiezuinigheid en afwerking noemen als pluspunten: het apparaat voelt degelijk aan en doet precies wat het belooft.

©Liebherr

Een optelsom van kwaliteiten

De reden dat de Liebherr IRd 3900 de titel Best Reviewed van het Jaar 2025 heeft gewonnen, ligt dus in de optelsom van al deze kwaliteiten. Hij combineert gedegen techniek met praktische voordelen die in het dagelijks leven écht verschil maken. Of het nu gaat om de versheid van producten, het handige display of het overzichtelijke interieur: deze inbouwkoelkast weet consumenten te overtuigen in alles wat ertoe doet. En dat maakt de Liebherr IRd 3900 niet alleen een technisch sterk product, maar vooral een betrouwbare huisgenoot waar mensen jarenlang plezier van hebben.

Een eerlijk oordeel

Natuurlijk is geen enkel product perfect. Gebruikers op Kieskeurig.nl zijn ook kritisch: sommige kopers vinden de groente- en fruitlade aan de kleine kant of noemen dat er sneller condens kan ontstaan. Een paar mensen geven ook aan dat je even moet wennen aan het instellen via het display, en dat de montage van de deur wat meer aandacht vraagt. Tegelijk zie je waarom dat voor de meeste kopers geen struikelblok is. Ze benadrukken vooral hoe stil de koelkast is, hoe ruim hij aanvoelt en hoe makkelijk je de indeling aanpast aan wat je in huis haalt. Daardoor wegen die minpunten voor veel mensen niet op tegen wat je dagelijks merkt: rust in de keuken, goed overzicht en een indeling die je naar eigen wens kunt aanpassen.

Ontdek alle pluspunten van de Liebherr IRd 3900

Op Kieskeurig.nl