bitwarden · passwords · manager · npm
Bitwarden (vaultwarden) password manager kurulumu
Halil Yaşarsoy · 22 Eylül 2022

Docker + Portainer + Nginx Proxy Manager + Bitwarden (vaultwarden) On-prem sunucunuzda şifrelerinizi saklayabileceğiniz açık kaynak kodlu bir yazılımdır.
Ben kurulum da ParrotOS kullanacağım fakat aynı kurulum yönlendirmeleri ile ubuntu üzerine de kurabilirsiniz.
Güncellemeleri uygulayarak başlıyoruz
sudo apt-get update & apt-get upgrade

Docker kurulumunu yapıyoruz
curl -fsSL https://get.docker.com -o get-docker.shsudo sh get-docker.sh

Docker-compose kurulumu yapıyoruz
sudo curl -L "https://github.com/docker/compose/releases/download/1.28.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composesudo chmod +x /usr/local/bin/docker-compose

Docker ‘ın yönetimi için portainer kurulumu yapıyoruz. Diğer işlemlere portainer üzerinden devam edeceğiz.
sudo docker volume create portainer_datadocker run -d -p 8000:8000 -p 9443:9443 --name portainer \ --restart=always \ -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_data:/data \ portainer/portainer-ce:latest


https://IP:9443 adresinden portainer’a bağlanıyoruz.

Şifre belirledikten sonra arayüze bağlanmış olacağız.

Stacks -> Add stack diyoruz

Aşağıdaki kodları kendimize göre düzenleyip Deploy the stack butonuna basıyoruz
version: '3'services: bitwarden: image: vaultwarden/server:latest restart: always ports: - 8060:80 - 3012:3012 volumes: - bw-data:/data - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro - bw-data:/log - LOG_FILE=/log/bitwarden.log environment: - WEBSOCKET_ENABLED=true - SIGNUPS_ALLOWED=false - ADMIN_TOKEN=AdminPassword123 - INVITATIONS_ALLOWED=true - SHOW_PASSWORD_HINT=false
nginx-proxy-manager: image: 'jc21/nginx-proxy-manager:latest' ports: - '80:80' - '81:81' - '443:443' environment: DB_MYSQL_HOST: "db" DB_MYSQL_PORT: 3306 DB_MYSQL_USER: "npm" DB_MYSQL_PASSWORD: "npm" DB_MYSQL_NAME: "npm" volumes: - ./data:/data - ./letsencrypt:/etc/letsencrypt
db: image: 'jc21/mariadb-aria:latest' environment: MYSQL_ROOT_PASSWORD: 'npm' MYSQL_DATABASE: 'npm' MYSQL_USER: 'npm' MYSQL_PASSWORD: 'npm' volumes: - ./data/mysql:/var/lib/mysql
volumes: bw-data:
Ngnix ayarları aşağıdaki gibidir. Eklemiş olduğunuz alan adının detaylarını düzenleyerek eklediğinizde çalışacaktır.
Admin paneline sadece lokal den erişelecek şekilde ayarlanmıştır.
location /admin { return 404; } location / { proxy_pass http://IP:8060; 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; proxy_ssl_server_name on; } location /notifications/hub { proxy_pass http://IP:3012; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } location /notifications/hub/negotiate { 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; proxy_pass http://IP:8060; }
Bu yazı işine yaradıysa alkışla
Bu yazı ilk olarak Medium'da yayımlandı.