🐕

Vaultwardenの利用

2023/01/25に公開

背景

パスワードマネージャーを利用したいが、第三者が運営するクラウドサービスに機密情報を委ねるのも心理的に微妙な気持ちになったりするときがあります。そこでVaultwardenなるものを発見して利用しはじめました。結局クラウド上にサーバを構築しているので、クラウドサービス上に情報を配置しているんですが、それはそう。

必要なもの

ドメイン

docker-compose.yml

docker-compose.yml
version: '3'
services:
  nginx-proxy:
    image: jwilder/nginx-proxy
    container_name: nginx-proxy
    ports:
      - 80:80
      - 443:443
    environment:
      - TZ=Asia/Tokyo
    volumes:
      - /docker/nginx-proxy/certs:/etc/nginx/certs:ro
      - /docker/nginx-proxy/vhost:/etc/nginx/vhost.d
      - /docker/nginx-proxy/html:/usr/share/nginx/html
      - /var/run/docker.sock:/tmp/docker.sock:ro
    restart: always
    labels:
      - com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy=true
    privileged: true

  letsencrypt-nginx-proxy-companion:
    image: nginxproxy/acme-companion
    container_name: nginx-letsencrypt
    environment:
      - TZ=Asia/Tokyo
      - NGINX_PROXY_CONTAINER=nginx-proxy
      - DEAULT_EMAIL="xxxxx@xxxxx"
    volumes:
      - /docker/nginx-proxy/certs:/etc/nginx/certs
      - /docker/nginx-proxy/vhost:/etc/nginx/vhost.d
      - /docker/nginx-proxy/html:/usr/share/nginx/html
      - /docker/nginx-proxy/acme:/etc/acme.sh
      - /var/run/docker.sock:/var/run/docker.sock:ro
    restart: always
    depends_on:
      - nginx-proxy

  vaultwarden:
    image: vaultwarden/server
    container_name: vaultwarden
    environment:
      - TZ=Asia/Tokyo
      - SIGNUPS_ALLOWED=false
      - VIRTUAL_HOST=subdomain.yourdomain.tld
      - VIRTUAL_PORT=80
      - SMTP_HOST=smtp.sendgrid.net
      - SMTP_FROM=xxxxx@xxxxx
      - SMTP_PORT=465
      - SMTP_SECURITY=force_tls
      - SMTP_USERNAME=apikey
      - SMTP_PASSWORD=xxxxx
      - SMTP_AUTH_MECHANISM="Login"
      - LETSENCRYPT_HOST=subdomain.yourdomain.tld
      - LETSENCRYPT_EMAIL=xxxxx@xxxxx
    volumes:
      - /docker/vaultwarden/vw-data:/data
    ports:
      - 33545:80
    restart: always
    depends_on:
      - nginx-proxy

jwilder/nginx-proxyと、nginxproxy/acme-companionというDockerイメージを利用することでhttps対応させています。SIGNUPS_ALLOWED=falseによってサインアップを無効化しているので、初回利用時等、サインアップが必要な際は有効にする必要があります。ドメインとかメールアドレスは適宜書き換えてください。私はSMTPサーバはsendgridを利用しましたが、他を利用する場合はWikiに説明が書いてあるので、そちらを参照してください。

Discussion