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.
İç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
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"
# 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
# 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ı
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ı
# 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ı
# 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ı
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 Users → Invite User ile e-posta daveti gönderebilirsiniz.
# 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):
- Web vault'a giriş yapın
- Organizasyonlar → Yeni Organizasyon
- Organizasyon adı ve fatura e-postası girin
- Koleksiyonlar ile şifreleri kategorilere ayırın
- Üyeleri davet edin ve rol atayın (Admin, Manager, User, Custom)
Bitwarden İstemcileri ile Bağlantı
Tarayıcı Eklentisi
- Bitwarden eklentisini yükleyin (Chrome, Firefox, Edge)
- Giriş ekranında Sunucu URL'si alanına tıklayın
https://vault.example.comadresini girin- 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
# 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.
İlgili Makaleler
Coolify Kurulumu: Self-Hosted PaaS ile Uygulama Deployment
Coolify kurulumu, Docker ve Git entegrasyonu, uygulama deployment, veritabanı yönetimi, SSL sertifikaları, environment variables ve Heroku/Netlify alternatifi self-hosted PaaS.
Nextcloud Kurulumu: Self-Hosted Bulut Depolama ve İşbirliği
Nextcloud kurulumu Docker ile, Apache/Nginx yapılandırması, veritabanı kurulumu, SSL sertifikası, dosya senkronizasyonu, uygulama mağazası ve performans optimizasyonu.
Portainer ile Docker Yönetimi: Web Arayüzlü Konteyner Kontrolü
Portainer CE kurulumu, Docker ve Kubernetes yönetimi, stack deployment, volume/network yönetimi, kullanıcı yetkilendirme, webhook ve GitOps entegrasyonu.