Jeg satt opp Bitwarden på min egen server gratis, og passordene mine er nå helt under min kontroll
Bruddet på LastPass i 2022 var en vekker. Jeg innså at selv med en kryptert hvelv, kunne jeg fortsatt være i fare hvis hvelvet mitt ligger på servere utenfor min kontroll.
Det kan ha tatt noen år, men jeg bestemte meg endelig for å slutte å outsource passordbeskyttelse. Jeg vendte meg til Vaultwarden og satte opp passordbehandleren min på en Linux Mint-server. Denne satsingen, som tok mindre enn en time, har omdefinert hvordan jeg ser på digital sikkerhet, og interessant nok kostet det ikke en krone ekstra.
Vaultwarden vs. den offisielle Bitwarden-serveren
Hvorfor de fleste selvhostede oppsett velger det lette alternativet
Det finnes to mulige selvhostingsveier for Bitwarden, og selv om de begge er gratis og åpen kildekode, er de ideelle for forskjellige kontekster.
Det er mulig å hoste den offisielle Bitwarden-serveren hjemme, men det er ikke ideelt. Denne versjonen er av bedriftstandard og forventer ekte infrastruktur bak seg. Den bruker en .NET-stabel med flere samtidige tjenester. Men på beskjeden maskinvare vil den være treg og kompleks, langt utover behovene til en enkelt bruker.
Det andre alternativet er den fellesskapsbygde Rust-implementeringen kalt Vaultwarden. Det er en uoffisiell versjon, men den eksponerer fortsatt det samme API-et som de offisielle Bitwarden-appene kommuniserer med. Slik klarer den å tilby hele Bitwarden-opplevelsen på enhetene dine mens den kjører på din egen server.
Vaultwarden legger også til funksjoner som vanligvis er forbeholdt betalte Bitwarden-nivåer, slik som nødadgang, TOTP-basert tofaktorautentisering og krypterte filvedlegg.
Slik sammenligner de to seg, spesielt for en selvhostet individuell oppsett:
Funksjon | Bitwarden-server (egenhostet) | Vaultwarden |
|---|---|---|
Kostnad | Gratis | Gratis |
|
RAM-krav | 2 GB+ anbefalt | ~100MB i bruk |
Oppsettkompleksitet | Høy (flere tjenester) | Moderat (enkelt beholder) |
Premium-funksjoner | For det meste gratis (skytjenester krever abonnement) | Inkludert gratis |
Best for |
Team og organisasjoner | Individuell eller familiær bruk |
Hva du faktisk trenger før du starter
Du har sannsynligvis allerede mesteparten av dette
Før jeg begynte å selv-verter Bitwarden, overestimerte jeg hva jeg ville trenge. Men til slutt fungerte det fint på en standard Linux Mint-komputer. Med så lite som 512MB RAM bør du kunne hoste det uten problemer. Selv en Raspberry Pi bør fungere.
Heldigvis gjør lokale selvhostede programvareverktøy som Docker og Docker Compose det mulig å kjøre en containerisert instans av Vaultwarden. Dette er det ideelle alternativet for å redusere avhengighetskonflikter.
Da må du finne ut hvordan du foretrekker å få tilgang til hvelvet ditt. Å bruke et lokalt nettverk er enkelt og sikkert, men hvelvet vil bare være tilgjengelig fra hjemmenettverket ditt. VPN-tilgang via Tailscale gjør det mulig med fjernforbindelser uten å eksponere serveren for det offentlige internettet. Til slutt kan du velge eksponering for det offentlige internettet. Dette siste alternativet er det mest praktiske, men også det som innebærer størst sikkerhetsrisiko.
Tilgangsalternativet du velger bestemmer om et domenenavn er nødvendig som en del av oppsettet. Lokal og VPN-tilgang krever ikke et domenenavn. Imidlertid er et domene nødvendig hvis du eksponerer tjenesten for det offentlige internettet for å få en gyldig HTTPS.
Uavhengig av tilgangsmetode, trenger du HTTPS. Jeg foretrekker Caddy som en omvendt proxy fordi det automatisk håndterer TLS-sertifikater.
Setter opp Vaultwarden
Den eksakte oppsettet jeg brukte—og sikkerhetstiltakene som betyr noe
Jeg kjørte først kommandoen nedenfor for å generere min sikre Argon2id-hash for ADMIN_TOKEN. Deretter kopierte jeg den; det er nøkkelen til administrasjonspanelet:
docker run --rm -it vaultwarden/server:latest /vaultwarden hashDeretter, for enklere sikkerhetskopier, laget jeg en dedikert mappe i hjemmekatalogen min.
mkdir ~/vaultwarden && cd ~/vaultwarden
mkdir vw-dataJeg opprettet en .env-fil hvor jeg lagret noen sensitive opplysninger. Du kan kopiere den med kodebiten nedenfor, og erstatte plassholderen med din hash:
# Change this to your actual domain
DOMAIN=https://vault.yourdomain.com
# Use the hash you generated in Step 1
ADMIN_TOKEN='$argon2id$v=19$m=65540,t=3,p=4$YourHashHere'
# Set SIGNUPS_ALLOWED=true for the initial setup. After you create your admin account, change it to SIGNUPS_ALLOWED=false
SIGNUPS_ALLOWED=trueMed dette gjort, opprettet jeg min docker-compose.yml og inkluderte elementene nedenfor i den:
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
env_file: .env
volumes:
- ./vw-data:/data
ports:
- "127.0.0.1:8080:80" # Only accessible via the local machine/proxyEtter disse første stegene er Docker Compose-containeren kun tilgjengelig på en lokal maskin på port 8080. Så jeg ordnet dette ved å installere Caddy, som er en revers proxy som står foran Docker-containeren og lar deg få tilgang til hvelvet ditt fra hvilken som helst nettleser på et HTTPS-aktivert domene.
Jeg installerte Caddy ved å bruke disse kommandoene:
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update && sudo apt install caddyCaddy håndterer automatisk SSL-sertifikater ved bruk av Let's Encrypt, og fjerner behovet for manuell generering eller fornyelse av sertifikater.
Når installasjonen var fullført, åpnet jeg Caddys konfigurasjonsfil ved å bruke sudo nano /etc/caddy/Caddyfile, og deretter la jeg til disse linjene, og byttet ut med mitt faktiske domene.
vault.yourdomain.com {
reverse_proxy localhost:8080
}Med den ovennevnte konfigurasjonsfiloppføringen håndterer Caddy all innkommende trafikk, videresender den til Vaultwarden i tillegg til å be om et nytt SSL-sertifikat for domenet ditt og fornye det.
Last inn Caddy på nytt med denne kommandoen: sudo systemctl reload caddy, og nå er det på tide å få tilgang til Vaultwarden. Dette er de nøyaktige trinnene du må følge:
- Gå til domenet ditt og opprett en konto.
- Åpne .env-filen som ble opprettet først og endre
SIGNUPS_ALLOWED=truetilSIGNUPS_ALLOWED=false. - Start beholderen på nytt ved å bruke kommandoen:
docker compose up -d --force-recreate - Naviger til vault.yourdomain.com/admin for å få tilgang til Super Admin, og logg deretter inn med Argon2id-hashen du opprettet som passord.
Du er klar til å begynne å bruke Vaultwarden på heltid.
Hvordan det egentlig er å bruke det daglig
Opplevelsen er lik Bitwarden skyversjonen. Siden du fortsatt får bruke de samme appene og utvidelsene, merker du ingen forskjell. Den virkelige fordelen er imidlertid at alle hvelvoperasjoner skjer på maskinen din og under din kontroll. Enda viktigere, hvis Bitwarden noen gang får et avbrudd, blir du ikke påvirket.
Men du er ansvarlig for oppetid og oppdateringer. For å oppdatere, trekker du vanligvis en ny Docker-bilde og starter containeren på nytt. Kontrollert jeg har over mine data gjør den ekstra oppsettet og vedlikeholdet verdt det. Vaultwarden har blitt en selvhostet tjeneste som jeg ikke kan klare meg uten.







