Vaultwarden: czym jest i jak zainstalować go na VPS

6 min czytania
Tropic
Vaultwarden: czym jest i jak zainstalować go na VPS

Language: pl

Vaultwarden: instalacja własnego menedżera haseł na VPS-ie

Vaultwarden pozwala przechowywać hasła na własnym serwerze i synchronizować je między komputerem, telefonem i przeglądarką. Działa z oficjalnymi aplikacjami i rozszerzeniami Bitwarden, w których podajesz adres własnego serwera.

Poniżej sprawdzimy, jakiego VPS-a potrzebuje Vaultwarden, jak uruchomić go na Ubuntu z Docker Compose, wyłączyć otwartą rejestrację, włączyć HTTPS i skonfigurować kopie zapasowe.

Vaultwarden w pięciu krokach

Minimalny plan uruchomienia:

  1. Utwórz VPS z Ubuntu i skieruj do niego subdomenę, na przykład vault.example.com.
  2. Zainstaluj Docker i Docker Compose.
  3. Uruchom Vaultwarden razem z Caddy, aby automatycznie obsługiwać HTTPS.
  4. Utwórz pierwsze konto i wyłącz otwartą rejestrację.
  5. Włącz uwierzytelnianie dwuskładnikowe, aktualizacje i kopie zapasowe.

W przypadku osobistego sejfu lub małej rodziny wbudowana baza SQLite jest wystarczająca. Osobny serwer PostgreSQL zazwyczaj nie jest potrzebny.

Czym jest Vaultwarden

Vaultwarden to nieoficjalna implementacja API Bitwarden, napisana w Rust i przeznaczona do samodzielnego hostowania. Jest zgodna z oficjalnymi klientami Bitwarden: interfejsem WWW, aplikacjami mobilnymi i desktopowymi, rozszerzeniami przeglądarek oraz CLI.

Dane sejfu są szyfrowane na urządzeniu użytkownika przed wysłaniem na serwer. VPS synchronizuje zaszyfrowaną bazę, ale nie zna hasła głównego i nie może go odzyskać po utracie.

Vaultwarden nie jest oficjalnym produktem Bitwarden. Właściciel sam odpowiada za aktualizacje, dostępność, HTTPS, kopie zapasowe i bezpieczeństwo VPS-a.

Vaultwarden i Bitwarden: jaka jest różnica

ParametrBitwarden CloudVaultwarden
SerwerInfrastruktura BitwardenTwój VPS lub serwer domowy
AplikacjeKlienci BitwardenCi sami klienci w trybie Self-hosted
UtrzymanieZajmuje się nim dostawcaZajmuje się nim właściciel
Kontrola nad kopiami zapasowymiOgraniczona przez usługęPełna
KonfiguracjaRejestracja kontaKonfiguracja domeny, Dockera i VPS-a

Vaultwarden pasuje osobom, które chcą kontrolować stronę serwerową i są gotowe aktualizować Linuksa oraz sprawdzać kopie zapasowe. Usługa w chmurze jest praktyczniejsza, jeśli nie chcesz zajmować się administracją. Samodzielne hostowanie automatycznie nie zwiększa bezpieczeństwa — przenosi odpowiedzialność na właściciela.

Wymagania serwera dla Vaultwarden

Do użytku osobistego rozsądną konfiguracją początkową jest:

  • 1 vCPU;
  • 1–2 GB RAM;
  • 10–20 GB SSD lub NVMe;
  • Ubuntu 24.04 LTS;
  • publiczny adres IP i domena;
  • otwarte porty 80 i 443.

To praktyczny zapas dla Ubuntu, Dockera, Caddy i aktualizacji, a nie ścisłe minimum projektu. Przy kilkudziesięciu użytkownikach, dużej liczbie załączników albo wielu kontenerach lepiej wybrać co najmniej 2 GB RAM.

Jak zainstalować Vaultwarden na VPS-ie

Przykład korzysta z Ubuntu 24.04 i subdomeny vault.example.com. We wszystkich plikach zastąp ją własnym adresem.

1. Skonfiguruj DNS i przygotuj Ubuntu

Utwórz rekord DNS A wskazujący na adres IPv4 VPS-a. Następnie połącz się przez SSH:

ssh root@SERVER_IP
apt update && apt upgrade -y
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

Nie zamykaj bieżącej sesji SSH, dopóki nie sprawdzisz, że nowe połączenie działa.

2. Zainstaluj Docker i Docker Compose

Dodaj oficjalne repozytorium Dockera:

apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
  -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc

tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

apt update
apt install -y docker-ce docker-ce-cli containerd.io \
  docker-buildx-plugin docker-compose-plugin
docker compose version

3. Utwórz konfigurację

mkdir -p /opt/vaultwarden
cd /opt/vaultwarden

Utwórz 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

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

Utwórz Caddyfile:

vault.example.com {
    reverse_proxy vaultwarden:80
}

Na zewnątrz wystawiony jest tylko Caddy. Kontener Vaultwarden jest dostępny w sieci Dockera, a dane są przechowywane w /opt/vaultwarden/vw-data. W obecnej konfiguracji osobny port WebSocket nie jest potrzebny.

4. Uruchom Vaultwarden

docker compose up -d
docker compose ps
docker compose logs --tail=100 caddy

Otwórz https://vault.example.com. Caddy automatycznie pobierze certyfikat TLS, jeśli DNS wskazuje już na VPS, a porty 80 i 443 są dostępne. Jeśli strona się nie otwiera, sprawdź DNS, zaporę i to, czy inny serwer WWW nie korzysta z tych portów.

5. Utwórz konto i wyłącz rejestrację

Zarejestruj pierwsze konto. Użyj długiego, unikalnego hasła głównego i zachowaj awaryjną kopię poza Vaultwarden: administrator serwera nie może zresetować ani odzyskać hasła głównego.

Po rejestracji zmień w compose.yaml:

SIGNUPS_ALLOWED: "false"

Zastosuj ustawienie:

docker compose up -d

Inne osoby nie będą już mogły tworzyć kont. Aby dodać nowego użytkownika, możesz tymczasowo włączyć rejestrację albo skonfigurować zaproszenia.

Jak podłączyć aplikację Bitwarden

Nie musisz instalować osobnego klienta Vaultwarden. Na ekranie logowania aplikacji lub rozszerzenia Bitwarden wybierz Self-hosted i wpisz:

https://vault.example.com

Używaj tego adresu na komputerze, telefonie i w przeglądarce. Aby przeprowadzić migrację, zaimportuj eksport z poprzedniego menedżera haseł. Natychmiast po transferze usuń niezaszyfrowany plik CSV lub JSON i nie wysyłaj go pocztą ani publicznym linkiem.

Bezpieczna konfiguracja Vaultwarden

Po uruchomieniu wykonaj kilka kroków:

  • włącz TOTP albo WebAuthn i przechowuj kody odzyskiwania osobno;
  • pozostaw SIGNUPS_ALLOWED wyłączone;
  • używaj kluczy SSH i regularnie aktualizuj Ubuntu;
  • nie wystawiaj wewnętrznego portu kontenera Vaultwarden;
  • nie uruchamiaj podejrzanych kontenerów na tym samym VPS-ie;
  • sprawdź, czy kopie zapasowe można odtworzyć.

Panel /admin zwykle nie jest potrzebny w osobistym sejfie. Jeśli go włączysz, użyj długiego tokenu w postaci hasha Argon2 i, jeśli to możliwe, ogranicz dostęp po adresie IP albo przez VPN. Przechowywanie jawnego ADMIN_TOKEN jest niewskazane.

Przed aktualizacją wykonaj kopię, a następnie uruchom:

cd /opt/vaultwarden
docker compose pull
docker compose up -d

Serwer należy regularnie aktualizować: klienci Bitwarden są wydawani niezależnie, dlatego bardzo stara wersja Vaultwarden może utracić z nimi zgodność.

Kopie zapasowe Vaultwarden

Główna baza SQLite znajduje się w vw-data/db.sqlite3, a załączniki są przechowywane jako osobne pliki. Nie kopiuj działającej bazy zwykłym poleceniem cp: trwający zapis może sprawić, że kopia będzie niespójna.

Utwórz bezpieczny snapshot za pomocą wbudowanego polecenia:

docker exec vaultwarden /vaultwarden backup

W katalogu danych pojawi się osobny plik db_.sqlite3. Razem z nim zapisz attachments, sends, utworzony plik config.json oraz pliki rsa_key.

Kopia na tym samym VPS-ie nie chroni przed usunięciem serwera ani awarią dysku. Automatycznie wysyłaj kopie na inne urządzenie lub do osobnego magazynu obiektowego, najlepiej z dodatkowym szyfrowaniem. Okresowo wykonuj testowe odtworzenie.

Jaki VPS wybrać dla Vaultwarden

Podstawowy Linux VPS z 2 GB RAM wystarczy dla osobistego lub rodzinnego sejfu. Zapewnia dodatkowy zapas na system, Dockera, Caddy, aktualizacje i automatyczne kopie zapasowe.

Vaultwarden można uruchomić na podstawowym VPS-ie od tropic.host, a później zwiększyć zasoby, jeśli na serwerze pojawią się inne usługi self-hosted. W przypadku menedżera haseł ważniejsze od dodatkowych rdzeni CPU są stabilna sieć, stały publiczny adres i niezawodny dysk.

Serwer domowy również się nadaje, ale trzeba wtedy zapewnić dostęp z zewnątrz, HTTPS, stabilne zasilanie i odtwarzanie po awariach. VPS jest zwykle prostszy, gdy sejf ma działać z dowolnej sieci.

Podsumowanie

Vaultwarden to wygodny menedżer haseł do samodzielnego hostowania dla osób, które chcą korzystać z klientów Bitwarden, zachowując stronę serwerową na własnej infrastrukturze. Niewielki VPS, domena, Docker Compose i Caddy wystarczą, aby rozpocząć.

Najważniejsza odpowiedzialność zaczyna się po instalacji: wyłącz rejestrację, włącz 2FA, aktualizuj kontenery i przechowuj sprawdzone kopie zapasowe poza serwerem.

FAQ

Czy Vaultwarden można zainstalować bez domeny?

Technicznie można użyć lokalnego adresu, ale sejf WWW wymaga bezpiecznego kontekstu HTTPS. Przy dostępie z różnych urządzeń prostsze jest użycie domeny i certyfikatu TLS.

Ile RAM potrzebuje Vaultwarden?

Dla jednego lub kilku użytkowników zwykle wystarczy 1 GB RAM. VPS z 2 GB zapewnia wygodniejszy zapas na system, Dockera, Caddy i aktualizacje.

Czy Vaultwarden działa z aplikacją mobilną Bitwarden?

Tak. Na ekranie logowania wybierz serwer self-hosted i wpisz pełny adres HTTPS swojej instancji Vaultwarden.

Co się stanie, jeśli VPS będzie tymczasowo niedostępny?

Wcześniej zsynchronizowane dane zwykle pozostają w lokalnej zaszyfrowanej pamięci podręcznej klienta. Synchronizacja, logowanie na nowym urządzeniu i odbieranie zmian nie będą jednak działać do czasu przywrócenia serwera.

Czy zapomniane hasło główne można odzyskać przez /admin?

Nie. Administrator może zarządzać serwerem i kontami, ale nie ma klucza deszyfrującego sejf użytkownika. Hasło główne i kody odzyskiwania trzeba przechowywać osobno.