Menu
Szybki wybór
Hosting Domeny VPS SSL Kalkulator Porównania FAQ
Aktywne kody
Wszystkie kody rabatowe

Vaultwarden — self-hosted menedżer haseł Bitwarden na VPS

Opublikowano: 10 kwietnia 2026 · Kategoria: Bezpieczeństwo

Menedżer haseł to jedno z najważniejszych narzędzi bezpieczeństwa — ale czy musisz ufać vendorowi z wszystkimi swoimi hasłami? Vaultwarden to lekka, self-hosted implementacja API Bitwarden napisana w Rust. Działa na VPS za 20 PLN/msc, zużywa zaledwie 20–50 MB RAM i obsługuje wszystkie oficjalne klienty Bitwarden. Hasła szyfrowane są lokalnie w przeglądarce — serwer nigdy nie widzi ich niezaszyfrowanej wersji. Ten artykuł pokazuje pełną instalację przez Docker, konfigurację HTTPS i zarządzanie organizacjami dla zespołów.

Instalacja Docker

Vaultwarden wymaga HTTPS — przeglądarka odmówi połączenia przez HTTP (Web Crypto API wymaga bezpiecznego kontekstu). Potrzebujesz domeny z certyfikatem SSL przed pierwszym uruchomieniem:

# Utwórz katalog danych
mkdir -p /opt/vaultwarden/vw-data

# docker-compose.yml
version: '3.8'
services:
  vaultwarden:
    image: vaultwarden/server:latest
    restart: unless-stopped
    environment:
      DOMAIN: "https://vault.example.com"
      ADMIN_TOKEN: ""   # wygeneruj: openssl rand -base64 48
      SIGNUPS_ALLOWED: "false"   # wylacz po utworzeniu kont
      INVITATIONS_ALLOWED: "true"
      SMTP_HOST: "smtp.example.com"
      SMTP_PORT: "587"
      SMTP_SECURITY: "starttls"
      SMTP_USERNAME: "[email protected]"
      SMTP_PASSWORD: "smtp_password"
      SMTP_FROM: "[email protected]"
      SMTP_FROM_NAME: "Vaultwarden"
      LOG_FILE: "/data/vaultwarden.log"
      LOG_LEVEL: "warn"
    volumes:
      - /opt/vaultwarden/vw-data:/data
    ports:
      - "127.0.0.1:8080:80"   # tylko localhost — Nginx proxuje

docker compose up -d
docker compose logs -f vaultwarden

Konfiguracja Nginx i Let's Encrypt

Vaultwarden nie ma wbudowanego TLS — Nginx obsługuje HTTPS i przekazuje ruch do kontenera. Możesz też użyć Caddy — automatycznie zarządza certyfikatami Let's Encrypt:

# Certbot - generuj certyfikat przed uruchomieniem Nginx
certbot certonly --standalone -d vault.example.com

# /etc/nginx/sites-available/vaultwarden
server {
  listen 443 ssl http2;
  server_name vault.example.com;

  ssl_certificate /etc/letsencrypt/live/vault.example.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/vault.example.com/privkey.pem;

  # Naglowki bezpieczenstwa
  add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
  add_header X-Content-Type-Options nosniff;
  add_header X-Frame-Options SAMEORIGIN;

  location / {
    proxy_pass http://127.0.0.1:8080;
    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;
  }

  # WebSocket dla live-sync
  location /notifications/hub {
    proxy_pass http://127.0.0.1:8080;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
  }
}

# Alternatywa: Caddy (automatyczny TLS)
# vault.example.com {
#   reverse_proxy 127.0.0.1:8080
# }

Admin panel — konfiguracja i zarządzanie użytkownikami

Panel administracyjny dostępny jest pod adresem /admin. Wymaga tokenu ADMIN_TOKEN ustawionego w zmiennych środowiskowych. Przez panel możesz zapraszać użytkowników, zarządzać 2FA i monitorować stan serwera:

# Generowanie bezpiecznego ADMIN_TOKEN
openssl rand -base64 48
# Wynik (przykład): y8Kq3PqFcJ4...Xz9 (64 znaki)
# Wklej do ADMIN_TOKEN w docker-compose.yml

# Dostep do panelu admina
# https://vault.example.com/admin
# Wpisz ADMIN_TOKEN w formularzu

# Konfiguracja przez panel admina (/admin/settings):
# - SMTP: weryfikacja konfiguracji emaila
# - Signups allowed: false (po utworzeniu kont)
# - Require email verification: true
# - 2FA enforcement: opcjonalne (wymus 2FA dla wszystkich)
# - Organization creation: all | only_admin | users (lista)

# Zapraszanie uzytkownika (bez wlaczonej rejestracji):
# /admin/users → "Invite user" → wpisz email
# Uzytkownik otrzymuje email z linkiem rejestracyjnym (ważny 5 dni)

# Lista uzytkownikow i ich status
# /admin/users → tabela z email, 2FA status, last login

Backup bazy i pliki attachmentów

Backup Vaultwarden wymaga skopiowania bazy SQLite i katalogu z załącznikami. Kluczowe jest wykonanie backupu w momencie gdy SQLite nie pisze (WAL checkpoint):

# Skrypt backup SQLite - /opt/vaultwarden/backup.sh
#!/bin/bash
BACKUP_DIR="/opt/vaultwarden/backups"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
DATA_DIR="/opt/vaultwarden/vw-data"

mkdir -p "${BACKUP_DIR}"

# WAL checkpoint przed kopią
sqlite3 "${DATA_DIR}/db.sqlite3" "PRAGMA wal_checkpoint(FULL);"

# Kopia bazy
cp "${DATA_DIR}/db.sqlite3" "${BACKUP_DIR}/db_${TIMESTAMP}.sqlite3"

# Kopia załączników i ikony
tar -czf "${BACKUP_DIR}/attachments_${TIMESTAMP}.tar.gz" \
  "${DATA_DIR}/attachments" \
  "${DATA_DIR}/icon_cache" \
  "${DATA_DIR}/config.json" 2>/dev/null

# Usuń kopie starsze niż 30 dni
find "${BACKUP_DIR}" -name "*.sqlite3" -mtime +30 -delete
find "${BACKUP_DIR}" -name "*.tar.gz" -mtime +30 -delete

echo "Backup done: ${TIMESTAMP}"

# Cron - codzienny backup o 02:00
# 0 2 * * * /opt/vaultwarden/backup.sh >> /var/log/vaultwarden-backup.log

Klienty Bitwarden i konfiguracja serwera

Wszystkie oficjalne klienty Bitwarden obsługują własny serwer — wystarczy podać URL w ustawieniach. Poniżej tabela klientów i ich możliwości:

Klient Platforma Konfiguracja serwera Autouzupełnianie
Web Vault Przeglądarka (https://vault.example.com) Automatycznie Nie
Browser Extension Chrome, Firefox, Safari, Edge Settings → Server URL Tak (auto-fill)
Desktop App Windows, macOS, Linux Settings → Server URL Tak (TOTP, SSH keys)
Mobile App iOS, Android Settings → Server URL Tak (biometria)
CLI Linux, macOS, Windows BW_SERVER env var Skrypty automatyzacji

Najczęstsze pytania

Czym Vaultwarden różni się od oficjalnego serwera Bitwarden? +
Vaultwarden to nieoficjalna, lekka implementacja API Bitwarden napisana w Rust — kompatybilna ze wszystkimi oficjalnymi klientami Bitwarden (web, desktop, mobile, browser extensions). Oficjalny serwer Bitwarden (samoinstalowany) wymaga .NET Core, osobnego serwera MSSQL i minimum 4+ GB RAM. Vaultwarden działa na SQLite lub PostgreSQL i zużywa 10–50 MB RAM — idealny na małe VPS. Vaultwarden ma wszystkie funkcje Bitwarden Premium (TOTP, organizacje, sharing) za darmo.
Czy Vaultwarden jest bezpieczny? +
Vaultwarden stosuje ten sam model bezpieczeństwa co Bitwarden: hasła szyfrowane lokalnie (AES-256-CBC) przed wysłaniem na serwer — serwer nigdy nie widzi niezaszyfrowanych haseł. Nawet jeśli ktoś włamie się na serwer, bez master password nie odczyta haseł. Bezpieczeństwo zależy od: siły master password, aktualności Vaultwarden i systemu (podatności), HTTPS z ważnym certyfikatem, backup bazy. Oficjalny audyt bezpieczeństwa Bitwarden przeprowadzony przez Cure53 obejmuje też protokół szyfrowania.
Jak wykonać backup bazy Vaultwarden? +
Przy SQLite (domyślnym): skopiuj plik /vw-data/db.sqlite3. Przed kopią zrób flush WAL: sqlite3 /vw-data/db.sqlite3 "PRAGMA wal_checkpoint(FULL)". Automatyzacja: cron "0 2 * * * sqlite3 /vw-data/db.sqlite3 .dump > /backup/vw-backup-$(date +%Y%m%d).sql". Przy PostgreSQL: pg_dump -U vaultwarden vaultwarden > backup.sql. Kopia bazy bez kluczy prywatnych jest nieużyteczna — backup wystarczy do przywrócenia. Zalecane przechowywanie kopii w zewnętrznej lokalizacji (Backblaze B2, S3).
Jak skonfigurować organizacje i sharing w Vaultwarden? +
Organizacje w Bitwarden/Vaultwarden pozwalają współdzielić hasła między użytkownikami. Konfiguracja: w admin panelu Vaultwarden upewnij się że signups_allowed=false (tylko zaproszenia) i org_creation_users=all (lub podaj konkretnych użytkowników). Tworzysz organizację z poziomu webowego UI, zapraszasz członków przez email, dzielisz ich na kolekcje (grupy haseł). Szyfrowanie: klucze kolekcji szyfrowane asymetrycznie kluczem każdego członka — admin nie ma dostępu do haseł bez bycia członkiem.
Czym Vaultwarden różni się od 1Password i LastPass? +
Vaultwarden to self-hosted — Twoje dane są na Twoim serwerze, a nie u vendora. 1Password i LastPass to managed cloud services z opłatami miesięcznymi ($3–5/user/msc). Zalety Vaultwarden: zero opłat za licencje, pełna kontrola danych, funkcje Premium za darmo. Wady: musisz sam dbać o serwer, backupy i aktualizacje. LastPass miał głośne wycieki danych (2022) — self-hosted eliminuje ten ryzyk. 1Password nigdy nie był hackowany i ma lepszy UX, ale koszt dla firmy 10 osób to ~$400/rok vs VPS ~$240/rok.

Sprawdź oferty pasujące do tego scenariusza

Poniżej masz szybkie przejścia do ofert i stron z kodami rabatowymi tam, gdzie są dostępne.