At hoste Vaultwarden på en Managed VPS betyder at opbevare dine og dit teams adgangskoder på en maskine, der er din egen, og som vores teams holder opdateret og overvåger dag og nat. Vaultwarden er fri software under AGPL-3.0-licensen. Denne guide følger den officielle dokumentation: installation med Docker Compose, HTTPS, lukning af tilmeldinger, administratortokenet, det der beskytter boksen, databasen, e-mails, backup og opdateringer.
Af Simon Vasconcelos Lee
Udgivet den 8. november 2026Læsetid: 15 minutter
DOMAIN.SIGNUPS_ALLOWED: som standard kan enhver, der kan nå instansen, tilmelde sig. En stærk hovedadgangskode og tofaktorgodkendelse beskytter derefter boksen.docker compose pull.Vaultwarden er en server til administration af adgangskoder, skrevet i Rust og udviklet til selvhosting. Dens wiki henvender den til privatpersoner, familier og organisationer af overskuelig størrelse. Webboksen følger med i dens Docker-images.
Den implementerer et API, der er kompatibelt med de officielle Bitwarden-klienter i browseren, på computeren og på telefonen. README'en understreger, at projektet ikke er tilknyttet Bitwarden eller Bitwarden, Inc., og beder om, at man henvender sig direkte til projektet med enhver fejl, uanset hvilken klient der bruges, frem for til de officielle supportkanaler.
/admin til indstillinger, konti og diagnosticering.Wikien opregner også, hvad der mangler i forhold til den officielle server, som login med adgangsnøgle, tilpassede roller og visse virksomhedspolitikker. Den understreger, at funktioner, der mest gavner store organisationer, ikke er en prioritet for projektet: læs listen, hvis du får brug for dem.
Vaultwarden udgives under GNU Affero General Public License, version 3. Teksten fastslår en ubegrænset tilladelse til at køre det uændrede program. Du kan altså bruge det image, projektet udgiver, til din virksomhed og dit team uden at skulle købe en licens.
Artikel 13 tilføjer en betingelse, der er særlig for AGPL: hvis du ændrer programmet, skal din version tilbyde alle, der bruger den på afstand, via netværket, en måde at få dens kildekode gratis.
README'en anbefaler container-images. På en server, hvor Docker er installeret, opretter du en mappe og lægger denne compose.yaml i den, hentet fra README'en og wikien:
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: som i README'en nås Vaultwarden kun via reverse proxyen, som er placeret på samme server.DOMAIN: basisadressen på din instans, i https. Wikien advarer om, at funktioner går i stykker uden den, blandt andet vedhæftede filer og invitationslinks.vw-data på en lokal disk: den rummer alle data. Wikien påpeger problemerne med SQLite på et CIFS- eller Samba-volumen, som ikke håndterer låsning.latest følger den senest udgivne version, og wikien anbefaler det til de fleste formål. Et tag som 1.37.5 fastlåser en version, og latest-alpine giver det samme på en Alpine-base.Dit domænenavn peger på serveren med A- og AAAA-records, og de besøgende kommer ind på port 80 og 443. Så længe reverse proxyen ikke er på plads, kan webboksen ikke bruges: gå direkte videre til næste afsnit.
Projektet opgiver hverken hukommelse eller processor; det præsenterer sig blot som en løsning til de tilfælde, hvor den officielle tjeneste, der kræver mange ressourcer, ikke passer. Størrelsen afhænger af antallet af konti og af mængden af vedhæftede filer. På en Managed VPS beskriver du blot din brug for os, og vi anbefaler den størrelse, der passer.
Webboksen bygger på Web Crypto-API'et, som browserne forbeholder sikre kontekster: README'en angiver, at den kun fungerer, når HTTPS er slået til, og wikien betegner HTTPS som «pretty much required», det vil sige næsten obligatorisk. Projektet anbefaler en reverse proxy foran Vaultwarden og fraråder den TLS, der er indbygget i dets framework Rocket.
Brug et anerkendt certifikat, som dem fra Let's Encrypt, som wikien anbefaler: med et selvsigneret certifikat afviser visse platforme forbindelsen. Certifikatet skal indeholde hele sin kæde, ellers kan Android-enheder ikke oprette forbindelse.
WebSocket-notifikationerne, som er slået til som standard, giver browseren, skrivebordsappen og udvidelsen besked om, at en post er ændret. De går gennem den primære HTTP-port, og proxyen skal videresende headerne Upgrade og Connection. Mobilapps bruger deres systems egne native notifikationer, som konfigureres separat.
Wikien råder til at se på Caddy først, hvis du ikke har nogen præference: den slår selv HTTPS til, henter certifikatet fra Let's Encrypt og understøtter WebSocket. Wikiens indstilling videregiver også den besøgendes rigtige adresse til Vaultwarden til dens logfiler:
vault.example.com {
reverse_proxy 127.0.0.1:8000 {
header_up X-Real-IP {remote_host}
}
}
Denne blok bygger på wikiens Nginx-eksempel, begrænset til port 80, så Certbot kan sætte HTTPS op:
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 installerer derefter certifikatet og sørger for at forny det:
sudo certbot --nginx
Åbn browserens udviklerværktøjer, fanen netværk, filteret WS, og log derefter på boksen igen: et 101-svar på /notifications/hub bekræfter forbindelsen. En anden test fra wikien: åbn boksen i to browsere, omdøb en post i den ene, og ændringen vises straks i den anden.
Som standard kan enhver, der kan nå din instans, oprette en konto på den. Det er praktisk til din første konto, og wikien anbefaler derefter at lukke, så en angriber ikke kan oprette en.
SIGNUPS_ALLOWED til "false" i compose.yaml.docker compose up -d: en miljøvariabel er knyttet til containeren, som skal genskabes for at tage den i betragtning.SIGNUPS_ALLOWED: "false"
INVITATIONS_ALLOWED sat til "false" fjerner denne mulighed, og wikien overlader valget til dig efter den tillid, du har til dine brugere.SIGNUPS_DOMAINS_WHITELIST begrænser tilmeldingen til visse e-maildomæner, og SIGNUPS_VERIFY sat til true kræver så, at adressen bekræftes. Når denne liste er angivet, ignoreres SIGNUPS_ALLOWED.Så snart du gemmer konfigurationen fra administrationssiden, opstår en fil config.json i datamappen, og den går forud for miljøvariablerne. De berørte indstillinger ændres så fra den side: det er ikke længere nok at ændre compose.yaml.
Siden /admin bruges til at konfigurere Vaultwarden, til at se og slette konti og organisationer, til at fjerne en brugers tofaktorgodkendelse, til at invitere og til at læse diagnosen. Uden ADMIN_TOKEN forbliver den deaktiveret: hvis du ikke har brug for den, så lad den være det.
Wikien anbefaler på det kraftigste at slå HTTPS til, før du bruger denne side. Tokenet fungerer som adgangskode, og det kan opbevares i hashet form, med argon2id, frem for i klartekst i konfigurationen. Vaultwarden leverer kommandoen: den spørger to gange efter adgangskoden og returnerer derefter en PHC-streng.
docker run --rm -it vaultwarden/server /vaultwarden hash
Læg denne streng i en .env-fil ved siden af compose.yaml, mellem apostroffer, og kald den derefter fra tjenesten:
VAULTWARDEN_ADMIN_TOKEN='$argon2id$...'
ADMIN_TOKEN: ${VAULTWARDEN_ADMIN_TOKEN}
Kontrollér resultatet, genstart, og log derefter ind på /admin med din adgangskode, og ikke med PHC-strengen:
docker compose config
docker compose up -d
ADMIN_SESSION_LIFETIME. En åben session forbliver gyldig efter et skift af token. For at afbryde dem alle skal du slette rsa_key.pem fra datamappen og genstarte, hvilket også logger brugerne af og annullerer igangværende invitationer./admin for visse adresser eller tilføjer HTTP-godkendelse.DISABLE_ADMIN_TOKEN fjerner enhver kontrol: den er beregnet til et separat godkendelseslag foran, og wikien forbeholder den dem, der ved, hvad de gør.Den første beskyttelse er hovedadgangskoden. Boksens data er krypteret med personlige nøgler eller organisationsnøgler: den, der får en kopi af databasen eller overtager en session, skal stadig knække denne adgangskode for at læse dem. Dens styrke tæller derfor mest af alt. En administrationssession gør det i sig selv muligt at slette en konto eller fjerne en tofaktorgodkendelse uden at give adgang til boksens data.
| Beskyttelse | Hvad den giver | Hvor den indstilles |
|---|---|---|
| Hovedadgangskode | Holder dataene krypteret, selv hvis en kopi af databasen er i omløb | Hver bruger vælger den, lang og kun brugt til denne boks |
| Tofaktorgodkendelse | Uden den minder wikien om, at det i teorien stadig er muligt at gætte en adgangskode med brute force | I hver konto; en organisationspolitik kan kræve den |
| HTTPS | Krypterer vejen mellem klienten og serveren | Reverse proxyen |
| Lukkede tilmeldinger | Forhindrer en fremmed i at oprette en konto | SIGNUPS_ALLOWED |
| Adgangskodehints | Hvis de vises på siden, ville de hjælpe med at gætte en adgangskode; version 1.37.5 holder dem skjult som standard | Lad SHOW_PASSWORD_HINT stå på false; PASSWORD_HINTS_ALLOWED fjerner dem helt |
| Grænse for forsøg | Bremser forsøg fra samme adresse, login og /admin | LOGIN_RATELIMIT_SECONDS og ADMIN_RATELIMIT_SECONDS |
| Fail2ban | Blokerer adresser efter for mange fejlslagne forsøg, hvilket wikien betragter som særlig vigtigt for en offentlig instans | På serveren, ud fra en LOG_FILE-logfil |
Forbered dig på, at hovedadgangskoden bliver glemt, før det sker: slå nødadgang til for din konto og, i en organisation, kontogendannelse, som kræver, at e-mail er konfigureret.
root som standard, og wikien finder det bedre at give det færrest mulige rettigheder. Tilføj user: 1000:1000 til tjenesten, med en mappe vw-data, der tilhører denne bruger.access_token. Hvis din proxy gemmer sine logfiler eller sender dem til en ekstern tjeneste, anbefaler wikien at skjule denne værdi der./var/run/docker.sock.Det samme image understøtter alle tre databaser. Wikien beskriver SQLite som den mest brugte og mest testede og anbefaler den til de fleste formål, medmindre du har et præcist behov for en anden.
| Database | Opsætning | Backup |
|---|---|---|
| SQLite | Ingen: én fil, vw-data/db.sqlite3 | Kommandoen /vaultwarden backup eller kopi af mappen, med tjenesten stoppet |
| MariaDB eller MySQL | Din egen databaseserver og DATABASE_URL i mysql:// | En eksport af databasen ud over mappen vw-data |
| PostgreSQL | Din egen databaseserver og DATABASE_URL i postgresql:// | En eksport af databasen ud over mappen vw-data |
DATABASE_URL: "postgresql://user_name:user_password@db_host:5432/vaultwarden"
Opret en tom database og dens bruger: ved opstart lægger Vaultwarden selv sit skema i den. En adgangskode med specialtegn skrives med procentkodning i denne adresse.
Træf dette valg, før du fylder boksen. Wikien beskriver en overgang fra SQLite til PostgreSQL med pgloader og understreger, at denne vej ikke understøttes af projektet, at den sker på egen risiko, og at den begynder med en backup.
Vaultwarden starter uden e-mail, men flere funktioner afhænger af den: invitationer, bekræftelse af adresser, udsendelse af adgangskodehints, tofaktorgodkendelse pr. e-mail og kontogendannelse.
På en Simafri VPS går afsendelsen gennem et autentificeret SMTP-relay på port 587: adressen på en mailkonto, du allerede har, eller Simafri Suite. Adgangskoden lægges i filen .env ligesom administratortokenet:
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 og forbliver gyldige i 5 dage.No compatible authentication mechanism was found.config.json.Hvis intet bliver sendt, foreslår wikien at teste forbindelsen til relayet fra serveren. Kommandoen returnerer 0, når relayet svarer:
timeout 5 bash -c 'cat < /dev/null > /dev/tcp/smtp.example.com/587'; echo $?
README'en minder om, at projektet ikke kan holdes ansvarligt for tab af data, og anbefaler på det kraftigste regelmæssig backup. Wikien råder til, at den er automatisk, med mindst én kopi et andet sted. Her er, hvad datamappen indeholder med SQLite:
| Element | Hvad det rummer | Skal der tages backup |
|---|---|---|
db.sqlite3 | Næsten alle data: konti, organisationer, bokse | Obligatorisk |
attachments/ | De vedhæftede filer, som gemmes uden for databasen | Obligatorisk |
config.json | Administrationssidens konfiguration, herunder følsomme data i klartekst | Anbefalet, krypteret |
rsa_key* | Nøglerne, der signerer sessionerne; hvis de mistes, bliver brugerne logget af | Anbefalet, krypteret |
sends/ | De filer, der er sendt med Send, midlertidige af natur | Valgfrit |
icon_cache/ | Websitenes ikoner, som hentes igen efter behov | Valgfrit |
Siden version 1.32.1 kan Vaultwarden selv tage backup af sin SQLite-database uden at stoppe tjenesten:
docker exec -it vaultwarden /vaultwarden backup
Kommandoen skriver en fil db_AAAAMMJJ_HHMMSS.sqlite3 ved siden af databasen, i vw-data. Imaget indeholder hverken sqlite3 eller cron: wikien råder til at planlægge opgaven på serveren, mindst én gang om dagen. Fjern i så fald -it, for en planlagt opgave har ikke noget terminalvindue, og ryd op i disse filer, som hober sig op.
Når databasen ikke er i brug, er en simpel kopi af alle dens filer nok. Det er den metode med stoppet tjeneste, som wikien giver som eksempel for Docker, og den tager også de vedhæftede filer med:
docker compose down
tar -czf vaultwarden-$(date +%F).tar.gz vw-data
docker compose up -d
Wikien finder et lag kryptering nyttigt, især når backuppen indeholder administratortokenet og SMTP-adgangene, og nævner rclone, restic og rustic til at sende kopierne et andet sted hen. Med MariaDB eller PostgreSQL tilføjer du en eksport af databasen til mappen vw-data.
Wikien beder om ikke kun at stole på diskens snapshots, som er sværere at gendanne. Behold derfor disse kopier, der er specifikke for applikationen: lagt på serverens disk indgår de også i dens natlige backup.
vw-data med dens gemte version./vaultwarden backup, skal du give den navnet db.sqlite3 og først slette enhver eksisterende fil db.sqlite3-wal: en journal, der ikke passer, kan ødelægge databasen. Hvis den stammer fra en direkte kopi, skal du gendanne db.sqlite3 og dens db.sqlite3-wal sammen.Wikien råder til at gentage denne øvelse en gang imellem og beholde en kopi af de eksisterende data: sådan kontrollerer du, at en backup virker.
Wikien giver to kommandoer, fra mappen med compose.yaml. Datamappen bliver, hvor den er:
docker compose pull
docker compose up -d
Disse opdateringer tæller mere end andre steder. Mobilapps og browserudvidelser opdaterer sig selv, og wikien advarer om, at en versionsforskel til serveren kan give pludselige nedbrud. Webboksen, der leveres i imaget, er altid afstemt efter sin server.
Projektet har ingen udgivelsesplan: følg dets versionsnoter, og tag en backup lige før hver opdatering. Nogle indeholder sikkerhedsrettelser, som 1.37.5 fra den 1. november 2026, hvis noter anbefaler at opdatere hurtigst muligt. Noterne advarer også om, at en ugyldig konfigurationsværdi siden 1.37.5 forhindrer Vaultwarden i at starte: gennemgå din miljøfil igen før opdateringen. Diagnosesiden under /admin viser, om der findes en nyere version.
Selvhosting kræver, at du holder serveren ud over selve applikationen. På en Managed VPS tager vores teams sig af serveren og følger din instans proaktivt; Vaultwarden forbliver din software, med dens indstillinger og data.
| Emne | Vores teams | Dig |
|---|---|---|
| Serveren | Opdateringer af system og sikkerhed, indgreb på serveren inkluderet | Det tidspunkt, der passer til din drift |
| Overvågningen | Serveren følges døgnet rundt, alle ugens dage, med indgreb uden at vente på dit opkald | Gennemlæsning af din instans' logfiler |
| Vaultwarden | Proaktiv opfølgning: fejl, langsomme svartider og diskplads opdages, og en rettelse anbefales | Installation, opdateringer og indstillinger, som du gennemfører, selv eller med din AI-assistent |
| Kontoerne og boksen | Den server, der bærer dem, overvåget og sikkerhedskopieret | Brugerne, invitationerne, hovedadgangskoderne og tofaktorgodkendelsen |
| Backup | Hver nat, krypteret og opbevaret uden for maskinen; gendannelse inkluderet | De kopier, der er specifikke for Vaultwarden, og anmodningen om gendannelse, når du får brug for den |
| Migreringen | Din nuværende server flyttes, uden beregning | Tidspunktet for omlægningen |
Hvis du foretrækker, at vores teams griber ind i selve applikationen, faktureres den ydelse pr. time eller som fast pris, med et overslag oplyst før indgrebet.
Med en Managed VPS fra Simafri holder vores teams serveren bag din Vaultwarden-instans opdateret, overvåger den dag og nat og griber ind uden at vente på dit opkald; de følger også din instans proaktivt og anbefaler dig de nyttige rettelser, som du gennemfører, selv eller med din AI-assistent. Backup krypteres hver nat og opbevares uden for maskinen, gendannelsen er inkluderet, og migreringen af din nuværende server sker uden beregning.
Ja. Vaultwarden er under AGPL-3.0-licensen: du kan køre den i din virksomhed uden at skulle købe en licens. Hvis du ændrer den, skal din version tilbyde sin kildekode til dem, der bruger den via netværket. Tilbage er udgiften til den server, der kører den.
Ja. README'en præsenterer Vaultwarden som kompatibel med de officielle Bitwarden-klienter, men understreger, at projektet ikke er tilknyttet Bitwarden eller Bitwarden, Inc. En fejl meldes derfor til Vaultwarden-projektet, uanset hvilken klient der bruges.
Opret en compose.yaml med imaget vaultwarden/server, en datamappe og porten publiceret på 127.0.0.1, og kør derefter docker compose up -d. Sæt så en reverse proxy med HTTPS foran: uden HTTPS fungerer webboksen ikke. Angiv også din adresse i DOMAIN.
Når din konto er oprettet, sætter du SIGNUPS_ALLOWED til false i compose.yaml og kører docker compose up -d igen. Organisationer kan stadig invitere: INVITATIONS_ALLOWED sat til false fjerner denne mulighed. Hvis administrationssiden allerede har gemt sin konfiguration, skal du foretage indstillingen derfra.
Kør kommandoen vaultwarden hash, som returnerer en argon2id-streng, og læg den derefter i ADMIN_TOKEN, fra en .env-fil med Docker Compose. Du logger derefter ind på /admin med din adgangskode. Uden ADMIN_TOKEN forbliver siden deaktiveret.
Først og fremmest hovedadgangskoden: dataene er krypteret, og en kopi af databasen kan kun læses ved at knække den. Dertil kommer tofaktorgodkendelse, HTTPS, lukkede tilmeldinger, et hashet administratortoken og krypteret backup.
Med SQLite kører du hver dag kommandoen /vaultwarden backup i containeren og kopierer også mappen attachments, config.json og filerne rsa_key. Med MariaDB eller PostgreSQL tilføjer du en eksport af databasen. Test gendannelsen regelmæssigt.
En Managed VPS dækker serveren: system, sikkerhed, overvågning og backup. Vores teams følger også din instans proaktivt og anbefaler dig de nyttige rettelser, som du gennemfører. Et indgreb i selve applikationen faktureres pr. time eller som fast pris.
Simafri
Lad os tale om din hjemmeside
Fortæl os om dit projekt med få ord: vi vender hurtigt tilbage til dig.
Tak! Din forespørgsel er sendt. Vi vender tilbage til dig hurtigst muligt.
Foretrækker du e-mail? Skriv til os på support@simafri.com.