Server de parole Vaultwarden rulat cu Docker in spatele HTTPS pe un VPS
Self-hosting

Vaultwarden cu Docker Compose: manager de parole self-hosted

Orice manager de parole iti cere acelasi lucru: incredere. Ii dai cheile de la email, de la banca, de la panoul de hosting si de la zonele de administrare ale clientilor tai, apoi speri ca firma care iti tine seiful nu va fi sparta, nu isi va dubla preturile si nu va muta functia de care depinzi intr-un abonament mai scump. Exista si alta varianta. Poti rula serverul tu, pe un VPS pe care il controlezi, si sa folosesti in continuare aplicatiile si extensiile Bitwarden pe care deja le stii. Exact asta face posibil Vaultwarden. In ghidul de azi il instalam de la zero cu Docker Compose, il punem in spatele HTTPS, inchidem usile care trebuie sa ramana inchise si ne asiguram ca un disc defect nu te va costa niciodata parolele.

Vaultwarden e un proiect open source gazduit la github.com/dani-garcia/vaultwarden , scris in Rust si publicat sub licenta AGPL-3.0. Este o implementare independenta a API-ului de server Bitwarden, deci clientii oficiali Bitwarden vorbesc cu el ca si cum ar fi serverul original. Nu este afiliat cu Bitwarden Inc., asa ca daca ceva nu merge pe serverul tau, raporteaza problema proiectului Vaultwarden, nu suportului Bitwarden.

Ce este Vaultwarden si de ce merge pe un VPS mic

Un manager de parole are doua jumatati. Clientul (extensia de browser, aplicatia de telefon, aplicatia desktop sau web vault-ul din browser) este locul unde scrii parola master si unde se face toata criptarea si decriptarea. Serverul doar stocheaza date criptate si tine dispozitivele sincronizate. Modelul se numeste criptare end-to-end, uneori “zero-knowledge”: serverul nu vede niciodata parola ta master si nici parolele tale in clar. Tocmai de aceea are sens sa iti gazduiesti singur managerul de parole: serverul tau e un punct de sincronizare pentru date pe care nu le poate citi.

Serverul oficial Bitwarden e gandit pentru companii: in jur de o duzina de containere, o baza de date Microsoft SQL Server si un minim documentat de 2 GB de RAM. Vaultwarden reimplementeaza acelasi API intr-un singur program mic, care isi tine datele in SQLite, o baza de date care sta intr-un singur fisier pe disc. Rezultatul consuma in repaus cateva zeci de megabytes de RAM si ruleaza fara probleme pe cel mai mic VPS.

Primesti si functii care pe cloud-ul oficial sunt platite: organizatii pentru partajarea parolelor cu familia sau cu o echipa mica, atasamente, generatorul de coduri TOTP integrat, Bitwarden Send si acces de urgenta. Fara cheie de licenta.

Ce fac Docker si Docker Compose pentru noi

Un container este un pachet izolat care contine o aplicatie impreuna cu tot ce ii trebuie ca sa ruleze (biblioteci, runtime, configuratie implicita) si care foloseste kernelul Linux al gazdei, in loc sa porneasca o masina virtuala completa. Docker este unealta care descarca aceste pachete (numite imagini) si le ruleaza. Docker Compose ne lasa sa descriem mai multe containere, setarile si stocarea lor intr-un singur fisier YAML, apoi sa pornim sau sa actualizam tot ansamblul cu o singura comanda. La noi vor fi doua containere: Vaultwarden si Caddy, un server web care se ocupa de HTTPS.

Consum aproximativ de RAM in repausVaultwarden~50 MBCaddy~35 MBVaultwarden + Caddy~85 MBBitwarden oficial~2 GB minim05001000150020002500RAM in MB (aproximativ)ConfiguratieValori tipice in repaus pe un VPS mic; bara Bitwarden este cerinta minima documentata.
Memorie aproximativa in repaus: Vaultwarden plus Caddy au nevoie de mult sub 100 MB, in timp ce serverul oficial Bitwarden documenteaza 2 GB ca minim.

De ce ai nevoie

  • Un VPS cu Debian 13 sau Ubuntu 24.04, cu un utilizator care poate rula sudo. Un vCPU si 1 GB de RAM sunt mai mult decat suficiente pentru o familie sau o echipa mica; merge si cu 512 MB.
  • Un VPS KVM e drumul cel mai simplu. Docker ruleaza si intr-un container LXC, dar doar daca nesting-ul e activat pe gazda. Intr-un container LXC neprivilegiat fara nesting (si de multe ori fara keyctl), Docker da erori de permisiuni.
  • Un nume de domeniu la care poti adauga inregistrari DNS. Peste tot folosim vault.example.com; inlocuieste-l cu al tau.
  • Acces SSH la server si cam 30 pana la 45 de minute.
  • O adresa de email pentru notificarile Let’s Encrypt (optional, dar recomandat).
  • Un loc pentru backup off-site: un al doilea VPS, un NAS acasa sau orice spatiu de stocare care nu e acelasi server.

Cum se leaga piesele intre ele

Inainte sa scriem comenzi, ajuta sa stim ce face fiecare strat. Un port este o usa numerotata pe adresa de retea a serverului: SSH asculta pe portul 22, HTTP simplu pe 80, HTTPS pe 443. Un firewall decide care usi sunt deschise. Un reverse proxy este un server web care primeste toate cererile din internet, se ocupa de criptarea HTTPS si trimite cererea mai departe catre aplicatia potrivita din spatele lui. TLS este criptarea din spatele lacatului din browser, iar Let’s Encrypt este autoritatea gratuita care emite certificatul. Un volum (aici, pur si simplu un director pe gazda) este locul unde un container pastreaza datele care trebuie sa supravietuiasca restarturilor si actualizarilor.

Vaultwarden nu va fi accesibil deloc direct din internet. Doar Caddy publica porturi, iar el vorbeste cu Vaultwarden printr-o retea privata pe care Docker Compose o creeaza automat.

Cum ajung cererile la seiful tauDispozitiveExtensieTelefonDesktopWeb vault443Firewallufw22, 80, 443deschiseStack Docker Compose443Caddyreverse proxycertificat TLSLet's Encrypt:80Vaultwardenweb vault + APIport 80nepublicat/data./vw-datadb.sqlite3attachments/rsa_key.pemBackup nocturncron + sqlite3Copie off-sitealt serverDoar Caddy publica porturile 80 si 443.Vaultwarden e accesibil doar inreteaua Docker privata.
Drumul complet: dispozitivele ajung la Caddy prin HTTPS, Caddy trimite cererile catre Vaultwarden in reteaua Docker privata, iar directorul de date e salvat in fiecare noapte pe alta masina.

Planul: noua pasi de la un VPS gol la un seif functional

Iata toata procedura dintr-o privire. Fiecare card corespunde unui titlu “Pasul” de mai jos, in aceeasi ordine.

Instalarea Vaultwarden in 9 pasi1Pasul 1: DNSinregistrare A spre VPS2Pasul 2: DockerEngine + Compose v23Pasul 3: Firewallpermite 22, 80, 4434Pasul 4: Token adminhash Argon25Pasul 5: ComposeVaultwarden + Caddy6Pasul 6: Pornirecreeaza-ti contul7Pasul 7: Securizarefara inscrieri, /admin8Pasul 8: AplicatiiURL server self-hosted9Pasul 9: Backupzilnic + off-site
Cei noua pasi ai ghidului: Pasul 1 pana la Pasul 9 corespund titlurilor numerotate de mai jos, in aceeasi ordine.

Pasul 1: Indreapta un subdomeniu catre VPS

Caddy va cere un certificat de la Let’s Encrypt, iar Let’s Encrypt il emite doar daca numele chiar arata catre serverul tau. Asa ca DNS-ul vine primul.

In panoul DNS al domeniului, creeaza o inregistrare A cu numele vault (rezulta vault.example.com) si cu valoarea egala cu adresa IPv4 a VPS-ului. Adauga o inregistrare AAAA doar daca VPS-ul are IPv6 functional; o inregistrare AAAA gresita e unul dintre cele mai dese motive pentru care emiterea certificatului esueaza.

Verifica de pe VPS ca numele se rezolva:

getent hosts vault.example.com

Ar trebui sa vezi IP-ul VPS-ului urmat de nume. Daca nu primesti nimic, asteapta cateva minute sa se propage DNS-ul si incearca din nou. Nu trece mai departe pana nu merge.

Pasul 2: Instaleaza Docker Engine si pluginul Compose

Debian si Ubuntu au propriile pachete Docker, dar noi folosim repository-ul oficial Docker, ca sa avem un Engine actual si pluginul Compose v2 (comanda docker compose, cu spatiu). Comenzile de mai jos merg si pe Debian 13, si pe Ubuntu 24.04, pentru ca $ID si $VERSION_CODENAME sunt citite din /etc/os-release si devin debian/trixie sau ubuntu/noble.

sudo apt update
sudo apt install -y ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
. /etc/os-release
sudo curl -fsSL "https://download.docker.com/linux/$ID/gpg" -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/$ID $VERSION_CODENAME stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Verifica instalarea:

sudo docker run --rm hello-world
sudo docker compose version

Prima comanda afiseaza un mesaj care incepe cu “Hello from Docker!”, a doua ceva de genul Docker Compose version v2.x.x. In ghid punem sudo in fata comenzilor Docker. Ai putea adauga utilizatorul in grupul docker, dar tine minte ca apartenenta la acest grup inseamna practic acces de root.

Pasul 3: Configureaza firewall-ul

Vrem exact trei lucruri accesibile din exterior: SSH (22), ca sa poti administra serverul, HTTP (80), ca Let’s Encrypt sa poata valida si Caddy sa redirectioneze spre HTTPS, si HTTPS (443, TCP si UDP pentru HTTP/3). Ubuntu 24.04 vine cu ufw instalat, dar inactiv; Debian 13 nu il instaleaza implicit, asa ca linia apt install de mai jos e necesara acolo si nu strica nimic pe Ubuntu.

sudo apt install -y ufw
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 443/udp
sudo ufw enable
sudo ufw status verbose

Daca SSH-ul tau asculta pe alt port, permite acel port in loc de 22 inainte de ufw enable, altfel iti tai singur accesul.

Un detaliu important: porturile publicate de Docker ocolesc ufw, pentru ca Docker isi scrie propriile reguli de firewall. De aceea, la Pasul 5, containerul Vaultwarden nu publica niciun port. Doar Caddy publica 80 si 443, pe care oricum le vrem deschise.

Pasul 4: Genereaza un token de admin hashuit

Vaultwarden are un panou de administrare la /admin, unde vezi utilizatorii, inviti oameni, stergi conturi si citesti diagnosticul. Se activeaza prin variabila ADMIN_TOKEN. Ai putea pune acolo o parola simpla, dar Vaultwarden accepta (si recomanda) un hash Argon2, ca parola reala sa nu stea niciodata intr-un fisier de configurare.

Mai intai, genereaza o parola aleatoare puternica pentru panoul de admin si pastreaz-o undeva sigur (pe hartie sau in managerul de parole actual, pana e gata cel nou):

openssl rand -base64 32

Apoi lasa Vaultwarden sa o hashuiasca. Fixam aici o versiune exacta a imaginii si folosim acelasi tag in fisierul Compose. Versiunea 1.34.3 era cea curenta cand am testat ghidul; verifica pagina de release-uri si foloseste cel mai nou tag stabil.

sudo docker run --rm -it vaultwarden/server:1.34.3 /vaultwarden hash

Scrie parola de doua ori cand ti se cere. Rezultatul se termina cu o linie de forma:

ADMIN_TOKEN='$argon2id$v=19$m=65540,t=3,p=4$Wk1x...sir...lung'

Docker Compose trateaza fiecare $ din fisierul YAML ca inceputul unei variabile, deci fiecare $ din hash trebuie dublat. Lasa sed sa faca asta (lipeste doar partea dintre apostrofuri):

echo '$argon2id$v=19$m=65540,t=3,p=4$Wk1x...sir...lung' | sed 's/\$/$$/g'

Rezultatul incepe cu $$argon2id$$v=19.... Tine-l la indemana pentru pasul urmator.

Pasul 5: Scrie fisierul Docker Compose si Caddyfile

Tinem totul intr-un singur director, /opt/vaultwarden:

sudo mkdir -p /opt/vaultwarden
cd /opt/vaultwarden
sudo nano compose.yaml

Lipeste urmatorul continut, inlocuind domeniul si hash-ul escapat:

services:
  vaultwarden:
    image: vaultwarden/server:1.34.3
    container_name: vaultwarden
    restart: unless-stopped
    environment:
      DOMAIN: "https://vault.example.com"
      SIGNUPS_ALLOWED: "true"
      ADMIN_TOKEN: "$$argon2id$$v=19$$m=65540,t=3,p=4$$INLOCUIESTE_CU_HASH_UL_TAU_ESCAPAT"
      TZ: "Europe/Bucharest"
    volumes:
      - ./vw-data:/data

  caddy:
    image: caddy:2
    container_name: caddy
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
      - "443:443/udp"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - ./caddy-data:/data
      - ./caddy-config:/config
    depends_on:
      - vaultwarden

Ce face fiecare parte:

  • image fixeaza Vaultwarden la o versiune exacta, deci actualizarea se face doar cand decizi tu. Pentru Caddy folosim tag-ul caddy:2, care urmeaza linia 2.x si ramane compatibil cu configuratia; poti fixa si acolo o versiune exacta. :latest peste tot e comod, dar inseamna ca un restart oarecare poate aduce o versiune majora noua.
  • DOMAIN trebuie sa fie URL-ul public complet, cu https://. Vaultwarden il foloseste ca sa construiasca linkuri si pentru functii precum WebAuthn; o valoare gresita produce erori ciudate la autentificare.
  • SIGNUPS_ALLOWED: "true" e temporar, doar cat sa iti creezi contul. Il inchidem la Pasul 7.
  • ./vw-data:/data pastreaza baza de date, cheile si atasamentele in /opt/vaultwarden/vw-data pe gazda. Directorul asta este seiful tau: fa-i backup.
  • Nicio sectiune ports: la vaultwarden. Asculta pe portul 80 in reteaua privata, unde Caddy il gaseste dupa nume.

Acum creeaza Caddyfile-ul:

sudo nano Caddyfile
{
    email tu@example.com
}

vault.example.com {
    encode zstd gzip

    reverse_proxy vaultwarden:80 {
        header_up X-Real-IP {remote_host}
    }
}

Blocul global ii da lui Let’s Encrypt o adresa pentru notificari de expirare. Blocul site-ului ii spune lui Caddy sa obtina un certificat pentru vault.example.com, sa comprime raspunsurile si sa trimita totul catre containerul vaultwarden, transmitand IP-ul real al vizitatorului ca Vaultwarden sa il logheze corect. Sincronizarea live intre dispozitive foloseste WebSockets, pe care Caddy le trimite automat; din Vaultwarden 1.29 folosesc acelasi port 80, deci vechiul port separat 3012 din ghidurile mai vechi nu mai e necesar.

Pasul 6: Porneste stack-ul si creeaza-ti contul

cd /opt/vaultwarden
sudo docker compose up -d
sudo docker compose ps

Docker descarca ambele imagini si raporteaza Container vaultwarden Started si Container caddy Started. Dupa aproximativ un minut, docker compose ps ar trebui sa arate vaultwarden ca Up (healthy) si caddy ca Up. Urmareste cum Caddy obtine certificatul:

sudo docker compose logs -f caddy

Cauta o linie care contine certificate obtained successfully, apoi apasa Ctrl+C. Un test rapid de pe server:

curl -I https://vault.example.com

Prima linie ar trebui sa fie HTTP/2 200.

Deschide https://vault.example.com in browser, alege Create account si completeaza emailul, un nume si parola master. Parola master este singurul lucru pe care nimeni nu ti-l poate recupera: nici Vaultwarden, nici noi, nici tu cu acces root pe server, pentru ca seiful e criptat cu ea pe dispozitivul tau. Alege o fraza lunga si noteaz-o undeva sigur, fizic. Dupa autentificare, mergi la Settings, Security, Two-step login si activeaza o aplicatie de autentificare.

Pasul 7: Inchide inregistrarile si securizeaza panoul de admin

Cat timp inregistrarile sunt deschise, oricine iti gaseste URL-ul isi poate face cont pe serverul tau. Editeaza compose.yaml si schimba o singura linie:

      SIGNUPS_ALLOWED: "false"

Aplica modificarea:

sudo docker compose up -d

Compose observa schimbarea si recreeaza doar containerul vaultwarden. Testeaza intr-o fereastra privata: incercarea de a crea un cont nou esueaza acum cu o eroare care spune ca inregistrarea nu este permisa.

Vrei sa adaugi mai tarziu familia sau colegii? Deschide https://vault.example.com/admin, autentifica-te cu parola de admin in clar de la Pasul 4 (nu cu hash-ul) si foloseste Invite User. Fara email (SMTP) configurat, persoana invitata intra pur si simplu in web vault si isi creeaza contul exact cu adresa respectiva. Si proprietarii de organizatii pot invita membri; seteaza INVITATIONS_ALLOWED: "false" daca vrei ca doar panoul de admin sa poata face asta.

Doua lucruri de stiut despre panoul de admin:

  • Setarile salvate din panou castiga. Cand apesi Save in /admin, Vaultwarden scrie un fisier config.json in vw-data, iar valorile lui au prioritate fata de variabilele din compose.yaml. Daca o schimbare de variabila “nu face nimic”, verifica acel fisier.
  • Limiteaza cine poate macar vedea /admin. Daca administrezi serverul de pe un IP fix, lasa-l pe Caddy sa ii refuze pe toti ceilalti. Actualizeaza blocul site-ului din Caddyfile:
vault.example.com {
    encode zstd gzip

    @blockedadmin {
        path /admin*
        not remote_ip 203.0.113.10
    }
    respond @blockedadmin 403

    reverse_proxy vaultwarden:80 {
        header_up X-Real-IP {remote_host}
    }
}

Inlocuieste 203.0.113.10 cu IP-ul tau public, apoi aplica cu sudo docker compose up -d --force-recreate caddy. Daca nu ai IP fix, o varianta mai simpla e sa stergi complet linia ADMIN_TOKEN dupa ce ai terminat configurarea: fara ea, panoul de admin e dezactivat. O adaugi inapoi cand ai nevoie.

Pasul 8: Conecteaza aplicatiile si extensiile Bitwarden

Instaleaza extensia oficiala Bitwarden pentru browser, aplicatia de telefon sau aplicatia desktop din magazinele obisnuite. Pe ecranul de autentificare, cauta selectorul de server sau regiune (de obicei arata bitwarden.com implicit) si alege Self-hosted. La Server URL scrie https://vault.example.com, fara nicio cale la final, si salveaza. Apoi autentifica-te cu emailul si parola master.

Asta e tot. Extensia completeaza automat formularele, aplicatia de telefon se ofera sa salveze parole, iar modificarile facute pe un dispozitiv apar pe celelalte in cateva secunde, datorita conexiunii WebSocket. Ca sa aduci parolele dintr-un alt manager, exporta-le de acolo si importa fisierul in web vault, la Tools, Import data. Sterge apoi fisierul de export necriptat.

Pasul 9: Fa backup la seif (si testeaza restaurarea)

Un manager de parole self-hosted fara backup este un dezastru care isi asteapta data. Totul sta in vw-data: db.sqlite3 (baza de date), rsa_key.pem (cheia care semneaza tokenurile de autentificare), attachments/, sends/ si, daca ai folosit panoul de admin, config.json. Directorul icon_cache poate fi ignorat, se reface singur.

Copierea unui fisier SQLite activ cu cp poate produce o copie corupta, asa ca folosim comanda de backup online a SQLite. Instaleaza uneltele (cron e preinstalat pe Ubuntu; pe imaginile Debian minimale poate lipsi):

sudo apt install -y sqlite3 cron

Creeaza scriptul de backup:

sudo tee /usr/local/bin/vaultwarden-backup.sh > /dev/null <<'EOF'
#!/usr/bin/env bash
set -euo pipefail

SRC="/opt/vaultwarden/vw-data"
DEST="/var/backups/vaultwarden"
STAMP="$(date +%F-%H%M)"
WORK="$DEST/$STAMP"

mkdir -p "$WORK"
chmod 700 "$DEST"

# Copie consistenta a bazei de date, sigura cat timp Vaultwarden ruleaza
sqlite3 "$SRC/db.sqlite3" ".backup '$WORK/db.sqlite3'"

# Chei, atasamente, send-uri si setarile din panoul de admin
cp -a "$SRC"/rsa_key* "$WORK/"
for item in attachments sends config.json; do
  if [ -e "$SRC/$item" ]; then
    cp -a "$SRC/$item" "$WORK/"
  fi
done

tar -czf "$DEST/vaultwarden-$STAMP.tar.gz" -C "$DEST" "$STAMP"
rm -rf "$WORK"

# Pastreaza local arhivele din ultimele 14 zile
find "$DEST" -maxdepth 1 -name 'vaultwarden-*.tar.gz' -mtime +14 -delete
EOF
sudo chmod 700 /usr/local/bin/vaultwarden-backup.sh

Ruleaza-l o data manual si uita-te la rezultat:

sudo /usr/local/bin/vaultwarden-backup.sh
sudo ls -lh /var/backups/vaultwarden

Ar trebui sa vezi un fisier de genul vaultwarden-2026-11-10-0330.tar.gz. Acum programeaza-l in fiecare noapte la 03:30:

echo '30 3 * * * root /usr/local/bin/vaultwarden-backup.sh' | sudo tee /etc/cron.d/vaultwarden-backup

Un backup pe acelasi disc nu supravietuieste pierderii serverului, deci copiaza arhivele in alta parte. Cel mai sigur tipar e ca o a doua masina sa le traga prin SSH cu rsync, astfel incat un VPS compromis sa nu isi poata sterge propriile copii off-site. Trateaza arhivele ca date sensibile: elementele din seif sunt criptate, dar baza de date contine totusi emailurile conturilor si metadate.

In final, testeaza o restaurare macar o data, ideal pe un al doilea VPS cu aceleasi fisiere Compose:

cd /opt/vaultwarden
sudo docker compose down
sudo mv vw-data vw-data.old
sudo mkdir vw-data
sudo tar -xzf /var/backups/vaultwarden/vaultwarden-2026-11-10-0330.tar.gz -C /tmp
sudo cp -a /tmp/2026-11-10-0330/. vw-data/
sudo sqlite3 vw-data/db.sqlite3 "PRAGMA integrity_check;"
sudo docker compose up -d

Verificarea de integritate ar trebui sa afiseze ok. Autentifica-te si confirma ca elementele tale sunt acolo. Ca plasa de siguranta in plus, exporta din cateva in cateva luni o copie criptata a seifului din web vault (Tools, Export vault, JSON criptat) si pastreaz-o offline.

Actualizarea Vaultwarden mai tarziu

Bitwarden lanseaza des versiuni noi ale clientilor, iar uneori un client nou are nevoie de un server mai nou. Actualizarea e rapida: faci backup, schimbi tag-ul imaginii in compose.yaml cu noua versiune, apoi descarci si recreezi.

cd /opt/vaultwarden
sudo /usr/local/bin/vaultwarden-backup.sh
sudo nano compose.yaml
sudo docker compose pull
sudo docker compose up -d
sudo docker image prune -f

Citeste notele de release inainte sa sari mai multe versiuni deodata. Pentru sistemul de operare, Ubuntu activeaza implicit unattended-upgrades; pe Debian 13 il instalezi cu sudo apt install unattended-upgrades. Dupa actualizari de kernel, Ubuntu creeaza fisierul /var/run/reboot-required; Debian nu creeaza acest fisier in mod sigur, asa ca acolo instaleaza needrestart ca sa vezi cand e nevoie de restartul unor servicii sau de un reboot.

Probleme frecvente si greseli comune

  • Logurile Caddy arata erori de certificat. DNS-ul inca nu arata spre VPS, portul 80 e blocat sau o inregistrare AAAA gresita trimite Let’s Encrypt in alta parte. Rezolva cauza si ruleaza sudo docker compose restart caddy. Nu restarta in bucla; Let’s Encrypt are limite de rata.
  • Compose afiseaza avertismente de tipul “The “argon2id” variable is not set”. Ai uitat sa dublezi semnele $ din ADMIN_TOKEN. Repeta comanda sed de la Pasul 4.
  • Panoul de admin iti respinge tokenul. Trebuie sa scrii parola in clar, nu hash-ul. Daca ai schimbat tokenul dupa ce ai salvat setari din panou, verifica vw-data/config.json, care are prioritate fata de variabile.
  • Schimbarea SIGNUPS_ALLOWED nu are efect. Aceeasi cauza: o valoare salvata din /admin sta in config.json si castiga.
  • Aplicatiile nu se pot autentifica, dar web vault-ul merge. Verifica sa fie DOMAIN exact https://vault.example.com si ca Server URL din aplicatie sa nu aiba nicio cale la final. Asigura-te si ca Vaultwarden nu e prea vechi pentru un client abia actualizat.
  • Portul 80 sau 443 e deja folosit. Pe gazda ruleaza alt server web (nginx, Apache). Opreste-l sau trimite Vaultwarden prin acel server in loc de Caddy.
  • Docker da erori de permisiuni in LXC. Nesting-ul nu e activat pentru container. Cere suportului sa il activeze sau foloseste un VPS KVM.

Note de securitate

  • Parola master e lacatul adevarat. Serverul stocheaza doar date criptate, deci o parola master puternica plus autentificarea in doi pasi te protejeaza chiar si daca serverul ar fi compromis.
  • Vaultwarden nu e expus niciodata direct. Doar Caddy publica porturi, iar regulile Docker ocolesc ufw, asa ca pastreaza lucrurile asa: nu adauga o sectiune ports: serviciului vaultwarden.
  • Accesul de admin e hashuit si limitat. Token Argon2, restrictie optionala pe IP in Caddy sau deloc panou de admin cand nu ai nevoie de el.
  • Securizeaza SSH-ul. Foloseste autentificare cu chei, dezactiveaza autentificarea cu parola si ia in calcul fail2ban.
  • Actualizeaza regulat. Tine la zi si sistemul de operare, si imaginea Vaultwarden.
  • Backup-urile sunt date sensibile. Pastreaza-le off-site, limiteaza cine le poate citi si testeaza restaurarea.

Deci, merita sa iti gazduiesti singur parolele?

Daca vrei comoditatea aplicatiilor Bitwarden fara sa iti incredintezi seiful unui cloud strain, Vaultwarden e cea mai practica cale. Ruleaza in mult sub 100 MB de RAM, instalarea de mai sus dureaza mai putin de o ora, iar rezultatul e un server de parole privat, cu HTTPS, inregistrari inchise, panou de admin protejat si backup in fiecare noapte. Responsabilitatea trece la tine, si tocmai de aceea backup-ul si actualizarile fac parte din procedura, nu sunt un gand de ultim moment.

Poti rula exact acest stack pe un VPS din data center-ul nostru din Romania, sau poti lasa echipa noastra de administrare servere sa iti instaleze, sa iti securizeze, sa iti faca backup si sa iti tina la zi instanta Vaultwarden.

Intrebari frecvente

Este Vaultwarden un produs oficial Bitwarden?

Nu. Este un server open source independent care implementeaza API-ul Bitwarden. Aplicatiile oficiale Bitwarden functioneaza cu el, dar problemele de pe serverul tau se raporteaza proiectului Vaultwarden.

Trebuie sa platesc Bitwarden Premium pentru atasamente sau TOTP?

Nu. Vaultwarden deblocheaza aceste functii pentru toate conturile de pe serverul tau. Aplicatiile client sunt gratuite.

Ce se intampla daca VPS-ul pica?

Dispozitivele deja autentificate pastreaza o copie criptata a seifului in cache, deci iti poti citi in continuare parolele. Sincronizarea si salvarea modificarilor revin cand serverul porneste din nou.

Cati utilizatori duce un VPS mic?

O familie sau o echipa de cateva zeci de oameni merge confortabil pe un VPS cu 1 GB de RAM. Consumul de memorie al Vaultwarden creste incet, iar SQLite face fata fara probleme la aceasta scara.

Pot sa ma mut de pe Bitwarden cloud pe serverul meu?

Da. Exporta seiful din web vault-ul cloud, importa fisierul in web vault-ul Vaultwarden, apoi schimba Server URL in aplicatii catre domeniul tau.

Avem Incredere & Suntem Membri

Suntem membri ai principalelor organizatii de infrastructura internet.

RIPE NCC MANRS PeeringDB RoTLD DSIX SBIX 4IXP LOCIX Euro-IX RIPE NCC MANRS PeeringDB RoTLD DSIX SBIX 4IXP LOCIX Euro-IX