Det här sätter du upp
Vaultwarden är en liten server för lösenordshantering som fungerar med Bitwardens appar: webbläsartilläggen, apparna för mobil och dator, och kommandoradsklienten. Apparna krypterar dina lösenord innan de lämnar din enhet, så servern lagrar bara krypterade data.
Här körs den som en container, under en egen användare som heter vaultwarden, med Caddy från Podman-guiden framför för HTTPS.
Varje steg nedan har körts på en VC-P Alloy (2 vCPU, 8 GB) hos Melonslab med Debian 13. Ett konto skapades, och Bitwardens officiella kommandoradsklient loggade in, sparade en inloggning och läste tillbaka den efter en synk. Misslyckade inloggningar loggades med besökarens riktiga IP-adress, registreringen stängdes, och säkerhetskopian och en omstart av servern kontrollerades. I vila använde Vaultwarden under 10 MB minne, så det minsta av våra Standard-paket räcker gott.
Innan du börjar
Du behöver:
- en server uppsatt som i Podman-guiden, med Caddy igång;
- ett namn för den, till exempel
vault.example.com, med en A-post och en AAAA-post som pekar på din server.
Exemplen använder vault.example.com som namn och 203.0.113.10 som din servers IPv4-adress. Byt genomgående ut dem mot dina egna.
1. Skapa användaren
Som root:
useradd -m -s /bin/bash vaultwarden
loginctl enable-linger vaultwarden
machinectl shell vaultwarden@
2. Definiera containern
mkdir -p ~/.config/containers/systemd
Skapa ~/.config/containers/systemd/vaultwarden.container:
[Unit]
Description=Vaultwarden, a password manager server
[Container]
ContainerName=vaultwarden
Image=docker.io/vaultwarden/server:latest
Volume=vaultwarden-data:/data
# Only Caddy, on this server, can reach Vaultwarden: the port is not open to the internet.
PublishPort=127.0.0.1:8083:80
Environment=DOMAIN=https://vault.example.com
Environment=SIGNUPS_ALLOWED=true
Environment=IP_HEADER=X-Forwarded-For IP_HEADER_TRUSTED_PROXIES=203.0.113.10
AutoUpdate=registry
[Service]
Restart=always
[Install]
WantedBy=default.target
DOMAIN är adressen du kommer att öppna den på. Registreringen är öppen för tillfället, så att du kan skapa ditt eget konto i steg 4, och stängs direkt efteråt.
Vaultwarden bromsar lösenordsgissning per IP-adress, så den behöver varje besökares riktiga adress. Caddy skickar den vidare i headern X-Forwarded-For, men som standard litar Vaultwarden bara på den headern från privata adresser, och Caddys anslutningar når containern från serverns egen IPv4-adress. IP_HEADER_TRUSTED_PROXIES anger den adressen.
Starta den:
systemctl --user daemon-reload
systemctl --user start vaultwarden
podman logs -f vaultwarden
När loggen visar Rocket has launched trycker du Ctrl+C.
3. Sätt Caddy framför
Gå tillbaka till root med exit och byt till Caddys användare med machinectl shell caddy@. Lägg till det här blocket sist i ~/Caddyfile:
vault.example.com {
reverse_proxy 127.0.0.1:8083
}
Och starta om Caddy, vilket kort avbryter alla webbplatser den serverar:
systemctl --user restart caddy
Caddy hämtar ett certifikat för vault.example.com och förnyar det själv. Webbvalvet fungerar bara över HTTPS.
4. Skapa ditt konto och stäng registreringen
Öppna https://vault.example.com och välj att skapa ett konto. Välj ett långt huvudlösenord som du kommer ihåg: dina data krypteras med det, så ingen, inte heller Vaultwarden, kan återställa det åt dig.
Gå sedan tillbaka till Vaultwardens användare (exit, sedan machinectl shell vaultwarden@) och stäng registreringen:
sed -i 's/^Environment=SIGNUPS_ALLOWED=true/Environment=SIGNUPS_ALLOWED=false/' ~/.config/containers/systemd/vaultwarden.container
systemctl --user daemon-reload
systemctl --user restart vaultwarden
Nu kan ingen annan skapa ett konto. För att lägga till någon senare öppnar du registreringen på samma sätt, låter personen registrera sig och stänger den igen.
5. Anslut dina appar
Välj en egen server (self-hosted) i en Bitwarden-app eller ett webbläsartillägg innan du loggar in, och ange https://vault.example.com.
I vårt test kunde Bitwardens kommandoradsklient 2026.9.0 inte logga in på Vaultwarden 1.37.3: den ber servern om en funktion som lades till efter den versionen. Version 2026.8.0 fungerade. Buggfixen är redan inlagd inför Vaultwardens nästa version, som de dagliga uppdateringarna i steg 6 installerar.
6. Håll den uppdaterad
Slå på Podmans dagliga uppdateringar för den här användaren:
systemctl --user enable --now podman-auto-update.timer
7. Säkerhetskopiera
mkdir -p ~/backup
systemctl --user stop vaultwarden
podman volume export vaultwarden-data --output ~/backup/vaultwarden-data.tar
systemctl --user start vaultwarden
Att stoppa Vaultwarden de sekunder det tar ger en konsistent kopia av databasen. Arkivet innehåller databasen, bilagor och nyckeln som servern signerar inloggningar med. Lösenorden i det är krypterade med varje användares huvudlösenord, men förvara ändå arkivet säkert, och kopiera ~/backup till en annan maskin: en säkerhetskopia på samma server överlever inte att servern går förlorad.
Felsökning
Varje misslyckad inloggning i loggen visar din servers egen adress. IP_HEADER_TRUSTED_PROXIES i steg 2 måste vara serverns IPv4-adress, den som Caddys anslutningar kommer från.
Registreringen misslyckas med "Registration not allowed or user already exists". Registreringen är stängd, vilket är vad steg 4 gör, eller så har e-postadressen redan ett konto.
Appen kan inte ansluta. Kontrollera att den pekar på https://vault.example.com, och läs loggen med podman logs vaultwarden som användaren vaultwarden.
Dina lösenord i Sverige
Med Vaultwarden på en server hos Melonslab lagras ditt krypterade valv i Sverige, på en server du själv styr över, där svensk lag och EU-rätt gäller.