O Vaultwarden
Vaultwarden to napisana w Rust alternatywna implementacja API serwera Bitwarden. Współpracuje z oficjalnymi aplikacjami i rozszerzeniami Bitwarden (przeglądarka, telefon, komputer, wiersz poleceń), a przy tym zużywa bardzo mało zasobów, dlatego dobrze sprawdza się na małym VPS-ie. Korzystają z niego programiści, rodziny i małe zespoły, które chcą trzymać swoje hasła na serwerze pod własną kontrolą.
Po dostawie skrypt instalacyjny ma już zainstalowanego Dockera i uruchomione dwa kontenery przez Docker Compose w katalogu /opt/vaultwarden. Vaultwarden nasłuchuje wyłącznie lokalnie (127.0.0.1:8080), a Caddy udostępnia interfejs przez HTTPS na porcie 443. Dane są przechowywane w nazwanym wolumenie Dockera vw_data.
Certyfikat jest samopodpisany (dyrektywa Caddy tls internal) i powiązany z publicznym adresem IP serwera. Dopóki nie przypiszesz domeny, przeglądarka będzie wyświetlać ostrzeżenie. Rejestracja jest na starcie otwarta (SIGNUPS_ALLOWED=true): załóż konto, a potem ją zamknij.
Co możesz zrobić z Vaultwarden
Zgodność z klientami Bitwarden
Aplikacje i rozszerzenia Bitwarden łączą się z Twoim serwerem po podaniu jego adresu URL. Zostajesz przy znanych narzędziach i nie korzystasz z usług podmiotów trzecich.
Niskie zużycie zasobów
Vaultwarden, napisany w Rust, działa komfortowo na skromnym VPS-ie. Zostaje miejsce na inne usługi na tej samej maszynie.
HTTPS dzięki Caddy
Caddy działa w sieci hosta i udostępnia interfejs na porcie 443 z certyfikatem samopodpisanym. Kontener Vaultwarden nie jest wystawiony bezpośrednio do Internetu.
Wdrożenie przez Docker Compose
Cała konfiguracja mieści się w plikach
/opt/vaultwarden/docker-compose.ymliCaddyfile. Wystarczy zmienić plik i wykonaćdocker compose up -d, by zastosować zmiany.Dane w osobnym wolumenie
Baza danych i załączniki znajdują się w wolumenie
vw_data, oddzielonym od kontenera. Obraz możesz aktualizować, nie ruszając swoich sejfów.Kontrola nad rejestracją
Zmienna
SIGNUPS_ALLOWEDpozwala zamknąć zakładanie kont, gdy zarejestrują się już wszyscy użytkownicy. Obca osoba nie założy wtedy konta na Twojej instancji.
Pierwsze kroki z Vaultwarden
Od zamówienia do produkcji w kilka minut.
- 1
Zamów VPS z Vaultwardenem
Wybierz VPS z Linuksem (Paryż lub Frankfurt) z systemem Debian 12, Debian 13 albo Ubuntu 20.04, 22.04, 24.04. W formularzu zamówienia zaznacz Vaultwarden w zakładce Aplikacje.
- 2
Sprawdź instalację po dostawie
Po dostawie odczekaj kilka minut: skrypt instaluje Dockera, a potem uruchamia kontenery. Połącz się przez SSH i sprawdź, czy
vaultwardenicaddysą aktywne.Bashssh root@SERVER_IP cd /opt/vaultwarden docker compose ps - 3
Załóż swoje główne konto
Otwórz w przeglądarce https://SERVER_IP i zaakceptuj ostrzeżenie o certyfikacie samopodpisanym. Załóż konto, a następnie zamknij rejestrację, aby nikt inny nie mógł tego zrobić.
Bashsed -i 's/SIGNUPS_ALLOWED=true/SIGNUPS_ALLOWED=false/' /opt/vaultwarden/docker-compose.yml cd /opt/vaultwarden && docker compose up -d - 4
Przejdź na domenę z poprawnym HTTPS
Ustaw rekord A dla YOUR_DOMAIN wskazujący na SERVER_IP. W pliku Caddyfile zastąp blok blokiem dla YOUR_DOMAIN bez
tls internal, wpiszDOMAIN=https://YOUR_DOMAINw docker-compose.yml, otwórz porty 80 i 443, a potem uruchom ponownie.Bashcd /opt/vaultwarden nano Caddyfile nano docker-compose.yml ufw allow 22/tcp && ufw allow 80/tcp && ufw allow 443/tcp docker compose up -d --force-recreate
Zastosowania Vaultwarden
Osobisty lub rodzinny sejf
Hasła, bezpieczne notatki i kody odzyskiwania swojego domu trzymasz na własnym serwerze, dostępnym z każdego urządzenia.
Zarządzanie dostępami w małym zespole
Udostępniasz kilku współpracownikom dane logowania (dostęp do serwerów, konta SaaS, klucze API) za pomocą organizacji i kolekcji Bitwarden.
Alternatywa dla usługi w chmurze
Rezygnujesz z menedżera haseł hostowanego u dostawcy, zachowujesz ten sam klient Bitwarden, a dane masz na VPS-ie w Europie.
Element serwera narzędzi wewnętrznych
Sejf stawiasz obok innych usług self-hosted na tym samym VPS-ie, bo zajmuje niewiele pamięci.
Najczęstsze pytania o Vaultwarden
Certyfikat generuje Caddy (tls internal) dla adresu IP serwera, więc nie jest podpisany przez żadne publiczne centrum certyfikacji. Możesz go zaakceptować, żeby założyć konto. Do dłuższego użytku przypisz domenę i pozwól Caddy uzyskać ważny certyfikat.
Więcej o Vaultwarden
Pliki i usługi, które warto znać
Wszystko znajduje się w /opt/vaultwarden: skrypt install-vaultwarden.sh, plik docker-compose.yml oraz Caddyfile. Trzy wolumeny Dockera to vw_data (Twoje dane), caddy_data (certyfikaty) i caddy_config. Oba kontenery uruchamiają się ponownie automatycznie (restart: always).
Korzystanie z domeny
Certyfikat dostarczony razem z serwerem jest samopodpisany i powiązany z adresem IP. Aplikacje mobilne i niektóre rozszerzenia mogą takiego certyfikatu nie zaakceptować, dlatego do codziennego użytku zalecamy domenę z ważnym certyfikatem. Gdy masz domenę (zobacz nasze domeny), minimalny Caddyfile wygląda tak:
YOUR_DOMAIN {
reverse_proxy 127.0.0.1:8080
}
Caddy sam pobierze wtedy publiczny certyfikat, o ile DNS wskazuje na serwer, a porty 80 i 443 są osiągalne. Po zmianie uruchom ponownie usługę poleceniem docker compose restart caddy. Pamiętaj też o dopasowaniu zmiennej DOMAIN w konfiguracji Vaultwardena.
Kopie zapasowe
Rób kopię wolumenu vw_data: zawiera bazę SQLite, klucze i załączniki. Dokładna nazwa wolumenu zależy od katalogu projektu, więc sprawdź ją poleceniem docker volume ls (powinna brzmieć vaultwarden_vw_data).
docker run --rm -v vaultwarden_vw_data:/data -v /root:/backup alpine tar czf /backup/vw-backup.tgz -C /data .
Następnie skopiuj archiwum poza serwer. Kopia przechowywana na tym samym VPS-ie nie ochroni Cię przed utratą maszyny. Poradniki z sekcji /learn pomogą zautomatyzować ten krok.
Aktualizacje
Używany obraz to vaultwarden/server:latest. Aby przejść na najnowszą wersję, najpierw zrób kopię zapasową, a potem wykonaj:
cd /opt/vaultwarden
docker compose pull
docker compose up -d
