Găzduirea Vaultwarden pe un Managed VPS: parolele pe propriul server

Găzduirea Vaultwarden pe un Managed VPS înseamnă să păstrați parolele dumneavoastră și pe cele ale echipei pe o mașină a dumneavoastră, pe care echipele noastre o țin la zi și o supraveghează zi și noapte. Vaultwarden este un software liber sub licență AGPL-3.0. Acest ghid urmează documentația sa oficială: instalarea cu Docker Compose, HTTPS, închiderea înregistrărilor, tokenul de administrare, ceea ce protejează seiful, baza de date, e-mailurile, backupurile și actualizările.

Simon Vasconcelos Lee Autor: Publicat la 8 noiembrie 2026Timp de citire: 15 minute

Toate ghidurile

Esențialul

  1. Licența AGPL-3.0 permite rularea liberă a Vaultwarden, în firmă ca oriunde altundeva; dacă îl modificați, oferiți codul versiunii dumneavoastră celor care o folosesc.
  2. Instalați-l cu Docker Compose: o imagine, un port publicat local și un director de date, în spatele unui proxy invers.
  3. HTTPS este indispensabil seifului web: serviți Vaultwarden pe propriul nume de domeniu și treceți acest nume în DOMAIN.
  4. Creați-vă contul, apoi închideți înregistrările cu SIGNUPS_ALLOWED: implicit, oricine ajunge la instanță se poate înregistra. O parolă principală solidă și autentificarea în doi pași protejează apoi seiful.
  5. Salvați zilnic baza și atașamentele, testați restaurarea și actualizați cu docker compose pull.

Ce face Vaultwarden

Vaultwarden este un server de gestionare a parolelor scris în Rust, conceput pentru găzduirea pe propriul server. Wiki-ul său îl destinează persoanelor, familiilor și organizațiilor de dimensiuni mici. Seiful web este livrat în imaginile sale Docker.

El implementează un API compatibil cu clienții oficiali Bitwarden, în browser, pe computer și pe telefon. README-ul precizează că proiectul nu este asociat cu Bitwarden și nici cu Bitwarden, Inc., și cere ca orice problemă să-i fie semnalată direct, oricare ar fi clientul folosit, nu canalelor de asistență oficiale.

Wiki-ul enumeră și ce lipsește față de serverul oficial, precum autentificarea cu cheie de acces (passkey), rolurile personalizate și unele politici de întreprindere. El precizează că funcțiile utile mai ales marilor organizații nu sunt o prioritate a proiectului: citiți această listă dacă aveți nevoie de ele.

Ce permite licența AGPL-3.0

Vaultwarden este publicat sub GNU Affero General Public License, versiunea 3. Textul afirmă o permisiune nelimitată de a rula programul nemodificat. Puteți deci folosi imaginea publicată de proiect pentru firma și echipa dumneavoastră, fără nicio licență de cumpărat.

Articolul 13 adaugă o condiție specifică AGPL: dacă modificați programul, versiunea dumneavoastră trebuie să ofere tuturor celor care o folosesc de la distanță, prin rețea, posibilitatea de a obține gratuit codul sursă.

Instalarea cu Docker Compose

README-ul recomandă imaginile de container. Pe un server unde Docker este instalat, creați un director și puneți în el acest compose.yaml, preluat din README și din wiki:

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

Numele dumneavoastră de domeniu trebuie să indice spre server prin înregistrări A și AAAA, iar vizitatorii ajung pe porturile 80 și 443. Cât timp proxy-ul invers nu este instalat, seiful web rămâne inutilizabil: treceți direct la secțiunea următoare.

Proiectul nu indică nici memoria, nici procesorul necesare; el se prezintă doar ca o soluție pentru cazurile în care serviciul oficial, mare consumator de resurse, nu se potrivește. Dimensiunea depinde de numărul de conturi și de volumul atașamentelor. Pe un Managed VPS, descrieți-ne utilizarea dumneavoastră și vă recomandăm dimensiunea potrivită.

HTTPS și WebSocket: proxy-ul invers

Seiful web se sprijină pe API-ul Web Crypto, pe care browserele îl rezervă contextelor securizate: README-ul indică faptul că funcționează doar după activarea HTTPS, iar wiki-ul consideră HTTPS „pretty much required”, adică aproape obligatoriu. Proiectul recomandă un proxy invers în fața Vaultwarden și descurajează TLS-ul integrat în framework-ul său Rocket.

Alegeți un certificat recunoscut, precum cele de la Let’s Encrypt, pe care wiki-ul le recomandă: cu un certificat autosemnat, unele platforme refuză conexiunea. Certificatul trebuie să includă lanțul complet, altfel dispozitivele Android nu se conectează.

Notificările WebSocket, active implicit, anunță browserul, aplicația desktop și extensia că o intrare s-a schimbat. Ele trec prin portul HTTP principal, iar proxy-ul trebuie să transmită antetele Upgrade și Connection. Aplicațiile mobile folosesc notificările native ale sistemului lor, care se configurează separat.

Cu Caddy

Wiki-ul sfătuiește să priviți mai întâi spre Caddy, dacă nu aveți o preferință: el activează singur HTTPS, obține certificatul Let’s Encrypt și suportă WebSocket. Setarea din wiki transmite și adresa reală a vizitatorului către Vaultwarden, pentru jurnalele sale:

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

Cu Nginx și Certbot

Acest bloc preia exemplul Nginx din wiki, redus la portul 80, pentru a lăsa Certbot să instaleze HTTPS:

Bloc Nginx
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 instalează apoi certificatul și se ocupă de reînnoirea lui:

Terminal
sudo certbot --nginx

Verificarea WebSocket

Deschideți instrumentele de dezvoltare ale browserului, fila de rețea, filtrul WS, apoi reconectați-vă la seif: un răspuns 101 pe /notifications/hub confirmă conexiunea. Alt test din wiki: deschideți seiful în două browsere, redenumiți o intrare în unul și schimbarea apare imediat în celălalt.

Închiderea înregistrărilor

Implicit, oricine ajunge la instanța dumneavoastră își poate crea un cont. Este util pentru primul cont, iar wiki-ul recomandă să închideți apoi înregistrările, pentru a-i împiedica pe atacatori să creeze unul.

  1. Deschideți adresa dumneavoastră HTTPS și creați-vă contul, apoi conectați-vă aplicațiile la această adresă.
  2. Treceți SIGNUPS_ALLOWED pe "false" în compose.yaml.
  3. Relansați cu docker compose up -d: o variabilă de mediu este legată de container, care trebuie recreat pentru ca ea să fie luată în considerare.
compose.yaml, în environment
SIGNUPS_ALLOWED: "false"

De îndată ce salvați configurația din pagina de administrare, în directorul de date apare un fișier config.json, care are prioritate față de variabilele de mediu. Setările respective se schimbă atunci din această pagină: modificarea lui compose.yaml nu mai este de ajuns.

Pagina de administrare și tokenul ei

Pagina /admin servește la configurarea Vaultwarden, la vizualizarea și ștergerea conturilor și a organizațiilor, la eliminarea autentificării în doi pași a unui utilizator, la invitații și la citirea diagnosticului. Fără ADMIN_TOKEN, ea rămâne dezactivată: dacă nu aveți nevoie de ea, lăsați-o așa.

Wiki-ul recomandă insistent activarea HTTPS înaintea acestei pagini. Tokenul servește drept parolă și poate fi păstrat sub formă de hash, în argon2id, în loc de text clar în configurație. Vaultwarden furnizează comanda: ea cere parola de două ori, apoi returnează un șir PHC.

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

Puneți acest șir într-un fișier .env, lângă compose.yaml, între apostrofuri, apoi apelați-l din serviciu:

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

Verificați rezultatul, relansați, apoi conectați-vă pe /admin cu parola dumneavoastră, nu cu șirul PHC:

Terminal
docker compose config
docker compose up -d

Ce protejează seiful

Prima protecție este parola principală. Datele seifului sunt criptate cu chei personale sau de organizație: cine obține o copie a bazei sau forțează o sesiune trebuie totuși să spargă această parolă pentru a le citi. Soliditatea ei contează deci înainte de toate. O sesiune de administrare permite ea însăși ștergerea unui cont sau eliminarea unei autentificări în doi pași, fără a da acces la datele seifului.

ProtecțieCe aduceUnde se setează
Parola principalăPăstrează datele criptate, chiar dacă o copie a bazei circulăFiecare utilizator și-o alege, lungă și proprie acestui seif
Autentificarea în doi pașiFără ea, wiki-ul amintește că ghicirea unei parole prin forță brută rămâne posibilă în teorieÎn fiecare cont; o politică de organizație o poate impune
HTTPSCriptează traseul dintre client și serverProxy-ul invers
Înregistrări închiseÎmpiedică un necunoscut să își creeze un contSIGNUPS_ALLOWED
Indicii de parolăAfișați pe pagină, ar ajuta la ghicirea unei parole; versiunea 1.37.5 îi ține ascunși implicitLăsați SHOW_PASSWORD_HINT pe false; PASSWORD_HINTS_ALLOWED îi elimină cu totul
Limitarea încercărilorFrânează încercările de pe aceeași adresă, la conectare și pe /adminLOGIN_RATELIMIT_SECONDS și ADMIN_RATELIMIT_SECONDS
Fail2banBlochează adresele după prea multe eșecuri, lucru pe care wiki-ul îl consideră deosebit de important pentru o instanță publicăPe server, pornind de la un jurnal LOG_FILE

Pregătiți-vă pentru uitarea parolei principale înainte ca ea să se întâmple: activați accesul de urgență al contului dumneavoastră și, într-o organizație, recuperarea contului, care cere ca e-mailul să fie configurat.

Trei setări în plus, preluate din ghidul de securizare

SQLite, MariaDB sau PostgreSQL

Aceeași imagine suportă cele trei baze de date. Wiki-ul descrie SQLite ca fiind cea mai folosită și cea mai testată și o recomandă pentru majoritatea utilizărilor, în afara cazului în care aveți nevoie precisă de alta.

BazaConfigurareBackup
SQLiteNiciuna: un fișier, vw-data/db.sqlite3Comanda /vaultwarden backup sau copierea directorului, cu serviciul oprit
MariaDB sau MySQLServerul dumneavoastră de bază de date și DATABASE_URL în mysql://Un export al bazei, pe lângă directorul vw-data
PostgreSQLServerul dumneavoastră de bază de date și DATABASE_URL în postgresql://Un export al bazei, pe lângă directorul vw-data
compose.yaml, în environment (PostgreSQL)
DATABASE_URL: "postgresql://user_name:user_password@db_host:5432/vaultwarden"

Creați o bază goală și utilizatorul ei: la pornire, Vaultwarden își instalează singur schema. O parolă care conține caractere speciale se scrie în această adresă cu codificare procentuală (percent-encoding).

Faceți această alegere înainte de a umple seiful. Wiki-ul descrie trecerea de la SQLite la PostgreSQL cu pgloader, precizând că această cale nu este suportată de proiect, că se face pe riscul dumneavoastră și că începe cu un backup.

E-mailurile: configurarea SMTP

Vaultwarden pornește fără e-mail, dar mai multe funcții depind de el: invitațiile, verificarea adreselor, trimiterea indiciilor de parolă, autentificarea în doi pași prin e-mail și recuperarea contului.

Pe un VPS Simafri, trimiterea trece printr-un releu SMTP autentificat, pe portul 587: adresa unui cont de e-mail pe care îl aveți deja sau Simafri Suite. Parola se pune în fișierul .env, ca tokenul de administrare:

compose.yaml, în 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}

Dacă nu pleacă nimic, wiki-ul propune testarea conexiunii la releu de pe server. Comanda returnează 0 când releul răspunde:

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

Backupurile

README-ul amintește că proiectul nu poate fi tras la răspundere pentru o pierdere de date și recomandă insistent backupuri regulate. Wiki-ul le sfătuiește automate, cu cel puțin o copie în altă parte. Iată ce conține directorul de date cu SQLite:

ElementCe păstreazăDe salvat
db.sqlite3Aproape toate datele: conturi, organizații, seifuriObligatoriu
attachments/Atașamentele, stocate în afara bazeiObligatoriu
config.jsonConfigurația paginii de administrare, cu date sensibile în text clarRecomandat, criptat
rsa_key*Cheile care semnează sesiunile; pierderea lor deconectează utilizatoriiRecomandat, criptat
sends/Fișierele trimise prin Send, efemere prin natura lorFacultativ
icon_cache/Pictogramele site-urilor, descărcate din nou la nevoieFacultativ

Baza, cu serviciul în funcțiune

Începând cu versiunea 1.32.1, Vaultwarden știe să își salveze singur baza SQLite, fără oprirea serviciului:

Terminal
docker exec -it vaultwarden /vaultwarden backup

Comanda scrie un fișier db_AAAAMMZZ_HHMMSS.sqlite3 lângă bază, în vw-data. Imaginea nu conține nici sqlite3, nici cron: wiki-ul sfătuiește programarea sarcinii pe server, cel puțin o dată pe zi. Eliminați atunci -it, căci o sarcină programată nu are terminal, și faceți ordine printre aceste fișiere, care se acumulează.

Tot directorul, cu serviciul oprit

Când baza nu este folosită, o simplă copiere a tuturor fișierelor ei este suficientă. Este metoda cu serviciul oprit pe care wiki-ul o dă ca exemplu pentru Docker și ea include și atașamentele:

Terminal, în directorul fișierului compose.yaml
docker compose down
tar -czf vaultwarden-$(date +%F).tar.gz vw-data
docker compose up -d

Wiki-ul consideră utilă un strat de criptare, mai ales când backupul conține tokenul de administrare și accesele SMTP, și citează rclone, restic și rustic pentru a trimite copiile la distanță. Cu MariaDB sau PostgreSQL, adăugați un export al bazei la directorul vw-data.

Wiki-ul cere să nu vă bazați doar pe instantaneele de disc, mai delicate la restaurare. Păstrați deci aceste copii proprii aplicației: puse pe discul serverului, ele intră și în backupurile sale de noapte.

Restaurarea

  1. Opriți Vaultwarden.
  2. Înlocuiți fiecare fișier sau director din vw-data cu versiunea sa salvată.
  3. Dacă baza provine din /vaultwarden backup, numiți-o db.sqlite3 și ștergeți mai întâi orice fișier db.sqlite3-wal existent: un jurnal care nu corespunde poate corupe baza. Dacă provine dintr-o copie directă, restaurați împreună db.sqlite3 și db.sqlite3-wal.
  4. Relansați, apoi verificați că puteți deschide seiful.

Wiki-ul sfătuiește repetarea acestui exercițiu din când în când, păstrând o copie a datelor existente: așa verificați că un backup funcționează.

Actualizările

Wiki-ul dă două comenzi, din directorul fișierului compose.yaml. Directorul de date rămâne pe loc:

Terminal
docker compose pull
docker compose up -d

Aceste actualizări contează mai mult decât în alte părți. Aplicațiile mobile și extensiile de browser se actualizează singure, iar wiki-ul avertizează că o diferență de versiune față de server poate provoca defecțiuni bruște. Seiful web, livrat în imagine, rămâne mereu în acord cu serverul său.

Proiectul nu are un calendar de versiuni: urmăriți notele sale de versiune și faceți un backup chiar înaintea fiecărei actualizări. Unele conțin corecturi de securitate, precum versiunea 1.37.5 din 1 noiembrie 2026, ale cărei note recomandă actualizarea cât mai repede. Aceleași note avertizează și că, începând cu 1.37.5, o valoare de configurare invalidă împiedică pornirea Vaultwarden: recitiți fișierul de mediu înainte de actualizare. Pagina de diagnostic din /admin arată dacă există o versiune mai recentă.

Cine ce face pe un Managed VPS

Găzduirea pe propriul server cere să țineți serverul pe lângă aplicație. Pe un Managed VPS, echipele noastre preiau serverul și vă urmăresc proactiv instanța; Vaultwarden rămâne software-ul dumneavoastră, cu setările și datele sale.

SubiectEchipele noastreDumneavoastră
ServerulActualizări de sistem și de securitate, intervenții pe server incluseMomentul potrivit activității dumneavoastră
MonitorizareaServer urmărit 24 de ore din 24, 7 zile din 7, cu intervenție fără a vă aștepta apelulCitirea jurnalelor instanței dumneavoastră
VaultwardenUrmărire proactivă: erori, încetiniri și spațiu pe disc depistate, corectură recomandatăInstalarea, actualizările și setările sale, pe care le aplicați dumneavoastră sau asistentul dumneavoastră AI
Conturile și seifulServerul care le poartă, supravegheat și salvatUtilizatorii, invitațiile, parolele principale și autentificarea în doi pași
BackupurileÎn fiecare noapte, criptate și păstrate în afara mașinii; restaurare inclusăCopiile proprii Vaultwarden și cererea de restaurare, când aveți nevoie de ea
MigrareaServerul dumneavoastră actual migrat, gratuitMomentul trecerii

Dacă preferați ca echipele noastre să intervină în aplicația însăși, această prestație se facturează la oră sau la preț fix, cu o ofertă comunicată înainte de intervenție.

Vaultwarden, pe un server întreținut pentru dumneavoastră

Cu un Managed VPS Simafri, echipele noastre țin la zi serverul instanței dumneavoastră Vaultwarden, îl monitorizează zi și noapte și intervin fără a vă aștepta apelul; ele vă urmăresc proactiv și instanța și vă recomandă corecturile utile, pe care le aplicați dumneavoastră sau asistentul dumneavoastră AI. Backupurile sunt criptate în fiecare noapte și păstrate în afara mașinii, restaurarea lor este inclusă, iar migrarea serverului actual este gratuită.

Descoperiți gama Managed VPS

Întrebări frecvente

Este Vaultwarden gratuit pentru o firmă?

Da. Vaultwarden este sub licență AGPL-3.0: îl puteți rula în firmă fără nicio licență de cumpărat. Dacă îl modificați, versiunea dumneavoastră trebuie să ofere codul sursă celor care o folosesc prin rețea. Rămâne costul serverului pe care rulează.

Funcționează Vaultwarden cu aplicațiile Bitwarden?

Da. README-ul prezintă Vaultwarden ca fiind compatibil cu clienții oficiali Bitwarden, precizând totodată că proiectul nu este asociat cu Bitwarden și nici cu Bitwarden, Inc. O problemă se semnalează deci proiectului Vaultwarden, oricare ar fi clientul folosit.

Cum instalez Vaultwarden cu Docker Compose?

Creați un compose.yaml cu imaginea vaultwarden/server, un director de date și portul publicat pe 127.0.0.1, apoi rulați docker compose up -d. Puneți apoi în față un proxy invers în HTTPS: fără HTTPS, seiful web nu funcționează. Treceți și adresa dumneavoastră în DOMAIN.

Cum dezactivez înregistrările pe Vaultwarden?

După ce v-ați creat contul, treceți SIGNUPS_ALLOWED pe false în compose.yaml, apoi relansați docker compose up -d. Organizațiile pot totuși invita: INVITATIONS_ALLOWED pe false elimină această posibilitate. Dacă pagina de administrare și-a salvat deja configurația, faceți această setare din ea.

Cum configurez tokenul de administrare Vaultwarden?

Rulați comanda vaultwarden hash, care returnează un șir argon2id, apoi puneți-l în ADMIN_TOKEN, dintr-un fișier .env cu Docker Compose. Vă conectați apoi pe /admin cu parola dumneavoastră. Fără ADMIN_TOKEN, pagina rămâne dezactivată.

Ce protejează un seif Vaultwarden?

În primul rând parola principală: datele sunt criptate, iar o copie a bazei nu se poate citi decât spărgând-o. Se adaugă autentificarea în doi pași, HTTPS, înregistrările închise, un token de administrare cu hash și backupuri criptate.

Cum fac backup la Vaultwarden?

Cu SQLite, rulați zilnic comanda /vaultwarden backup în container și copiați și directorul attachments, config.json și fișierele rsa_key. Cu MariaDB sau PostgreSQL, adăugați un export al bazei. Testați regulat restaurarea.

Acoperă un Managed VPS și Vaultwarden?

Un Managed VPS acoperă serverul: sistemul, securitatea, monitorizarea și backupurile. Echipele noastre vă urmăresc proactiv și instanța și vă recomandă corecturile utile, pe care le aplicați dumneavoastră. O intervenție în aplicație se facturează la oră sau la preț fix.

Surse și documentație oficială

Contactați-ne