Ana içeriğe geç

Docker ile Bitwarden’ı Kendi Sunucunuzda Barındırın: Eksiksiz Kurulum Rehberi

İlk sunucu kurulumundan yapılandırmaya, güncellemelere ve yaygın sorun gidermeye kadar, Bitwarden parola kasanızı Docker ile kendi sunucunuzda çalıştırmaya yönelik pratik bir rehber.
· 15 dk. oku

Yapay Zeka ile Keşfedin

Bu yazıda, yeni kurulmuş bir Ubuntu sunucusunda Docker ile Bitwarden kurulumunu, Let's Encrypt ile HTTPS yapılandırmasını ve yaygın kurulum sorunlarını nasıl ele alacağınızı adım adım göstereceğim.

Docker’a yeni başlıyorsanız, işe koyulmadan önce temel kavramları öğrenmek için Introduction to Docker veya Intermediate Docker kurslarımıza kaydolmanız daha iyi olur — birden fazla konteyner kurulumunu yönetmeden önce temelleri öğrenin.

Bitwarden’ın Docker Dağıtımı Nedir?

Bitwarden’ın resmi Docker tabanlı kurulumu, bir parola yöneticisini kendi koşullarınızda çalıştırmanızı sağlar.

Tek yapmanız gereken bir kurulum betiğini çalıştırmak. Veritabanlarını, web sunucularını elle kurmanıza veya herhangi bir kod yazmanıza gerek yok. Docker, önceden yapılandırılmış konteynerleri çeker, aralarındaki ağı kurar ve her şeyi çalışır hale getirir. Güncellemeler de aynı şekilde çalışır — güncelleme betiğini çalıştırın, gerisini Docker halleder.

Bitwarden’ın Docker kurulumu birlikte çalışan birden çok konteyner olarak çalışır. Kullanıcı arayüzü için bir web kasası konteyneri, istekleri işlemek için bir API konteyneri, şifreli kasa verilerini depolamak için bir veritabanı konteyneri ve ekler ile simgeler için destekleyici servisler elde edersiniz. Docker Compose, bu konteynerlerin birbirleriyle iletişim kurmasını sağlar.

Her şey sizin için önceden yapılandırılmıştır.

Bu çok konteynerli yaklaşım, her bileşenin yalıtılmış çalışması anlamına gelir. Veritabanını değiştirmek isterseniz, web arayüzüne dokunmadan yalnızca o konteyneri yeniden başlatabilirsiniz. Günlükleri kontrol etmek isterseniz, her servisin kendi günlük akışı vardır.

Resmi dağıtım, her şeyi tek bir yapılandırma dosyası üzerinden yönetmek için Docker Compose kullanır; bu da sistemi geleneksel sunucu kurulumlarına kıyasla anlamayı ve bakımını daha kolay hale getirir.

Docker ile Bitwarden’ı Çalıştırmadan Önce Gereksinimler

Bitwarden’ı çalıştırmadan önce birkaç şeye ihtiyacınız var, ancak hiçbiri kurumsal donanım ya da karmaşık kurulumlar gerektirmez.

Bir Linux sunucusu veya VM ile başlayın. Ubuntu Server fazlasıyla yeterlidir. AWS, DigitalOcean veya Linode’dan bir bulut sunucusu kullanabilirsiniz. 2GB RAM ve 20GB depolamaya sahip temel bir örnek, kişisel kullanım veya küçük ekipler için Bitwarden’ı çalıştırmaya yeter.

Docker ve Docker Compose gerçek kurulumu gerçekleştirir. Docker Desktop değil, Docker Engine’i ve Docker Compose’u ayrı paketler olarak kuracaksınız. Çoğu Linux dağıtımı, her ikisini de paket yöneticilerinde sunar.

Bir alan adı gereklidir çünkü Bitwarden’ın çalışması için HTTPS şarttır. Bir IP adresi üzerinde çalıştıramazsınız. Kuruluma başlamadan önce alan adınızı sunucunuzun IP adresine yönlendirmelisiniz.

80 ve 443 numaralı portların açık olması gerekir. 80 numaralı port HTTP trafiğini ve sertifika doğrulamasını, 443 numaralı port ise gerçek HTTPS trafiğini karşılar. Güvenlik duvarınızı ve bulut sağlayıcınızın güvenlik gruplarını her iki porttan gelen bağlantılara izin verecek şekilde yapılandırın.

Ayrıca temel komut satırı becerilerine ihtiyacınız var. Sunucunuza SSH ile bağlanacak, kurulum betiklerini çalıştıracak ve yapılandırma dosyalarını düzenleyeceksiniz. Dizinlerde gezinebiliyor ve sudo ile komut çalıştırabiliyorsanız hazırsınız demektir.

Hepsi bu kadar! Bilmeniz gerekenler var elbette, ama biraz teknolojiye aşina olan hemen herkes bunu yapabilir. Şimdi nasıl yapılacağını göstereyim.

Docker Kullanarak Bitwarden Nasıl Kurulur (Resmi Yöntem)

Bu rehber, alan adı ve DNS yönetimi için Cloudflare, sunucu için ise DigitalOcean Ubuntu droplet kullanır. Başka sağlayıcı ve servisleri de kullanabilirsiniz — ancak sorunsuzca takip etmek isterseniz aynılarını seçmenizi öneririm.

Ortamınızı hazırlama

Önce, Ubuntu 24.04 LTS ile bir DigitalOcean droplet oluşturun. Aylık 12$’lık Basic droplet (2GB RAM, 1 CPU, 50GB SSD), kişisel kullanım veya küçük ekipler için Bitwarden’ı gayet iyi çalıştırır. Daha iyi yanıt süreleri için size yakın bir veri merkezi bölgesi seçin. Mevcut bir SSH anahtarını eklemeyi veya yeni bir tane oluşturmayı unutmayın.

Droplet açıldıktan sonra, DigitalOcean panosundan genel IP adresini not edin.

DigitalOcean droplet details

DigitalOcean droplet ayrıntıları

Sonra, Cloudflare’da DNS’i yapılandırın. Cloudflare hesabınıza giriş yapın ve alan adınızı droplet’in IP adresine işaret eden bir A kaydı ekleyin:

  • Tür: A

  • Ad: vault (veya tercih ettiğiniz alt alan adı)

  • IPv4 adresi: Droplet’inizin IP’si

  • Proxy durumu: Kapalı (gri bulut)

İlk kurulum için Cloudflare proxy’sini kapatın. Let's Encrypt’in alan adı sahipliğini doğrulamak için sunucunuza doğrudan erişmesi gerekir. Bitwarden çalışıp sertifikalar üretildikten sonra proxy’yi etkinleştirebilirsiniz.

Bu yazı için aktif alan adlarımdan birini kullandım:

Cloudflare DNS setup

Cloudflare DNS kurulumu

DNS yayılımı birkaç dakika sürer. Değişikliklerin göründüğünü doğrulamak için şu kabuk komutunu çalıştırın:

nslookup vault.yourdomain.com

Yanıtta droplet’inizin IP adresini görmelisiniz.

Nslookup results

Nslookup sonuçları

Artık SSH üzerinden droplet’inize bağlanabilirsiniz:

ssh root@your-droplet-ip

Ve içeri girdiniz:

Connecting to the Ubuntu instance

Ubuntu örneğine bağlanma

Şimdi ilk iş, sistem paketlerini güncellemek. Aşağıdaki komutu çalıştırın:

apt update && apt upgrade -y

Artık Docker ve Bitwarden’ı kurmaya hazırsınız.

Daha önce belirtildiği gibi, hem Docker’a hem de Docker Compose’a ihtiyacınız olacak. Kurmak için şu komutları çalıştırın:

sudo apt install docker.io docker-compose-v2 -y
sudo systemctl enable docker
sudo systemctl start docker

Şimdi kurulumu doğrulayın:

docker --version
docker compose version

Her iki komut için de sürüm numaralarını görmelisiniz.

Docker and Docker Compose versions

Docker ve Docker Compose sürümleri

Sırada Bitwarden’ı kurmak var.

Bitwarden Yükleyicisini İndirme ve Hazırlama

Bitwarden’ın resmi yükleyicisi GitHub depolarında bulunur. Doğrudan sunucunuza indirebilirsiniz:

curl -Lso bitwarden.sh "https://func.bitwarden.com/api/dl/?app=self-host&platform=linux" && chmod +x bitwarden.sh

Bu, kurulum betiğini indirir ve çalıştırılabilir hale getirir. Betik; Docker imajlarını indirmekten yapılandırma dosyaları oluşturmaya ve dizin yapısını kurmaya kadar her şeyi halleder.

Sıradaki adım, Bitwarden’ın verilerini depolayacağı bir dizin oluşturmaktır:

sudo mkdir /opt/bitwarden

Artık kurulum betiğini buraya taşıyabilirsiniz:

sudo mv bitwarden.sh /opt/bitwarden/
cd /opt/bitwarden

Ve son olarak yükleyiciyi çalıştırın:

sudo ./bitwarden.sh install

Betik, Bitwarden’ın tüm yapılandırma dosyalarını, sertifikalarını, günlüklerini ve veritabanı dosyalarını içeren bwdata adlı bir dizin oluşturur. Her şey burada bulunduğundan, bu dizini düzenli olarak yedekleyin.

Kurulumu Çalıştırma

Yükleyici size birkaç soru sorar. Bunları dikkatli yanıtlayın; yanlış girerseniz baştan başlamanız gerekebilir.

Alan adınızı DNS kayıtlarınızda göründüğü şekilde tam olarak girin. Cloudflare’da vault.yourdomain.com kurduysanız, tam olarak bu ifadeyi girin. https:// veya sonda eğik çizgi kullanmayın.

SSL sertifikaları için Let's Encrypt’i seçin. Yükleyici sertifika üretimini ve yenilemeyi otomatik olarak halleder. Cloudflare proxy’si (turuncu bulut) kullanıyorsanız, Let's Encrypt alanınızı doğrulayabilsin diye ilk kurulumda geçici olarak devre dışı bırakmanız gerekebilir.

E-posta adresinizi girin. Sertifika sona erme hatırlatmaları buraya gelecektir.

Bitwarden installation (1)

Bitwarden kurulumu (1)

Ardından Bitwarden gerekli Docker imajlarını çekecektir. Bir dakika kadar sürebilir ve sonra başka istemler gelir.

Veritabanı için bir ad seçin. Yaratıcı olmaya gerek yok; vault gayet iyi çalışır.

Bitwarden installation (2)

Bitwarden kurulumu (2)

Sonra kurulum, ek Docker imajlarını indirmeye devam edecektir.

Kurulum kimliği ve anahtarını alın. Bitwarden Host sayfasını açın ve yönetici e-postanızı ve bölgenizi girin. Ardından her iki değeri de alacaksınız — kurulum sırasında istenince kopyala/yapıştır yapın.

Bitwarden installation ID and key

Bitwarden kurulum kimliği ve anahtarı

Hepsi bu — kurulum tamamlandı:

Bitwarden installation (3)

Bitwarden kurulumu (3)

Betik, ./bwdata/config.yml ve ./bwdata/env/global.override.env içinde yapılandırma dosyaları üretir. Daha sonra ayarları değiştirmeniz gerekirse bu dosyaları doğrudan düzenleyebilirsiniz.

Geriye sadece Bitwarden’ı başlatmak kaldı:

sudo ./bitwarden.sh start

Docker gerekli tüm imajları çeker ve konteynerleri başlatır. İlk çalıştırmada birkaç dakika sürer. Betik, her konteyner başlarken ilerlemeyi gösterir.

Bitwarden installation (4)

Bitwarden kurulumu (4)

Birkaç dakika sonra terminalde Bitwarden is up and running! mesajını görmelisiniz. Bu, kurulumun başarılı olduğu anlamına gelir ve bir sonraki bölüme hazırsınız.

Bitwarden installation (5)

Bitwarden kurulumu (5)

Kurulumu Doğrulama

Alan adınızı bir tarayıcıda açın. Geçerli bir HTTPS sertifikasıyla Bitwarden oturum açma sayfasını görmelisiniz.

Bitwarden oturum açma sayfası

Sertifika uyarısı görürseniz, Let's Encrypt muhtemelen alanınızı doğrulayamadı. Şunları kontrol edin:

  • DNS kayıtlarınız doğru IP adresine işaret ediyor
  • Güvenlik duvarınızda 80 ve 443 portları açık
  • Cloudflare proxy’sini kullanıyorsanız, geçici olarak devre dışı bırakmayı deneyin

İlk kullanıcıyı oluşturmak için "Create Account"a tıklayın. Bu hesap kasanızın sahibi olur, bu yüzden unutmayacağınız güçlü bir ana parola kullanın. Bitwarden bu parolayı kurtaramaz — kaybederseniz kasa verileriniz gider.

Bitwarden user creation

Bitwarden kullanıcı oluşturma

Hesabınızı oluşturduktan sonra, her şeyin çalıştığını doğrulamak için oturum açın. Deneme amaçlı bir oturum açma öğesi oluşturabilir ve doğru kaydolduğunu kontrol edebilirsiniz.

Adding a login item to Bitwarden

Bitwarden’a bir oturum açma öğesi ekleme

Beklendiği gibi çalışıyor; şimdi terminale dönüp her şeyin orada da yolunda olduğunu doğrulayacağım.

Tüm konteynerlerin çalıştığını kontrol etmek için bu komutu çalıştırın:

sudo docker ps

Şunun gibi adlara sahip birden çok konteyner görmelisiniz: bitwarden-web, bitwarden-api, bitwarden-db ve diğerleri.

Runnning containers

Çalışan konteynerler

Herhangi bir konteyner "Restarting" durumunda görünüyorsa veya listelenmiyorsa, şu komutlarla günlükleri kontrol edin:

sudo docker logs bitwarden-api
sudo docker logs bitwarden-web

Başlangıç sorunları genellikle port çakışmaları veya izin sorunlarından kaynaklanır.

Port çakışmaları, 80 veya 443 portlarını başka bir şey kullanıyorsa olur. Çakışan servisi durdurun veya ./bwdata/config.yml içindeki Bitwarden portlarını değiştirin.

Veritabanı başlatma hataları genellikle izin sorunlarıdır. Docker kullanıcısının bwdata dizinine yazabildiğini kontrol edin:

sudo chown -R root:root /opt/bitwarden/bwdata
sudo chmod -R 755 /opt/bitwarden/bwdata

Sertifika üretim hataları, Let's Encrypt’in sunucunuza ulaşamadığı anlamına gelir. Alan adınızın doğru IP’ye işaret ettiğini ve güvenlik duvarınızın 80 ve 443 portlarından gelen trafiğe izin verdiğini doğrulayın.

Konteynerler sürekli yeniden başlıyorsa, kullanılabilir disk alanını ve belleği kontrol edin. Bitwarden’ın tüm servisleri çalıştırması için en az 2GB RAM gerekir.

HTTPS ve Sertifikaların Yapılandırılması

Bitwarden tüm bağlantılar için HTTPS gerektirir. Düz HTTP üzerinden çalıştırmanın bir yolu yoktur.

Bitwarden’ın tarayıcı uzantıları ve mobil uygulamaları HTTP uç noktalarına bağlanmayı reddeder. Protokolün kendisi, kasanızdaki verileri aktarım sırasında korumak için şifreli bağlantılar gerektirir.

Kurulum betiği Let's Encrypt sertifikalarını ayarlar. Let's Encrypt, SSL/TLS sertifikaları veren ve yenilemeleri yöneten ücretsiz bir sertifika otoritesidir. Kurulum sırasında alan adınızı girdiğinizde, betik Let's Encrypt’in ACME protokolü üzerinden otomatik sertifika oluşturmayı yapılandırır.

Sertifikalar 90 gün sonra sona erer, ancak Bitwarden’ın Docker kurulumu otomatik yenilemeyi içerir. Bir cron görevi sona yaklaşan sertifikaları kontrol eder ve süresi dolmadan yeniler. El ile yapmanız gereken bir şey yoktur.

Özel sertifikalar bazı durumlarda mantıklıdır. Eğer SSL sonlandırmasını zaten gerçekleştiren bir ters proxy arkasında Bitwarden çalıştırıyorsanız, Let's Encrypt’i devre dışı bırakabilir ve sertifikaları proxy’nin yönetmesine izin verebilirsiniz. Kuruluşunuzun dahili bir sertifika otoritesi varsa, Bitwarden’ı bu sertifikaları kullanacak şekilde yapılandırabilirsiniz.

Özel sertifikaları kullanmak için ./bwdata/config.yml dosyasını düzenleyin ve ssl_certificate_path ile ssl_key_path değerlerini sertifika dosyalarınıza yönlendirin.

Using custom certificates docker bitwarden

Özel sertifikaların kullanımı

Sonra Bitwarden’ı yeniden başlatın:

sudo ./bitwarden.sh restart

Sertifika yenilemesi başarısız olduğunda, önce günlükleri kontrol etmelisiniz:

sudo docker logs bitwarden-nginx

Yaygın yenileme hataları şunlarda ortaya çıkar:

  • Alan adınızın DNS’i değişmiş ve artık sunucuyu göstermiyor
  • Cloudflare proxy’si (turuncu bulut) etkin ve Let's Encrypt doğrulamasını engelliyor
  • 80 numaralı port engelli, ACME zorluklarının tamamlanmasını engelliyor
  • Sertifika dosyalarının izinleri hatalı

Altta yatan sorunu düzeltin ve ardından yenilemeyi elle tetikleyin:

sudo docker exec bitwarden-nginx certbot renew

Bu başarılı olursa, otomatik yenileme cron görevi gelecekte çalışacaktır.

E-posta (SMTP) Yapılandırması

Bitwarden’ın kullanıcı davetlerini, parola sıfırlama bağlantılarını ve iki faktörlü kimlik doğrulama kodlarını gönderebilmesi için e-posta gerekir.

SMTP yapılandırılmamışsa kullanıcılar parolalarını sıfırlayamaz. Kuruluşunuza ekip üyelerini davet edemezsiniz. Acil durum erişim istekleri çalışmaz. Sistem çalışır, ancak kritik hesap kurtarma ve kullanıcı yönetimi özelliklerini kaybedersiniz.

SMTP ayarları ./bwdata/env/global.override.env dosyasında bulunur.

SMTP settings file docker bitwarden

SMTP ayar dosyası

Bu dosyayı açın ve e-posta sağlayıcınızın yapılandırmasını ekleyin:

globalSettings__mail__replyToEmail=[email protected]
globalSettings__mail__smtp__host=smtp.gmail.com
globalSettings__mail__smtp__port=587
globalSettings__mail__smtp__ssl=false
globalSettings__mail__smtp__username=[email protected]
globalSettings__mail__smtp__password=your-app-password

Biçim, iç içe geçmiş yapılandırmayı temsil etmek için çift alt çizgi kullanır. Her __ ayar hiyerarşisinde bir seviyeyi ayırır.

Dosyayı düzenledikten sonra Bitwarden’ı yeniden başlatmayı unutmayın:

sudo ./bitwarden.sh restart

Yönetim panelinden bir test e-postası göndererek veya parola sıfırlama isteği oluşturarak e-posta teslimatını test edin.

İşte kaçınmak isteyeceğiniz bazı yaygın SMTP hataları:

  • Düzenli e-posta parolanızı uygulamaya özel parola yerine kullanmak. Çoğu sağlayıcı SMTP erişimi için özel bir parola oluşturmanızı ister. Gmail bunlara "Uygulama Parolaları" der ve Google Hesabı güvenlik ayarlarından oluşturabilirsiniz.

  • Yanlış port numaraları. 587 portu STARTTLS bağlantılarını, 465 portu SSL/TLS’i kullanır; 25 portu genellikle bulut sağlayıcıları tarafından engellenir. Bir port çalışmazsa diğerini deneyin.

  • SSL/TLS karışıklığı. 587 portunda STARTTLS için ssl=false, 465 portunda doğrudan SSL için ssl=true ayarlayın. Bu ayarların karıştırılması bağlantı hatalarına yol açar.

  • Giden SMTP’nin güvenlik duvarı tarafından engellenmesi. Bazı bulut sağlayıcıları varsayılan olarak 25 numaralı portu engeller. Bunun yerine genellikle engellenmeyen 587 veya 465’i kullanın.

E-postalar gönderilmiyorsa, API konteyner günlüklerini kontrol edin:

sudo docker logs bitwarden-api

SMTP bağlantı hataları veya kimlik doğrulama hatalarına bakın. Günlüklerde e-posta teslimatında tam olarak neyin yanlış gittiği gösterilir.

Bitwarden’ı Güncelleme ve Yedekleme

Kendi sunucunuza kurulumla birlikte manuel yedekleme ve güncelleme zahmeti de gelir. Neyse ki, bunları yapmak kolaydır.

Bitwarden’ı Güncelleme

Güncellemeden önce, Bitwarden’ı durdurun ve verilerinizi yedekleyin. Güncellemeler başarısız olabilir veya sorun çıkarabilir; bir şeyler ters giderse geri almanın bir yoluna ihtiyacınız var.

cd /opt/bitwarden
sudo ./bitwarden.sh stop

Tüm bwdata dizinini yedekleyin:

sudo tar -czf bitwarden-backup-$(date +%Y%m%d).tar.gz bwdata/

Bu yedeği harici bir sürücüye veya farklı bir sunucuya gibi güvenli bir yere taşıyın.

Şimdi Bitwarden’ı şu komutla güncelleyin:

sudo ./bitwarden.sh update

Güncelleme betiği en yeni Docker imajlarını çeker, gerekiyorsa yapılandırma dosyalarını günceller ve tüm konteynerleri yeniden başlatır. Genellikle birkaç dakika sürer.

Updating Bitwarden

Bitwarden’ı güncelleme

Güncelleme tamamlandıktan sonra, web kasanıza giriş yaparak ve verilerinizin sağlam olduğunu kontrol ederek her şeyin çalıştığını doğrulayın.

Güncelleme bir şeyi bozarsa, yedeğinizi şu şekilde geri yükleyin:

sudo ./bitwarden.sh stop
sudo rm -rf bwdata/
sudo tar -xzf bitwarden-backup-YYYYMMDD.tar.gz
sudo ./bitwarden.sh start

Yedeklemeler

bwdata dizini, Bitwarden’ın çalışması için gereken her şeyi içerir. Bunu düzenli olarak yedeklemelisiniz.

Bu dizin şunları içerir:

  • Tüm şifrelenmiş parolalarınızın bulunduğu kasa veritabanı
  • SSL sertifikaları
  • Yapılandırma dosyaları
  • Günlükler ve ekler
  • Docker Compose tanımları

Tutarlılığı sağlamak için yedeklemeden önce Bitwarden’ı durdurun:

sudo ./bitwarden.sh stop
sudo tar -czf bitwarden-backup-$(date +%Y%m%d).tar.gz bwdata/
sudo ./bitwarden.sh start

Yedekleri birden fazla yerde saklayın. Birini sunucuda, birini farklı bir makinede ve mümkünse birini de bulut depolamada tutun.

Yedekten geri yüklemek için Bitwarden’ı durdurun, mevcut bwdata dizinini silin, yedeğinizi çıkarın ve yeniden başlatın. Bu süreç, başarısız bir güncellemeyi geri almaya benzer.

Hatta, kasanızdaki veriler ne sıklıkla değişiyorsa ona göre günlük veya haftalık çalışan bir cron göreviyle yedeklemeyi otomatikleştirebilirsiniz.

Docker’da Bitwarden Çalıştırırken Yaygın Sorunlar

Temiz bir kurulumla bile sorunlarla karşılaşabilirsiniz. İşte en yaygın olanları nasıl teşhis edeceğiniz.

Port çakışmaları, 80 veya 443 portlarını başka bir servis zaten kullanıyorsa olur. Hangi servislerin bu portları kullandığını kontrol edin:

sudo netstat -tlnp | grep ':80\\|:443'

Apache, Nginx veya başka bir web sunucusunun çalıştığını görürseniz, ya o servisi durdurmanız ya da Bitwarden’ın portlarını değiştirmeniz gerekir. Portları değiştirmek için ./bwdata/config.yml dosyasını düzenleyin ve http_port ile https_port değerlerini 8080 ve 8443 gibi farklı değerlere ayarlayın. Ardından yeniden başlatın:

sudo ./bitwarden.sh restart

Sertifika hataları, tarayıcı uyarıları veya Bitwarden’ın başlamayı reddetmesi şeklinde ortaya çıkar. nginx konteyner günlüklerini şu komutla kontrol edin:

sudo docker logs bitwarden-nginx

ACME zorluğu hataları veya sertifika doğrulama hatalarına bakın. En yaygın nedenler şunlardır:

  • DNS henüz sunucunuzu göstermiyor
  • Cloudflare proxy’si Let's Encrypt doğrulamasını engelliyor
  • 80 numaralı port güvenlik duvarınız tarafından engellenmiş
  • Yapılandırmanızdaki alan adı, DNS kayıtlarınızla eşleşmiyor

DNS veya güvenlik duvarı sorununu düzeltin ve ardından sertifikaları elle isteyin:

sudo docker exec bitwarden-nginx certbot renew --force-renewal

Konteynerlerin başlamaması genellikle veritabanı sorunları veya eksik dosyalar anlamına gelir. Hangi konteynerlerin çalıştığını görmek için şunu çalıştırın:

sudo docker ps -a

"Exited" veya "Restarting" durumundaki konteynerlerde sorun vardır. Günlüklerini kontrol edin:

sudo docker logs bitwarden-db
sudo docker logs bitwarden-api

Veritabanı başlatma hataları, bwdata dizininde izin sorunları olduğu anlamına gelir. İzinleri düzeltin:

sudo chown -R root:root /opt/bitwarden/bwdata
sudo chmod -R 755 /opt/bitwarden/bwdata

Konteynerler hâlâ başlamıyorsa, disk alanını kontrol edin:

df -h

Bitwarden’ın düzgün çalışması için en az birkaç GB boş alana ihtiyaç duyduğunu unutmayın.

SMTP’nin çalışmaması, parola sıfırlama ve kullanıcı davetlerini engeller. Bir e-posta göndermeyi denerken API günlüklerini kontrol ederek önce SMTP ayarlarınızı test edin:

sudo docker logs -f bitwarden-api

Bir parola sıfırlama girişimini tetikleyin ve günlüklerde SMTP hatalarını izleyin. En yaygın sorunlar şunlardır:

  • Yanlış kullanıcı adı veya parola (normal parolanız değil, uygulamaya özel parola kullanın)
  • Yanlış port veya SSL ayarları
  • Giden SMTP bağlantılarının güvenlik duvarı tarafından engellenmesi
  • E-posta sağlayıcısının ek kimlik doğrulama adımları gerektirmesi

Sağlayıcınızın dokümantasyonuyla tam olarak eşleştiğinden emin olmak için ./bwdata/env/global.override.env içindeki SMTP ayarlarınızı doğrulayabilirsiniz. Barındırıcı adı veya porttaki küçük yazım hataları bile e-posta teslimatını bozar.

SMTP ayarlarını düzelttikten sonra Bitwarden’ı yeniden başlatın ve tekrar test edin.

Bitwarden vs Vaultwarden (Docker Kullanıcılarının Tercihi)

Vaultwarden, Rust ile yazılmış, Bitwarden sunucusunun resmi olmayan, topluluk tarafından bakım yapılan bir uygulamasıdır.

Bitwarden Inc. ile bağlantılı değildir, ancak tüm resmi Bitwarden istemcileriyle uyumludur. Aynı tarayıcı uzantılarını, mobil uygulamaları ve masaüstü uygulamalarını kullanırsınız. Fark tamamen sunucu tarafındadır.

Kullanıcıların Vaultwarden’ı seçme nedenleri

  • Daha düşük kaynak kullanımı. Vaultwarden, 100MB’tan az RAM’e ihtiyaç duyan tek bir hafif konteynerde çalışır. Resmi Bitwarden çoklu konteyner kullanır ve en az 2GB bellek ister. Küçük bir VPS veya Raspberry Pi üzerinde çalıştırıyorsanız Vaultwarden daha mantıklıdır.
  • Daha basit kurulum. Tek konteyner, daha az hareketli parça demektir. Ayrı veritabanı veya web konteyneri yoktur. Tek bir imaj çekersiniz, tek bir konteyneri yapılandırırsınız, hepsi bu.
  • Bazı premium özellikler ücretli lisans olmadan çalışır. Vaultwarden, resmi Bitwarden’da premium abonelik gerektiren dosya ekleri ve acil durum erişimi gibi özellikleri etkinleştirir.

Vaultwarden ile ödünleşimler

  • Bir topluluk projesidir. Güncellemeler, özel destek personeli olan bir şirketten değil, gönüllülerden gelir.
  • Resmi destek yoktur. Bitwarden Inc., Vaultwarden sorunlarında yardımcı olmaz. Topluluk forumları ve GitHub konuları ile baş başasınız.
  • Olası uyumluluk sorunları. Bitwarden yeni özellikler yayınladığında, Vaultwarden’ın yetişmesi gerekir. Yeni işlevselliğin çalışması genellikle biraz gecikir.

Hangisini kullanmalısınız?

Kurumsal destek, tüm özelliklerle garanti uyumluluk ve istemcileri geliştiren şirketin desteğini istiyorsanız resmi Bitwarden’ı kullanın. Doğru boyutlandırılmış bir VPS üzerinde kaynak gereksinimleri daha az önemlidir.

Kısıtlı donanımda çalışıyorsanız, daha basit bir kurulum istiyorsanız veya premium özelliklere ücret ödemeden ihtiyaç duyuyorsanız Vaultwarden’ı tercih edin. Yalnız, resmi destek yerine kaynak verimliliği seçtiğinizi unutmayın.

Her ikisi de kendi sunucunuzda barındırma için iyi çalışır ve her ikisi de istemcilerin beklediği aynı şifrelemeyle parolalarınızı korur.

Temel Güvenlik En İyi Uygulamaları

Aşikâr olanı söylemek gerekirse, Bitwarden parolalarınızı saklar; bu nedenle yalnızca şifrelemenin ötesinde korumaya ihtiyacınız vardır. Takip edilecek bazı en iyi uygulamalar şunlardır.

Sunucunuzu güncel tutun. Güvenlik yamaları önemlidir; düzenli olarak güncelleme yapın. Şu komutla yapabilirsiniz:

sudo apt update && sudo apt upgrade -y

Kritik yamaların elle müdahale olmadan kurulması için otomatik güvenlik güncellemeleri ayarlayabilirsiniz. Ubuntu’da unattended-upgrades paketini kurun:

sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgrades

Yönetim paneline erişimi kısıtlayın. Bitwarden’ın yönetim arayüzü /admin altında bulunur ve kimlik doğrulama için ayrı bir yönetici belirteci kullanır. Kurulum sırasında güçlü bir belirteç oluşturun ve güvenli bir yerde saklayın. Mümkünse yönetim panelini genel internete açmayın.

Uzak yönetim erişimine ihtiyacınız varsa, /admin yolunu herkese açık bırakmak yerine SSH tünelleme veya VPN kullanın.

Her yerde HTTPS kullanın. HTTPS’i asla devre dışı bırakmayın veya sertifika uyarılarını görmezden gelmeyin. Sertifikalarınız çalışmıyorsa, sorunu geçiştirmek yerine düzeltin. Bitwarden istemcileri iyi bir sebeple HTTP üzerinden bağlanmayı reddeder.

Bitwarden sürümlerini takip edin. Bitwarden’ın GitHub yayınlarına abone olun veya güvenlik güncellemeleri için bloglarını kontrol edin. Yeni bir sürüm çıktığında, güncellemeden önce sürüm notlarını okuyarak nelerin değiştiğini anlayın.

İki faktörlü kimlik doğrulamayı etkinleştirin. Birisi ana parolanızı çalsa bile, 2FA yetkisiz erişimi engeller. Bir kimlik doğrulayıcı uygulaması veya donanım anahtarı kullanın.

Güvenlik duvarı kullanın. Referans olması için, yalnızca gerekli portlara izin verecek şekilde UFW’yi şöyle yapılandırabilirsiniz:

sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable

Diğer her şeyi varsayılan olarak engelleyin.

Ara sıra günlükleri kontrol edin ve olağandışı etkinlik arayın. Başarısız oturum açma girişimleri veya beklenmeyen API çağrılarına bakın:

sudo docker logs bitwarden-api | grep -i "failed\\|error"

Gördüğünüz gibi, kendi sunucunuzda Bitwarden çalıştırmak ara sıra biraz emek gerektirir. Bu da tam kontrolün bedelidir.

Sonuç

Docker, Bitwarden’ı kendi sunucunuzda barındırmayı kolaylaştırır ve kurumsal altyapıya ihtiyacınız yoktur.

Resmi kurulum betiği her şeyi sizin yerinize yapar. Otomatik güncellemeler, sertifika yönetimi ve bir saatten kısa sürede çalışan bir kasa elde edersiniz — hesaplama örneği sağlama ve DNS kurulumunu da dahil edince benim kurulumum yaklaşık 15 dakika sürdü. Çoğu kullanıcı, bu yazıda ele aldıklarımın ötesine geçmeye ihtiyaç duymaz.

Tek sunucu üzerinde temel kurulumla başlayın. Ters proxy’ler, harici veritabanları veya yüksek erişilebilirlik kurulumlarına geçmeden önce yedeklemeler, güncellemeler ve temel sorun giderme konusunda rahat olun. Bu ileri düzey yapılandırmalar, muhtemelen henüz sahip olmadığınız sorunları çözer.

Parolalarınızı üçüncü taraflara emanet etmek istemiyorsanız, doğru yol budur. Ancak kurulumu gereğinden fazla karmaşıklaştırıp bir şeyleri bozmak da istemezsiniz. Resmi Docker dağıtımını çalıştırın, düzenli olarak yedekleyin ve kontrolünüz altında sağlam bir parola yöneticiniz olsun.

Docker hakkında daha fazla öğrenmeye hazır mısınız? Containerization and Virtualization Concepts kursumuzla başlayın ve ardından Docker and Kubernetes ile uygulamada görün.

Dario Radečić

Yazar

Dario Radečić

Hırvatistan merkezli Kıdemli Veri Bilimci. 700’ün üzerinde yayımlanmış makaleyle 10 M+ görüntüleme elde eden, önde gelen bir teknoloji yazarı. TPOT ile Makine Öğrenimi Otomasyonu kitabının yazarı.

FAQs

Kendi sunucumda barındırdığım Bitwarden için yüksek erişilebilirliği nasıl sağlayabilirim?

Yüksek erişilebilirlik, paylaşılan harici bir veritabanı (PostgreSQL veya MySQL gibi) ile bir yük dengeleyicinin arkasında birden fazla Bitwarden örneği çalıştırmayı gerektirir. Her örneği aynı veritabanına bağlanacak ve ekler için paylaşılan depolamayı kullanacak şekilde yapılandırmalısınız. Çoğu kişisel ve küçük ekip dağıtımı için, düzenli yedeklemeler ve belgelenmiş bir geri yükleme süreci, HA mimarisinin karmaşıklığı olmadan yeterli koruma sağlar.

Bitwarden’da SMTP yapılandırması için en iyi uygulamalar nelerdir?

Düzenli e-posta parolanız yerine uygulamaya özel parolalar kullanın ve SMTP ayarlarınızın sağlayıcınızın dokümantasyonuyla birebir eşleştiğini doğrulayın. Yapılandırmadan sonra, parola sıfırlamayı tetikleyerek veya yönetici panelindeki test işlevini kullanarak e-posta teslimatını mutlaka test edin. SMTP kimlik bilgilerinin global.override.env dosyasında güvenle saklandığından ve yetkisiz erişimi önlemek için dosya izinlerinin kısıtlandığından emin olun.

Bitwarden’da 502 Bad Gateway hatasını nasıl gideririm?

sudo docker ps ile tüm konteynerlerin çalışıp çalışmadığını kontrol edin ve "Restarting" durumunda olanları arayın. Hangi servisin başarısız olduğunu belirlemek için sudo docker logs bitwarden-nginx ve sudo docker logs bitwarden-api komutlarıyla nginx ve API konteyner günlüklerini inceleyin. Yaygın nedenler arasında veritabanı bağlantı sorunları nedeniyle API konteynerinin başlamaması, yetersiz bellek veya ters proxy’yi engelleyen sertifika sorunları bulunur.

Bitwarden ile özel sunucu portlarını kullanabilir miyim?

Evet, ./bwdata/config.yml dosyasını düzenleyip http_port ve https_port değerlerini 8080 ve 8443 gibi tercih ettiğiniz değerlere değiştirebilirsiniz. Portları değiştirdikten sonra sudo ./bitwarden.sh restart ile Bitwarden’ı yeniden başlatın. Standart dışı portlar kullanmanın, kasaya erişirken alan adınızın URL’sine port numarasını dahil etmeniz gerekeceği anlamına geldiğini unutmayın.

Bitwarden’da syslog’a günlük kaydını nasıl etkinleştiririm?

Bitwarden’ın Docker konteynerleri varsayılan olarak stdout/stderr’a günlük yazar ve Docker bunları otomatik olarak yakalar. Bu günlükleri konteyner ayarlarında Docker’ın günlük sürücüsünü yapılandırarak syslog’a iletebilirsiniz veya Fluentd ya da Logstash gibi bir günlük biriktirme aracı kullanabilirsiniz. Basit bir syslog entegrasyonu için, konteyner yapılandırmanıza --log-driver=syslog ekleyerek Docker’ın syslog günlük sürücüsünü kullanın; bunun Docker Compose dosyasını elle değişiklik gerektirdiğini unutmayın.

Konular

İlgili