Ana içeriğe geç
Kategoriye Dön

Vaultwarden Kurulumu: Self-Hosted Şifre Yöneticisi

Vaultwarden (Bitwarden uyumlu) Docker kurulumu, HTTPS yapılandırması, admin panel, organizasyon ve koleksiyon yönetimi, Bitwarden istemcileri ile kullanım.

Okuma süresi: 13 dk Self-Hosting
vaultwardenbitwardenşifre yöneticisiself-hostingdockergüvenlik

İçindekiler

Vaultwarden Kurulumu: Self-Hosted Şifre Yöneticisi

Vaultwarden, Bitwarden'ın resmi sunucu uygulamasının Rust ile yazılmış hafif ve topluluk destekli alternatifidir. Resmi Bitwarden sunucusuna kıyasla çok daha az kaynak tüketir ve tüm Bitwarden istemcileriyle (web, masaüstü, mobil, tarayıcı eklentisi) tam uyumludur. Kendi sunucunuzda barındırarak şifrelerinizin kontrolünü tamamen elinizde tutabilirsiniz.

Vaultwarden Nedir?

Vaultwarden (eski adıyla bitwarden_rs), Bitwarden API'sini Rust programlama diliyle yeniden uygulayan açık kaynaklı bir projedir. Öne çıkan özellikleri:

  • Düşük Kaynak Tüketimi: 512 MB RAM ile rahatça çalışır
  • Bitwarden Uyumluluğu: Tüm resmi Bitwarden istemcileri desteklenir
  • Organizasyon Desteği: Ücretsiz olarak organizasyon ve koleksiyon oluşturabilirsiniz
  • TOTP Desteği: İki faktörlü kimlik doğrulama
  • Web Vault: Tarayıcı üzerinden erişilebilen web arayüzü
  • Send Özelliği: Güvenli dosya ve metin paylaşımı

Sistem Gereksinimleri

  • Docker ve Docker Compose kurulu sunucu
  • Minimum 512 MB RAM
  • Geçerli bir domain adı (HTTPS için zorunlu)
  • SSL sertifikası (Let's Encrypt önerilir)

Docker ile Kurulum

docker-compose.yml Oluşturma

hljs yaml
version: '3.8'

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: unless-stopped
    environment:
      DOMAIN: "https://vault.example.com"
      SIGNUPS_ALLOWED: "true"
      ADMIN_TOKEN: "guclu-admin-token-buraya"
      WEBSOCKET_ENABLED: "true"
      LOG_LEVEL: "warn"
    volumes:
      - ./vw-data:/data
    ports:
      - "127.0.0.1:8080:80"
      - "127.0.0.1:3012:3012"
hljs bash
# Container'ı başlat
docker compose up -d

# Logları kontrol et
docker logs vaultwarden -f

ADMIN_TOKEN için güçlü ve rastgele bir değer kullanın. openssl rand -base64 48 komutuyla güvenli token üretebilirsiniz.

Admin Token Üretme

hljs bash
# Güvenli admin token üret
openssl rand -base64 48

# Argon2 hash ile daha güvenli token (önerilir)
docker run --rm -it vaultwarden/server /vaultwarden hash --preset owasp

Nginx Reverse Proxy ve SSL Yapılandırması

Vaultwarden HTTPS gerektirdiğinden Nginx reverse proxy kurulumu zorunludur.

Nginx Yapılandırması

hljs nginx
server {
    listen 80;
    server_name vault.example.com;
    return 301 https://$host$request_uri;
}

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;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;

    client_max_body_size 128M;

    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;
    }

    location /notifications/hub {
        proxy_pass http://127.0.0.1:3012;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

    location /notifications/hub/negotiate {
        proxy_pass http://127.0.0.1:8080;
    }
}

Let's Encrypt SSL Sertifikası

hljs bash
# Certbot kurulumu
apt install certbot python3-certbot-nginx -y

# SSL sertifikası al
certbot --nginx -d vault.example.com

# Otomatik yenileme testi
certbot renew --dry-run

Admin Panel Yapılandırması

Admin paneline https://vault.example.com/admin adresinden erişebilirsiniz.

Önemli Admin Ayarları

hljs bash
# Kayıt kısıtlama (kurulum sonrası kapatın)
SIGNUPS_ALLOWED=false

# Sadece belirli domainlere kayıt izni
SIGNUPS_DOMAINS_WHITELIST=example.com,company.org

# Davet sistemi
INVITATIONS_ALLOWED=true

# E-posta doğrulama
SIGNUPS_VERIFY=true

SMTP E-posta Yapılandırması

hljs yaml
environment:
  SMTP_HOST: "smtp.gmail.com"
  SMTP_FROM: "vault@example.com"
  SMTP_PORT: "587"
  SMTP_SECURITY: "starttls"
  SMTP_USERNAME: "vault@example.com"
  SMTP_PASSWORD: "uygulama-sifresi"

Kullanıcı Yönetimi

Kullanıcı Davet Etme

Admin panelinden UsersInvite User ile e-posta daveti gönderebilirsiniz.

hljs bash
# CLI ile kullanıcı davet et
docker exec vaultwarden /vaultwarden invite --email user@example.com

Organizasyon ve Koleksiyon Oluşturma

Vaultwarden'da organizasyonlar ücretsizdir (resmi Bitwarden'da ücretlidir):

  1. Web vault'a giriş yapın
  2. OrganizasyonlarYeni Organizasyon
  3. Organizasyon adı ve fatura e-postası girin
  4. Koleksiyonlar ile şifreleri kategorilere ayırın
  5. Üyeleri davet edin ve rol atayın (Admin, Manager, User, Custom)

Bitwarden İstemcileri ile Bağlantı

Tarayıcı Eklentisi

  1. Bitwarden eklentisini yükleyin (Chrome, Firefox, Edge)
  2. Giriş ekranında Sunucu URL'si alanına tıklayın
  3. https://vault.example.com adresini girin
  4. Hesabınızla giriş yapın

Mobil Uygulama

1. Bitwarden uygulamasını açın
2. Giriş ekranında bölge seçiciye dokunun
3. "Self-hosted" seçin
4. Sunucu URL: https://vault.example.com
5. Kaydet ve giriş yapın

Masaüstü Uygulaması

Dosya → Ayarlar → Sunucu URL'si
https://vault.example.com

Yedekleme

hljs bash
# Vaultwarden verilerini yedekle
tar -czf vaultwarden-backup-$(date +%Y%m%d).tar.gz ./vw-data/

# Otomatik yedekleme scripti
cat > /etc/cron.daily/vaultwarden-backup << 'EOF'
#!/bin/bash
BACKUP_DIR="/backups/vaultwarden"
mkdir -p $BACKUP_DIR
tar -czf $BACKUP_DIR/backup-$(date +%Y%m%d-%H%M%S).tar.gz /opt/vaultwarden/vw-data/
# 30 günden eski yedekleri sil
find $BACKUP_DIR -name "backup-*.tar.gz" -mtime +30 -delete
EOF
chmod +x /etc/cron.daily/vaultwarden-backup

REXE VPS sunucularında Vaultwarden mükemmel çalışır. 1 GB RAM ve 1 vCPU ile küçük ekipler için yeterlidir.