Hosta Vaultwarden på en Managed VPS: dina lösenord på din egen server

Att hosta Vaultwarden på en Managed VPS innebär att du förvarar dina och ditt teams lösenord på en egen maskin, som våra team håller uppdaterad och bevakar dag och natt. Vaultwarden är fri programvara under licensen AGPL-3.0. Den här guiden följer den officiella dokumentationen: installation med Docker Compose, HTTPS, att stänga registreringarna, administratörstoken, det som skyddar valvet, databasen, e-post, säkerhetskopior och uppdateringar.

Simon Vasconcelos Lee Av Publicerad den 8 november 2026Lästid: 15 minuter

Alla guider

I korthet

  1. Licensen AGPL-3.0 tillåter fri körning av Vaultwarden, i företag som på andra håll; om du ändrar programmet erbjuder du koden till din version åt dem som använder den.
  2. Installera med Docker Compose: en avbild, en port som publiceras lokalt och en datamapp, bakom en omvänd proxy.
  3. Webbvalvet kräver HTTPS: servera Vaultwarden under ett eget domännamn och ange namnet i DOMAIN.
  4. Skapa ditt konto och stäng sedan registreringarna med SIGNUPS_ALLOWED: som standard kan vem som helst som når instansen registrera sig. Ett starkt huvudlösenord och tvåfaktorsautentisering skyddar därefter valvet.
  5. Säkerhetskopiera databasen och bilagorna varje dag, testa återställningen och uppdatera med docker compose pull.

Det Vaultwarden gör

Vaultwarden är en server för lösenordshantering, skriven i Rust och gjord för självhosting. Dess wiki riktar den till privatpersoner, familjer och organisationer av mänsklig storlek. Webbvalvet levereras i projektets Docker-avbilder.

Den tillhandahåller ett API som är kompatibelt med de officiella Bitwarden-klienterna, i webbläsaren, på datorn och i telefonen. README-filen anger att projektet inte är knutet till Bitwarden eller Bitwarden, Inc., och ber att få problem rapporterade direkt till projektet, oavsett vilken klient som används, i stället för till de officiella supportkanalerna.

Wikin listar också det som saknas jämfört med den officiella servern, som inloggning med passkey, anpassade roller och vissa företagspolicyer. Den anger att funktioner som främst är till nytta för stora organisationer inte är en prioritet för projektet: läs listan om du behöver dem.

Det som licensen AGPL-3.0 tillåter

Vaultwarden publiceras under GNU Affero General Public License, version 3. Texten slår fast en obegränsad rätt att köra det oförändrade programmet. Du kan alltså använda avbilden som projektet publicerar för ditt företag och ditt team, utan att köpa någon licens.

Artikel 13 lägger till ett villkor som är särskilt för AGPL: om du ändrar programmet måste din version ge alla som använder den på distans, över nätverket, möjlighet att kostnadsfritt få tag på dess källkod.

Installationen med Docker Compose

README-filen rekommenderar containeravbilderna. På en server där Docker är installerat skapar du en mapp och lägger denna compose.yaml i den, hämtad från README-filen och wikin:

compose.yaml
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
Terminal
docker compose up -d

Ditt domännamn pekar mot servern med A- och AAAA-poster, och besökarna kommer in på port 80 och 443. Så länge den omvända proxyn inte är på plats går webbvalvet inte att använda: gå direkt till nästa avsnitt.

Projektet anger varken minne eller processor; det beskriver sig bara som en lösning för de fall där den officiella, resurskrävande tjänsten inte passar. Storleken beror på antalet konton och volymen av bilagor. På en Managed VPS beskriver du hur du tänker använda den, så rekommenderar vi lämplig storlek.

HTTPS och WebSocket: den omvända proxyn

Webbvalvet bygger på API:et Web Crypto, som webbläsarna reserverar för säkra sammanhang: README-filen anger att det bara fungerar när HTTPS är aktiverat, och wikin bedömer HTTPS som ”pretty much required”, i det närmaste obligatoriskt. Projektet rekommenderar en omvänd proxy framför Vaultwarden och avråder från den inbyggda TLS i ramverket Rocket.

Ta ett erkänt certifikat, som de från Let’s Encrypt, vilka wikin rekommenderar: med ett självsignerat certifikat vägrar vissa plattformar anslutningen. Certifikatet måste ha hela sin kedja, annars ansluter inte Android-enheter.

WebSocket-aviseringarna, aktiva som standard, talar om för webbläsaren, skrivbordsappen och tillägget att en post har ändrats. De går över den huvudsakliga HTTP-porten, och proxyn måste vidarebefordra huvudena Upgrade och Connection. Mobilapparna använder systemets egna aviseringar, som konfigureras separat.

Med Caddy

Wikin råder dig att titta på Caddy först om du inte har någon preferens: den aktiverar HTTPS på egen hand, hämtar certifikatet från Let’s Encrypt och hanterar WebSocket. Wikins inställning skickar också besökarens verkliga adress vidare till Vaultwarden, för dess loggar:

Caddyfile
vault.example.com {
  reverse_proxy 127.0.0.1:8000 {
    header_up X-Real-IP {remote_host}
  }
}

Med Nginx och Certbot

Det här blocket bygger på wikins Nginx-exempel, begränsat till port 80 så att Certbot kan installera HTTPS:

Nginx-block
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 installerar sedan certifikatet och sköter förnyelsen:

Terminal
sudo certbot --nginx

Kontrollera WebSocket

Öppna webbläsarens utvecklarverktyg, fliken nätverk, filtret WS, och anslut sedan till valvet igen: ett svar 101 på /notifications/hub bekräftar anslutningen. Ett annat test från wikin: öppna valvet i två webbläsare, byt namn på en post i den ena, så syns ändringen genast i den andra.

Stänga registreringarna

Som standard kan vem som helst som når din instans skapa ett konto där. Det är praktiskt för ditt första konto, och wikin rekommenderar att stänga därefter, så att ingen angripare kan skapa ett.

  1. Öppna din HTTPS-adress och skapa ditt konto, och koppla sedan dina appar till den adressen.
  2. Sätt SIGNUPS_ALLOWED till "false" i compose.yaml.
  3. Starta om med docker compose up -d: en miljövariabel är knuten till containern, som måste skapas på nytt för att den ska gälla.
compose.yaml, under environment
SIGNUPS_ALLOWED: "false"

Så snart du sparar konfigurationen från administrationssidan skapas en fil config.json i datamappen, och den går före miljövariablerna. De berörda inställningarna ändras då från den sidan: det räcker inte längre att ändra compose.yaml.

Administrationssidan och dess token

Sidan /admin används för att konfigurera Vaultwarden, se och ta bort konton och organisationer, ta bort en användares tvåfaktorsautentisering, bjuda in och läsa diagnostiken. Utan ADMIN_TOKEN förblir den avstängd: har du ingen användning för den, låt den vara så.

Wikin rekommenderar starkt att aktivera HTTPS före den här sidan. Token fungerar som ett lösenord, och den kan förvaras i hashad form, med argon2id, i stället för i klartext i konfigurationen. Vaultwarden tillhandahåller kommandot: det frågar efter lösenordet två gånger och ger sedan tillbaka en PHC-sträng.

Terminal
docker run --rm -it vaultwarden/server /vaultwarden hash

Lägg den strängen i en fil .env, bredvid compose.yaml, inom apostrofer, och anropa den sedan från tjänsten:

.env
VAULTWARDEN_ADMIN_TOKEN='$argon2id$...'
compose.yaml, under environment
ADMIN_TOKEN: ${VAULTWARDEN_ADMIN_TOKEN}

Kontrollera resultatet, starta om och logga sedan in på /admin med ditt lösenord, inte med PHC-strängen:

Terminal
docker compose config
docker compose up -d

Det som skyddar valvet

Det första skyddet är huvudlösenordet. Valvets data krypteras med personliga nycklar eller organisationsnycklar: den som får en kopia av databasen eller tvingar sig in i en session måste fortfarande knäcka det lösenordet för att läsa dem. Dess styrka är därför det viktigaste. En administrationssession i sig gör det möjligt att ta bort ett konto eller en tvåfaktorsautentisering, utan att ge åtkomst till valvets data.

SkyddVad det gerVar det ställs in
HuvudlösenordHåller data krypterade, även om en kopia av databasen kommer i omloppVarje användare väljer det, långt och unikt för det här valvet
TvåfaktorsautentiseringUtan den påminner wikin om att det i teorin går att gissa ett lösenord med råstyrkaI varje konto; en organisationspolicy kan kräva den
HTTPSKrypterar vägen mellan klienten och servernDen omvända proxyn
Stängda registreringarHindrar en obehörig från att skapa ett kontoSIGNUPS_ALLOWED
LösenordshintarVisade på sidan skulle de hjälpa till att gissa ett lösenord; version 1.37.5 håller dem dolda som standardLåt SHOW_PASSWORD_HINT stå på false; PASSWORD_HINTS_ALLOWED tar bort dem helt
Begränsning av försökBromsar försök från samma adress, inloggning och /adminLOGIN_RATELIMIT_SECONDS och ADMIN_RATELIMIT_SECONDS
Fail2banBlockerar adresser efter för många misslyckanden, vilket wikin bedömer som särskilt viktigt för en publik instansPå servern, utifrån en logg LOG_FILE

Förbered dig på att huvudlösenordet glöms bort innan det händer: aktivera nödåtkomsten för ditt konto och, i en organisation, kontoåterställningen, som kräver att e-post är konfigurerad.

Tre inställningar till, hämtade ur härdningsguiden

SQLite, MariaDB eller PostgreSQL

Samma avbild hanterar alla tre databaserna. Wikin beskriver SQLite som den mest använda och mest testade, och rekommenderar den för de flesta användningar, om du inte har ett särskilt behov av en annan.

DatabasUppsättningSäkerhetskopiering
SQLiteIngen: en fil, vw-data/db.sqlite3Kommandot /vaultwarden backup, eller en kopia av mappen med tjänsten stoppad
MariaDB eller MySQLDin egen databasserver och DATABASE_URL i mysql://En export av databasen, utöver mappen vw-data
PostgreSQLDin egen databasserver och DATABASE_URL i postgresql://En export av databasen, utöver mappen vw-data
compose.yaml, under environment (PostgreSQL)
DATABASE_URL: "postgresql://user_name:user_password@db_host:5432/vaultwarden"

Skapa en tom databas och dess användare: vid start lägger Vaultwarden själv dit sitt schema. Ett lösenord med specialtecken skrivs med procentkodning i den adressen.

Gör det här valet innan du fyller valvet. Wikin beskriver ett byte från SQLite till PostgreSQL med pgloader, och anger att den vägen inte stöds av projektet, att den sker på egen risk och att den börjar med en säkerhetskopia.

E-post: SMTP-konfigurationen

Vaultwarden startar utan e-post, men flera funktioner beror på den: inbjudningar, verifiering av adresser, utskick av lösenordshintar, tvåfaktorsautentisering med e-post och kontoåterställning.

På en VPS från Simafri går utskicken via ett autentiserat SMTP-relä, på port 587: adressen till ett e-postkonto som du redan har, eller Simafri Suite. Lösenordet läggs i filen .env, som administratörstoken:

compose.yaml, under environment
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}

Om inget skickas föreslår wikin att testa anslutningen till reläet från servern. Kommandot ger 0 när reläet svarar:

Terminal
timeout 5 bash -c 'cat < /dev/null > /dev/tcp/smtp.example.com/587'; echo $?

Säkerhetskopiorna

README-filen påminner om att projektet inte kan hållas ansvarigt för dataförlust och rekommenderar starkt regelbundna säkerhetskopior. Wikin råder att göra dem automatiska, med minst en kopia på annat håll. Så här ser datamappen ut med SQLite:

DelVad den innehållerAtt säkerhetskopiera
db.sqlite3Nästan alla data: konton, organisationer, valvObligatoriskt
attachments/Bilagorna, lagrade utanför databasenObligatoriskt
config.jsonKonfigurationen från administrationssidan, med känsliga uppgifter i klartextRekommenderas, krypterad
rsa_key*Nycklarna som signerar sessionerna; om de försvinner loggas användarna utRekommenderas, krypterade
sends/Filerna som skickats med Send, tillfälliga till sin naturValfritt
icon_cache/Webbplatsikonerna, som laddas ned på nytt vid behovValfritt

Databasen, med tjänsten igång

Sedan version 1.32.1 kan Vaultwarden säkerhetskopiera sin SQLite-databas själv, utan att tjänsten stoppas:

Terminal
docker exec -it vaultwarden /vaultwarden backup

Kommandot skriver en fil db_AAAAMMJJ_HHMMSS.sqlite3 bredvid databasen, i vw-data. Avbilden innehåller varken sqlite3 eller cron: wikin råder att schemalägga uppgiften på servern, minst en gång om dagen. Ta då bort -it, eftersom en schemalagd uppgift saknar terminal, och gallra bland filerna, som hopar sig.

Hela mappen, med tjänsten stoppad

När databasen inte används räcker det med en enkel kopia av alla dess filer. Det är metoden med stoppad tjänst som wikin ger som exempel för Docker, och den tar också med bilagorna:

Terminal, i mappen med compose.yaml
docker compose down
tar -czf vaultwarden-$(date +%F).tar.gz vw-data
docker compose up -d

Wikin anser ett krypteringslager användbart, särskilt när säkerhetskopian innehåller administratörstoken och SMTP-uppgifterna, och nämner rclone, restic och rustic för att skicka kopiorna långt bort. Med MariaDB eller PostgreSQL lägger du till en export av databasen till mappen vw-data.

Wikin ber dig att inte förlita dig enbart på diskavbilder, som är krångligare att återställa. Behåll därför de här kopiorna som hör till applikationen: lagda på serverns disk ingår de också i dess nattliga säkerhetskopior.

Återställa

  1. Stoppa Vaultwarden.
  2. Ersätt varje fil eller mapp i vw-data med dess säkerhetskopierade version.
  3. Om databasen kommer från /vaultwarden backup, döp den till db.sqlite3 och ta först bort varje befintlig fil db.sqlite3-wal: en journal som inte stämmer kan förstöra databasen. Om den kommer från en direkt kopia återställer du db.sqlite3 och dess db.sqlite3-wal tillsammans.
  4. Starta om och kontrollera sedan att du kan öppna valvet.

Wikin råder att upprepa övningen då och då, med en kopia av de befintliga data i behåll: så kontrollerar du att en säkerhetskopia fungerar.

Uppdateringarna

Wikin anger två kommandon, från mappen med compose.yaml. Datamappen ligger kvar:

Terminal
docker compose pull
docker compose up -d

De här uppdateringarna väger tyngre än annars. Mobilapparna och webbläsartilläggen uppdaterar sig själva, och wikin varnar för att en versionsskillnad mot servern kan orsaka plötsliga fel. Webbvalvet, som levereras i avbilden, är alltid i takt med sin server.

Projektet har ingen utgivningskalender: följ dess versionsanteckningar och ta en säkerhetskopia strax före varje uppdatering. Vissa innehåller säkerhetsrättelser, som 1.37.5 från den 1 november 2026, vars anteckningar rekommenderar att uppdatera så snart som möjligt. Anteckningarna varnar också för att ett ogiltigt konfigurationsvärde sedan 1.37.5 hindrar Vaultwarden från att starta: läs igenom din miljöfil innan du uppdaterar. Diagnostiksidan i /admin visar om en nyare version finns.

Vem gör vad på en Managed VPS

Att självhosta innebär att sköta servern utöver applikationen. På en Managed VPS tar våra team hand om servern och följer din instans proaktivt; Vaultwarden förblir din programvara, med sina inställningar och sina data.

OmrådeVåra teamDu
ServernUppdateringar av system och säkerhet, ingrepp på servern inräknadeTidpunkten som passar din verksamhet
ÖvervakningenServern följs dygnet runt, alla dagar, med ingrepp utan att vänta på ditt samtalLäsningen av din instans loggar
VaultwardenProaktiv uppföljning: fel, långsamma svarstider och diskutrymme upptäcks, med rekommenderad rättelseInstallationen, uppdateringarna och inställningarna, som du genomför själv eller med din AI-assistent
Kontona och valvetServern som bär dem, övervakad och säkerhetskopieradAnvändarna, inbjudningarna, huvudlösenorden och tvåfaktorsautentiseringen
SäkerhetskopiornaVarje natt, krypterade och förvarade utanför maskinen; återställning ingårVaultwardens egna kopior och begäran om återställning, när du behöver den
MigreringenDin nuvarande server migreras kostnadsfrittTidpunkten för bytet

Om du föredrar att våra team ingriper i själva applikationen faktureras den tjänsten per timme eller som fast pris, med en offert som lämnas före ingreppet.

Vaultwarden, på en server som sköts åt dig

Med en Managed VPS från Simafri håller våra team servern för din Vaultwarden-instans uppdaterad, övervakar den dag och natt och griper in utan att vänta på ditt samtal; de följer också din instans proaktivt och rekommenderar de rättelser som är till nytta, som du genomför själv eller med din AI-assistent. Säkerhetskopiorna krypteras varje natt och förvaras utanför maskinen, återställningen ingår, och migreringen av din nuvarande server är kostnadsfri.

Upptäck Managed VPS

Vanliga frågor

Är Vaultwarden gratis för ett företag?

Ja. Vaultwarden är licensierat under AGPL-3.0: du kan köra det i ditt företag utan att köpa någon licens. Om du ändrar det måste din version erbjuda sin källkod åt dem som använder den över nätverket. Kvar blir kostnaden för servern som kör det.

Fungerar Vaultwarden med Bitwarden-apparna?

Ja. README-filen beskriver Vaultwarden som kompatibelt med de officiella Bitwarden-klienterna, samtidigt som den anger att projektet inte är knutet till Bitwarden eller Bitwarden, Inc. Ett problem rapporteras därför till projektet Vaultwarden, oavsett vilken klient som används.

Hur installerar man Vaultwarden med Docker Compose?

Skapa en compose.yaml med avbilden vaultwarden/server, en datamapp och porten publicerad på 127.0.0.1, och kör sedan docker compose up -d. Sätt därefter en omvänd proxy med HTTPS framför: utan HTTPS fungerar inte webbvalvet. Ange också din adress i DOMAIN.

Hur stänger man av registreringarna i Vaultwarden?

När ditt konto är skapat sätter du SIGNUPS_ALLOWED till false i compose.yaml och kör sedan docker compose up -d igen. Organisationer kan fortfarande bjuda in: INVITATIONS_ALLOWED satt till false tar bort den möjligheten. Om administrationssidan redan har sparat sin konfiguration gör du inställningen därifrån.

Hur konfigurerar man administratörstoken i Vaultwarden?

Kör kommandot vaultwarden hash, som ger en argon2id-sträng, och lägg den sedan i ADMIN_TOKEN, från en fil .env med Docker Compose. Du loggar sedan in på /admin med ditt lösenord. Utan ADMIN_TOKEN förblir sidan avstängd.

Vad skyddar ett Vaultwarden-valv?

Först huvudlösenordet: data är krypterade, och en kopia av databasen går bara att läsa om det knäcks. Till det kommer tvåfaktorsautentisering, HTTPS, stängda registreringar, en hashad administratörstoken och krypterade säkerhetskopior.

Hur säkerhetskopierar man Vaultwarden?

Med SQLite kör du kommandot /vaultwarden backup i containern varje dag och kopierar också mappen attachments, config.json och filerna rsa_key. Med MariaDB eller PostgreSQL lägger du till en export av databasen. Testa återställningen regelbundet.

Täcker en Managed VPS Vaultwarden?

En Managed VPS täcker servern: system, säkerhet, övervakning och säkerhetskopior. Våra team följer också din instans proaktivt och rekommenderar de rättelser som är till nytta, som du genomför själv. Ett ingrepp i själva applikationen faktureras per timme eller som fast pris.

Källor och officiell dokumentation

Kontakta oss