Vaultwarden hosten op een Managed VPS betekent dat u uw wachtwoorden en die van uw team bewaart op een machine die van u is, en die ons team bijwerkt en dag en nacht in de gaten houdt. Vaultwarden is opensourcesoftware onder de AGPL-3.0-licentie. Deze gids volgt de officiële documentatie: de installatie met Docker Compose, HTTPS, het sluiten van de registraties, het beheerderstoken, wat de kluis beschermt, de database, e-mails, back-ups en updates.
Door Simon Vasconcelos Lee
Gepubliceerd op 8 november 2026Leestijd: 15 minuten
DOMAIN.SIGNUPS_ALLOWED: standaard kan iedereen die de instantie bereikt zich registreren. Een sterk hoofdwachtwoord en tweestapsverificatie beschermen vervolgens de kluis.docker compose pull.Vaultwarden is een server voor wachtwoordbeheer, geschreven in Rust en bedoeld voor self-hosting. De wiki richt het op particulieren, gezinnen en organisaties van menselijke omvang. De webkluis wordt meegeleverd in de Docker-images.
Het implementeert een API die compatibel is met de officiële Bitwarden-clients, in de browser, op de computer en op de telefoon. De README preciseert dat het project niet verbonden is met Bitwarden of Bitwarden, Inc., en vraagt elk probleem, welke client u ook gebruikt, rechtstreeks aan het project te melden in plaats van bij de officiële supportkanalen.
/admin voor de instellingen, de accounts en de diagnose.De wiki somt ook op wat ontbreekt ten opzichte van de officiële server, zoals aanmelden met een passkey, aangepaste rollen en bepaalde bedrijfsbeleidsregels. Ze preciseert dat functies die vooral voor grote organisaties nuttig zijn geen prioriteit van het project zijn: lees die lijst als u ze nodig hebt.
Vaultwarden wordt gepubliceerd onder de GNU Affero General Public License, versie 3. De tekst kent een onbeperkte toestemming toe om het ongewijzigde programma te draaien. U kunt de image die het project publiceert dus gebruiken voor uw bedrijf en uw team, zonder een licentie te kopen.
Artikel 13 voegt een voorwaarde toe die eigen is aan de AGPL: als u het programma wijzigt, moet uw versie iedereen die het op afstand, via het netwerk, gebruikt de mogelijkheid bieden de broncode gratis te verkrijgen.
De README beveelt de containerimages aan. Maak op een server waar Docker is geïnstalleerd een map aan en plaats daarin dit compose.yaml, overgenomen uit de README en de wiki:
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
environment:
DOMAIN: "https://vault.example.com"
SIGNUPS_ALLOWED: "true"
volumes:
- ./vw-data/:/data/
ports:
- 127.0.0.1:8000:80
docker compose up -d
127.0.0.1: zoals in de README is Vaultwarden alleen bereikbaar via de reverse proxy op dezelfde server.DOMAIN: het basisadres van uw instantie, in https. De wiki waarschuwt dat functies zonder dat stukgaan, waaronder de bijlagen en de uitnodigingslinks.vw-data op een lokale schijf: ze bewaart alle gegevens. De wiki wijst op de problemen van SQLite op een CIFS- of Samba-volume, dat geen bestandsvergrendeling ondersteunt.latest volgt de laatst gepubliceerde versie, en de wiki beveelt haar aan voor de meeste toepassingen. Een tag zoals 1.37.5 legt een versie vast, en latest-alpine geeft hetzelfde op een Alpine-basis.Uw domeinnaam wijst met A- en AAAA-records naar de server, en de bezoekers komen binnen op de poorten 80 en 443. Zolang de reverse proxy er niet staat, blijft de webkluis onbruikbaar: ga rechtstreeks naar de volgende sectie.
Het project noemt geen cijfers voor geheugen of processor; het presenteert zich alleen als oplossing voor de gevallen waarin de officiële, resource-hongerige dienst niet past. De grootte hangt af van het aantal accounts en het volume aan bijlagen. Beschrijf op een managed VPS uw gebruik aan ons, dan raden wij u de passende grootte aan.
De webkluis steunt op de Web Crypto API, die browsers voorbehouden aan beveiligde contexten: de README zegt dat ze pas werkt als HTTPS is ingeschakeld, en de wiki noemt HTTPS “pretty much required”, ongeveer verplicht. Het project beveelt een reverse proxy voor Vaultwarden aan en raadt de TLS af die in zijn framework Rocket is ingebouwd.
Neem een erkend certificaat, zoals die van Let's Encrypt, dat de wiki aanbeveelt: met een zelfondertekend certificaat weigeren sommige platformen de verbinding. Het certificaat moet zijn volledige keten bevatten, anders maken Android-apparaten geen verbinding.
De WebSocket-meldingen, standaard actief, laten de browser, de desktopapp en de extensie weten dat een item is gewijzigd. Ze lopen via de hoofdpoort voor HTTP, en de proxy moet de headers Upgrade en Connection doorgeven. De mobiele apps gebruiken de native meldingen van hun systeem, die apart worden ingesteld.
De wiki raadt aan eerst naar Caddy te kijken als u geen voorkeur hebt: het schakelt HTTPS zelf in, verkrijgt het Let's Encrypt-certificaat en ondersteunt WebSocket. De instelling uit de wiki geeft ook het echte adres van de bezoeker door aan Vaultwarden, voor zijn logboeken:
vault.example.com {
reverse_proxy 127.0.0.1:8000 {
header_up X-Real-IP {remote_host}
}
}
Dit blok neemt het Nginx-voorbeeld uit de wiki over, teruggebracht tot poort 80 zodat Certbot HTTPS kan plaatsen:
upstream vaultwarden-default {
zone vaultwarden-default 64k;
server 127.0.0.1:8000;
keepalive 2;
}
map $http_upgrade $connection_upgrade {
default upgrade;
'' "";
}
server {
listen 80;
listen [::]:80;
server_name vault.example.com;
client_max_body_size 525M;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
location / {
proxy_pass http://vaultwarden-default;
}
}
Certbot plaatst daarna het certificaat en zorgt voor de vernieuwing ervan:
sudo certbot --nginx
Open de ontwikkelaarstools van de browser, tabblad netwerk, filter WS, en meld u daarna opnieuw aan bij de kluis: een antwoord 101 op /notifications/hub bevestigt de verbinding. Een andere test uit de wiki: open de kluis in twee browsers, hernoem een item in de ene, en de wijziging verschijnt meteen in de andere.
Standaard kan iedereen die uw instantie bereikt er een account aanmaken. Dat is handig voor uw eerste account, en de wiki raadt aan daarna te sluiten, zodat een aanvaller er geen kan aanmaken.
SIGNUPS_ALLOWED op "false" in compose.yaml.docker compose up -d: een omgevingsvariabele is aan de container gekoppeld, die opnieuw moet worden aangemaakt om haar toe te passen.SIGNUPS_ALLOWED: "false"
INVITATIONS_ALLOWED op "false" haalt die mogelijkheid weg, en de wiki laat die keuze aan u, naargelang het vertrouwen dat u in uw gebruikers hebt.SIGNUPS_DOMAINS_WHITELIST beperkt de registratie tot bepaalde e-maildomeinen, en SIGNUPS_VERIFY op true verplicht dan het controleren van het adres. Zodra die lijst is ingesteld, wordt SIGNUPS_ALLOWED genegeerd.Zodra u de configuratie vanaf de beheerpagina opslaat, ontstaat er een bestand config.json in de gegevensmap, dat voorrang krijgt op de omgevingsvariabelen. De betreffende instellingen wijzigt u dan vanaf die pagina: compose.yaml aanpassen volstaat niet meer.
De pagina /admin dient om Vaultwarden te configureren, accounts en organisaties te bekijken en te verwijderen, de tweestapsverificatie van een gebruiker te verwijderen, uit te nodigen en de diagnose te lezen. Zonder ADMIN_TOKEN blijft ze uitgeschakeld: hebt u er geen gebruik voor, laat haar dan zo.
De wiki raadt sterk aan HTTPS in te schakelen vóór deze pagina. Het token dient als wachtwoord, en het kan in gehashte vorm, met argon2id, worden bewaard in plaats van leesbaar in de configuratie. Vaultwarden levert de opdracht: ze vraagt het wachtwoord twee keer en geeft dan een PHC-tekenreeks terug.
docker run --rm -it vaultwarden/server /vaultwarden hash
Plaats die tekenreeks in een bestand .env, naast compose.yaml, tussen enkele aanhalingstekens, en roep haar daarna aan vanuit de dienst:
VAULTWARDEN_ADMIN_TOKEN='$argon2id$...'
ADMIN_TOKEN: ${VAULTWARDEN_ADMIN_TOKEN}
Controleer het resultaat, start opnieuw en meld u daarna aan op /admin met uw wachtwoord, en niet met de PHC-tekenreeks:
docker compose config
docker compose up -d
ADMIN_SESSION_LIFETIME. Een geopende sessie blijft geldig na een wijziging van het token. Wilt u ze allemaal afsluiten, verwijder dan rsa_key.pem uit de gegevensmap en start opnieuw, wat ook de gebruikers afmeldt en lopende uitnodigingen annuleert./admin alleen voor bepaalde adressen opent, of er een HTTP-authenticatie aan toevoegt.DISABLE_ADMIN_TOKEN haalt elke controle weg: het is bedoeld voor een aparte authenticatielaag die ervoor staat, en de wiki behoudt het voor wie weet wat hij doet.De eerste bescherming is het hoofdwachtwoord. De gegevens van de kluis zijn versleuteld met persoonlijke sleutels of sleutels van de organisatie: wie een kopie van de database bemachtigt of een sessie afdwingt, moet dat wachtwoord nog kraken om ze te lezen. Zijn sterkte telt dus vóór alles. Een beheersessie zelf laat toe een account te verwijderen of een tweestapsverificatie weg te halen, zonder toegang te geven tot de gegevens van de kluis.
| Bescherming | Wat ze oplevert | Waar ze wordt ingesteld |
|---|---|---|
| Hoofdwachtwoord | Houdt de gegevens versleuteld, ook als er een kopie van de database rondgaat | Elke gebruiker kiest het zelf, lang en uniek voor deze kluis |
| Tweestapsverificatie | Zonder haar blijft, zo herinnert de wiki, een wachtwoord raden met brute kracht in theorie mogelijk | In elk account; een beleidsregel van de organisatie kan haar verplichten |
| HTTPS | Versleutelt het traject tussen de client en de server | De reverse proxy |
| Gesloten registraties | Voorkomt dat een onbekende zich een account aanmaakt | SIGNUPS_ALLOWED |
| Wachtwoordhints | Op de pagina getoond zouden ze helpen een wachtwoord te raden; versie 1.37.5 houdt ze standaard verborgen | Laat SHOW_PASSWORD_HINT op false; PASSWORD_HINTS_ALLOWED haalt ze helemaal weg |
| Limiet op pogingen | Remt pogingen vanaf hetzelfde adres af, aanmelding en /admin | LOGIN_RATELIMIT_SECONDS en ADMIN_RATELIMIT_SECONDS |
| Fail2ban | Blokkeert adressen na te veel mislukte pogingen, wat de wiki bijzonder belangrijk vindt voor een openbare instantie | Op de server, vanuit een logboek LOG_FILE |
Bereid u voor op het vergeten van het hoofdwachtwoord voordat het gebeurt: schakel de noodtoegang van uw account in en, in een organisatie, het accountherstel, dat een ingestelde e-mail vraagt.
root, en de wiki vindt het beter haar zo min mogelijk rechten te geven. Voeg user: 1000:1000 toe aan de dienst, met een map vw-data die van die gebruiker is.access_token. Bewaart uw proxy zijn logboeken of stuurt hij ze naar een externe dienst, dan raadt de wiki aan die waarde daar te maskeren./var/run/docker.sock.Dezelfde image ondersteunt alle drie de databases. De wiki beschrijft SQLite als de meest gebruikte en best geteste, en beveelt haar aan voor de meeste toepassingen, tenzij u een andere specifiek nodig hebt.
| Database | Opzet | Back-up |
|---|---|---|
| SQLite | Geen: een bestand, vw-data/db.sqlite3 | De opdracht /vaultwarden backup, of een kopie van de map, met de dienst gestopt |
| MariaDB of MySQL | Uw databaseserver, en DATABASE_URL in mysql:// | Een export van de database, naast de map vw-data |
| PostgreSQL | Uw databaseserver, en DATABASE_URL in postgresql:// | Een export van de database, naast de map vw-data |
DATABASE_URL: "postgresql://user_name:user_password@db_host:5432/vaultwarden"
Maak een lege database en gebruiker aan: bij het opstarten legt Vaultwarden er zelf zijn schema in aan. Een wachtwoord met speciale tekens schrijft u in dit adres met procentcodering.
Maak deze keuze voordat u de kluis vult. De wiki beschrijft een overstap van SQLite naar PostgreSQL met pgloader, en preciseert dat deze weg niet door het project wordt ondersteund, dat u hem op eigen risico bewandelt en dat hij begint met een back-up.
Vaultwarden start zonder e-mail, maar verschillende functies hangen ervan af: de uitnodigingen, de controle van adressen, het versturen van wachtwoordhints, tweestapsverificatie per e-mail en het accountherstel.
Op een Simafri-VPS loopt het verzenden via een geauthenticeerde SMTP-relay, op poort 587: het adres van een e-mailaccount dat u al hebt, of Simafri Suite. Het wachtwoord komt in het bestand .env, net als het beheerderstoken:
SMTP_HOST: "smtp.example.com"
SMTP_FROM: "vault@example.com"
SMTP_PORT: "587"
SMTP_SECURITY: "starttls"
SMTP_USERNAME: "vault@example.com"
SMTP_PASSWORD: ${VAULTWARDEN_SMTP_PASSWORD}
DOMAIN en blijven 5 dagen geldig.No compatible authentication mechanism was found.config.json aan.Gaat er niets de deur uit, dan stelt de wiki voor de verbinding met de relay te testen vanaf de server. De opdracht geeft 0 terug wanneer de relay antwoordt:
timeout 5 bash -c 'cat < /dev/null > /dev/tcp/smtp.example.com/587'; echo $?
De README herinnert eraan dat het project niet aansprakelijk kan worden gesteld voor gegevensverlies en raadt regelmatige back-ups sterk aan. De wiki adviseert ze automatisch te maken, met minstens één kopie elders. Dit bevat de gegevensmap met SQLite:
| Onderdeel | Wat het bewaart | Te back-uppen |
|---|---|---|
db.sqlite3 | Vrijwel alle gegevens: accounts, organisaties, kluizen | Verplicht |
attachments/ | De bijlagen, buiten de database opgeslagen | Verplicht |
config.json | De configuratie van de beheerpagina, met gevoelige gegevens in leesbare vorm | Aanbevolen, versleuteld |
rsa_key* | De sleutels die de sessies ondertekenen; ze kwijtraken meldt de gebruikers af | Aanbevolen, versleuteld |
sends/ | De bestanden die met Send zijn verstuurd, van nature kortstondig | Optioneel |
icon_cache/ | De pictogrammen van websites, indien nodig opnieuw gedownload | Optioneel |
Sinds versie 1.32.1 kan Vaultwarden zijn SQLite-database zelf back-uppen, zonder de dienst te stoppen:
docker exec -it vaultwarden /vaultwarden backup
De opdracht schrijft een bestand db_JJJJMMDD_UUMMSS.sqlite3 naast de database, in vw-data. De image bevat noch sqlite3 noch cron: de wiki raadt aan de taak op de server in te plannen, minstens één keer per dag. Haal dan -it weg, want een geplande taak heeft geen terminal, en ruim die bestanden, die zich opstapelen, regelmatig op.
Wanneer de database niet in gebruik is, volstaat een eenvoudige kopie van al haar bestanden. Dit is de methode met gestopte dienst die de wiki als voorbeeld voor Docker geeft, en ze neemt ook de bijlagen mee:
docker compose down
tar -czf vaultwarden-$(date +%F).tar.gz vw-data
docker compose up -d
De wiki vindt een versleutelingslaag nuttig, vooral wanneer de back-up het beheerderstoken en de SMTP-gegevens bevat, en noemt rclone, restic en rustic om de kopieën naar elders te sturen. Voeg bij MariaDB of PostgreSQL een export van de database toe aan de map vw-data.
De wiki vraagt niet uitsluitend op schijfsnapshots te vertrouwen, die lastiger terug te zetten zijn. Bewaar daarom ook deze eigen kopieën van de applicatie: staan ze op de schijf van de server, dan vallen ze ook onder de nachtelijke back-ups.
vw-data door de geback-upte versie./vaultwarden backup, geef haar dan de naam db.sqlite3 en verwijder eerst elk bestaand bestand db.sqlite3-wal: een journaal dat niet past, kan de database beschadigen. Komt ze uit een directe kopie, zet dan db.sqlite3 en zijn db.sqlite3-wal samen terug.De wiki raadt aan deze oefening af en toe te herhalen, met behoud van een kopie van de bestaande gegevens: zo controleert u of een back-up werkt.
De wiki geeft twee opdrachten, vanuit de map van compose.yaml. De gegevensmap blijft ongemoeid:
docker compose pull
docker compose up -d
Deze updates tellen zwaarder dan elders. De mobiele apps en de browserextensies werken zichzelf bij, en de wiki waarschuwt dat een versieverschil met de server plotselinge storingen kan veroorzaken. De webkluis, meegeleverd in de image, blijft altijd afgestemd op zijn server.
Het project heeft geen releasekalender: volg zijn release-opmerkingen en start vlak voor elke update een back-up. Sommige bevatten beveiligingsfixes, zoals 1.37.5 van 1 november 2026, waarvan de opmerkingen aanraden zo snel mogelijk bij te werken. Die opmerkingen waarschuwen ook dat sinds 1.37.5 een ongeldige configuratiewaarde verhindert dat Vaultwarden start: lees uw omgevingsbestand na voordat u bijwerkt. De diagnosepagina van /admin geeft aan of er een nieuwere versie bestaat.
Self-hosting vraagt dat u naast de applicatie ook de server beheert. Op een managed VPS neemt ons team de server voor zijn rekening en houdt het uw instantie proactief in de gaten; Vaultwarden blijft uw software, met zijn instellingen en gegevens.
| Onderwerp | Ons team | U |
|---|---|---|
| De server | Systeem- en beveiligingsupdates, ingrepen op de server inbegrepen | Het moment dat bij uw activiteit past |
| De monitoring | Server 24 uur per dag en 7 dagen per week bewaakt, met ingrijpen zonder op uw oproep te wachten | Het lezen van de logboeken van uw instantie |
| Vaultwarden | Proactief toezicht: fouten, vertragingen en schijfruimte opgespoord, correctie aangeraden | De installatie, de updates en de instellingen, die u toepast, zelf of via uw AI-assistent |
| De accounts en de kluis | De server die ze draagt, bewaakt en geback-upt | De gebruikers, de uitnodigingen, de hoofdwachtwoorden en de tweestapsverificatie |
| De back-ups | Elke nacht, versleuteld en buiten de machine bewaard; terugzetten inbegrepen | De eigen kopieën van Vaultwarden, en het verzoek om terug te zetten, wanneer u dat nodig hebt |
| De migratie | Uw huidige server gemigreerd, gratis | Het moment van de overschakeling |
Wilt u liever dat ons team in de applicatie zelf ingrijpt, dan wordt die dienstverlening per uur of tegen een vast bedrag gefactureerd, met een offerte voordat het werk begint.
Met een Managed VPS van Simafri houdt ons team de server van uw Vaultwarden-instantie up-to-date, bewaakt hem dag en nacht en grijpt in zonder op uw oproep te wachten; het houdt ook uw instantie proactief in de gaten en raadt u de nuttige correcties aan, die u toepast, zelf of via uw AI-assistent. De back-ups worden elke nacht versleuteld en buiten de machine bewaard, het terugzetten is inbegrepen, en de migratie van uw huidige server is gratis.
Ja. Vaultwarden valt onder de AGPL-3.0-licentie: u mag het in een bedrijf draaien zonder een licentie te kopen. Wijzigt u het, dan moet uw versie de broncode aanbieden aan wie het via het netwerk gebruikt. Wat overblijft, zijn de kosten van de server waarop het draait.
Ja. De README presenteert Vaultwarden als compatibel met de officiële Bitwarden-clients, en preciseert dat het project niet verbonden is met Bitwarden of Bitwarden, Inc. Een probleem meldt u dus aan het Vaultwarden-project, welke client u ook gebruikt.
Maak een compose.yaml met de image vaultwarden/server, een gegevensmap en de poort gepubliceerd op 127.0.0.1, en voer docker compose up -d uit. Zet er daarna een reverse proxy met HTTPS voor: zonder HTTPS werkt de webkluis niet. Geef ook uw adres op in DOMAIN.
Zet na het aanmaken van uw account SIGNUPS_ALLOWED op false in compose.yaml en start opnieuw met docker compose up -d. Organisaties kunnen nog altijd uitnodigen: INVITATIONS_ALLOWED op false haalt die mogelijkheid weg. Heeft de beheerpagina haar configuratie al opgeslagen, doe deze instelling dan vanaf die pagina.
Voer de opdracht vaultwarden hash uit, die een argon2id-tekenreeks teruggeeft, en plaats die in ADMIN_TOKEN, met Docker Compose vanuit een bestand .env. Daarna meldt u zich aan op /admin met uw wachtwoord. Zonder ADMIN_TOKEN blijft de pagina uitgeschakeld.
Eerst het hoofdwachtwoord: de gegevens zijn versleuteld, en een kopie van de database is alleen te lezen door het te kraken. Daar komen tweestapsverificatie, HTTPS, gesloten registraties, een gehasht beheerderstoken en versleutelde back-ups bij.
Voer met SQLite elke dag de opdracht /vaultwarden backup uit in de container, en kopieer ook de map attachments, config.json en de bestanden rsa_key. Voeg bij MariaDB of PostgreSQL een export van de database toe. Test regelmatig het terugzetten.
Een managed VPS dekt de server: systeem, beveiliging, monitoring en back-ups. Ons team houdt ook uw instantie proactief in de gaten en raadt u de nuttige correcties aan, die u toepast. Een ingreep in de applicatie wordt per uur of tegen een vast bedrag gefactureerd.
Simafri
Laten we het over uw website hebben
Vertel ons in een paar woorden over uw project: wij nemen snel contact met u op.
Bedankt! Uw aanvraag is verzonden. We nemen spoedig contact met u op.
Liever per e-mail? Schrijf ons op support@simafri.com.