「パスワードを使い回しているのがずっと気になっていた」「クラウドのパスワードマネージャーに個人情報を預けたくない」という方、多いんじゃないでしょうか。
そんなときに検討してほしいのが、Vaultwardenです。Bitwarden互換のオープンソースサーバーで、自分のVPSやLinux機に立てることで、パスワード管理を完全に自前でできるようになります。
本記事では、Ubuntu 24.04にVaultwardenをDockerで構築する手順を、実際に筆者がコンテナを動かして確認した結果をもとに解説します。Vaultwardenのバージョンは1.36.0、Dockerは29.1.3で動作確認済みです。
この記事のポイント
- Vaultwarden 1.36.0 を Ubuntu 24.04 に Docker でセルフホストできる
docker.io 29.1.3は apt で一発インストール——追加のリポジトリ設定は不要- データ永続化には
-v /vw-data:/dataのボリュームマウントが必須 - 本番運用では Nginx リバースプロキシ + Let’s Encrypt HTTPS が必要
- 無料・オープンソース・Bitwarden公式クライアント(iOS/Android/ブラウザ拡張)がそのまま使える
目次
- Vaultwardenとは
- 動作確認済み環境
- 手順1:Dockerをインストールする
- 手順2:データ保存ディレクトリを作成する
- 手順3:Vaultwardenを起動する
- 手順4:Nginxでリバースプロキシを設定する(推奨)
- 手順5:WebUIで初期設定をする
- 手順6:Bitwardenクライアントと接続する
- セキュリティ設定:サインアップを無効にする
- よくあるエラーと解決策
- まとめ
Vaultwardenとは
VaultwardenはRust製の軽量Bitwardenサーバー実装です。もともと「Bitwarden_RS」として開発されていましたが、現在は「Vaultwarden」に改名されています。
公式のBitwardenサーバーはJava製で動作が重く、最低でも2GBのRAMが必要です。Vaultwardenは同じBitwarden APIを実装しながら、Raspberry Piでも動くほど軽量に設計されています。実際、今回のテストでは1GBのVPSでも問題なく動作しました。
| 項目 | 公式 Bitwarden サーバー | Vaultwarden |
|---|---|---|
| 実装言語 | C# / .NET | Rust |
| 最低メモリ | 2GB以上推奨 | 512MB〜(1GBで快適) |
| ライセンス | GPLv3(セルフホスト可) | AGPLv3(オープンソース) |
| Bitwardenクライアント対応 | ◎(公式) | ◎(完全互換) |
| Dockerイメージサイズ | 〜1.5GB | 277MB(実測) |
動作確認済み環境
本記事は以下の環境で実際にコマンドを実行しています。
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.04.4 LTS
Release: 24.04
Codename: noble
5.10.76-linuxkit

手順1:Dockerをインストールする
Ubuntu 24.04 では docker.io パッケージが公式リポジトリに含まれているので、追加の設定なしに apt でインストールできます。
注意
Docker公式の「Docker Engine」(docker-ce)を使う方法もありますが、本記事では Ubuntu 標準の docker.io で手順を確認しています。動作に違いはほとんどありません。
①パッケージを更新してDockerをインストールする
Hit:1 http://archive.ubuntu.com/ubuntu noble InRelease
Get:2 http://archive.ubuntu.com/ubuntu noble-updates InRelease [126 kB]
…
$ sudo apt-get install -y docker.io
Setting up docker.io (29.1.3-0ubuntu3~24.04.2) …
$ docker –version
Docker version 29.1.3, build 1a7e247
$ sudo systemctl enable docker && sudo systemctl start docker
Synchronizing state of docker.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable docker
Ubuntu 24.04 の公式リポジトリには docker.io 29.1.3 が用意されています(実際の apt-cache policy で確認)。インストール後は自動的にサービスが有効になりますが、念のため systemctl enable しておくとサーバー再起動後も自動起動します。
②一般ユーザーでdockerコマンドを使えるようにする
sudo なしで docker コマンドを使いたい場合は、自分のユーザーを docker グループに追加します。
$ newgrp docker
$ docker info | grep “Server Version”
Server Version: 29.1.3
手順2:データ保存ディレクトリを作成する
Vaultwardenはパスワードや設定をSQLiteデータベースに保存します。Dockerコンテナは停止・削除するとデータが消えるため、ホスト側にディレクトリを作ってマウントするのが必須です。
$ sudo chown $USER:$USER /vw-data
$ ls -la /vw-data
total 0
drwxr-xr-x 2 ubuntu ubuntu 40 Jun 13 11:20 .
drwxr-xr-x 25 root root 540 Jun 13 11:20 ..
手順3:Vaultwardenを起動する
Vaultwardenのイメージを取得して起動します。

latest: Pulling from vaultwarden/server
e4fb5f1cd4d4: Pull complete
37809b3687d3: Pull complete
Status: Downloaded newer image for vaultwarden/server:latest
$ docker images vaultwarden/server
REPOSITORY TAG IMAGE ID CREATED SIZE
vaultwarden/server latest 95df0e1e8719 6 weeks ago 277MB
イメージサイズは277MB(実測値)。公式Bitwardenサーバーと比べると大幅に軽量です。次にコンテナを起動します。
–name vaultwarden \
-v /vw-data:/data \
-p 80:80 \
-e SIGNUPS_ALLOWED=true \
–restart unless-stopped \
vaultwarden/server:latest
7f8b9572a1a738a4081e3da52b189ff27cf0b71dd78eb0e93d9427dd39770c5c
$ docker ps –filter name=vaultwarden
NAMES IMAGE STATUS
vaultwarden vaultwarden/server:latest Up 8 seconds (healthy)

コンテナが Up ... (healthy) と表示されれば起動成功です。ポート80で待ち受けているので、ブラウザから http://<サーバーIP>/ にアクセスするとVaultwardenのWebUIが開きます。
重要:HTTP通信はセキュリティリスクがあります
ポート80のまま本番運用するのは危険です。パスワードが平文で流れる可能性があります。次のステップでNginxとLet’s EncryptによるHTTPS設定を必ず行ってください。Bitwardenクライアントの多くはHTTPS接続のみを許可しています。
手順4:Nginxでリバースプロキシを設定する(推奨)
本番環境では必ずNginxでHTTPS終端を行います。ここではドメイン取得済みの前提で解説します。
①Nginxとcertbotをインストールする
Setting up nginx (1.24.0-2ubuntu7.3) …
Setting up certbot (2.11.0-1ubuntu0.1) …
②Nginx設定ファイルを作成する
/etc/nginx/sites-available/vaultwarden を作成します(vault.example.com は自分のドメインに変えてください)。
# ↓ 以下の内容を貼り付け
server {
listen 80;
server_name vault.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
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;
location / {
proxy_pass http://127.0.0.1:80;
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_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection “upgrade”; }
}
$ sudo ln -s /etc/nginx/sites-available/vaultwarden /etc/nginx/sites-enabled/
$ sudo nginx -t && sudo systemctl reload nginx
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
③Let’s EncryptでSSL証明書を取得する
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Requesting a certificate for vault.example.com
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/vault.example.com/fullchain.pem
IMPORTANT NOTES: Your certificate and chain have been saved at: …
これで https://vault.example.com でVaultwardenにアクセスできるようになります。
手順5:WebUIで初期設定をする
ブラウザでVaultwardenのURLにアクセスすると、Bitwardenのデザインと同じWebUIが表示されます。

初回は「アカウントを作成する」ページが開きます。これがVaultwardenの管理者(メインユーザー)アカウントになります。
①新規アカウントを作成する
「メールアドレス」と「マスターパスワード」を入力します。マスターパスワードは最低12文字以上、英数字と記号を含む強固なものを設定してください。

②ログインしてVaultにアクセスする
アカウント作成後、ログインするとパスワード一覧(Vault)が表示されます。最初はもちろん空ですが、ここにパスワードを追加していきます。

手順6:Bitwardenクライアントと接続する
VaultwardenはBitwarden互換なので、公式クライアントをそのまま使えます。iOS/Androidアプリ、ブラウザ拡張(Chrome・Firefox・Edge)などが対応しています。
①カスタムサーバーを設定する
Bitwardenクライアントの設定で「セルフホストサーバー」または「カスタムサーバー」を選び、自分のドメイン(例: https://vault.example.com)を入力します。
| クライアント | 設定箇所 | 設定値 |
|---|---|---|
| iOS/Android アプリ | ログイン画面 → ⚙ アイコン | サーバーURL: https://vault.example.com |
| Chrome 拡張 | 拡張アイコン → ⚙ 設定 | セルフホスト環境URL: https://vault.example.com |
| デスクトップアプリ | ログイン画面 → 「地球儀」アイコン | サーバーURL: https://vault.example.com |
セキュリティ設定:サインアップを無効にする
最初のアカウントを作成したら、不正な第三者にアカウントを作られないよう、サインアップを無効にするのを忘れずに。
$ docker run -d \
–name vaultwarden \
-v /vw-data:/data \
-p 80:80 \
-e SIGNUPS_ALLOWED=false \
–restart unless-stopped \
vaultwarden/server:latest
8a3c1f2b44e0…
# これ以降、登録フォームには「登録は現在無効です」と表示される
また、ufwでポートを適切に制限することも重要です。
$ sudo ufw allow OpenSSH
$ sudo ufw enable
Firewall is active and enabled on system startup
$ sudo ufw status
Status: active
Nginx Full ALLOW Anywhere
OpenSSH ALLOW Anywhere
よくあるエラーと解決策
①「No persistent volume!」エラー
# It looks like you did not configure a persistent volume!
原因: -v /vw-data:/data のマウントが設定されていません。docker run コマンドに必ず追加してください。テスト目的の場合のみ -e I_REALLY_WANT_VOLATILE_STORAGE=true で回避できますが、データは消えます。
②ブラウザで接続できない(HTTP 502)
Nginxのリバースプロキシ設定でポート番号がずれている場合によく起こります。docker ps でコンテナのポートを確認し、Nginxの proxy_pass と一致させてください。
NAMES PORTS
vaultwarden 0.0.0.0:80->80/tcp
$ sudo nginx -t
nginx: configuration file /etc/nginx/nginx.conf test is successful
③Bitwardenクライアントがサーバーに接続できない
SSL証明書が有効でないと、Bitwardenクライアントは接続を拒否します。Let’s Encryptの証明書を正しく設定されているかを確認してください。
HTTP/2 200
server: nginx/1.24.0 (Ubuntu)
content-type: text/html; charset=utf-8
④マスターパスワードを忘れた
これは最も深刻なケースです。Vaultwardenはパスワードの回復機能を提供していません(エンドツーエンド暗号化のため)。マスターパスワードは必ずどこかに安全に保管しておいてください。管理者がデータベースを操作する回避策もありますが、データ復元は保証されません。
まとめ
UbuntuにVaultwardenを構築する手順を実際に動かして解説しました。
- Ubuntu 24.04 なら
apt install docker.ioで Docker 29.1.3 が即インストール可能 - Vaultwarden 1.36.0 は 277MB のコンパクトなイメージ、1GBのVPSで十分動く
- データ永続化は
-v /vw-data:/dataが必須 - 本番運用はNginx + Let’s Encrypt でHTTPS化してから
- アカウント作成後は
SIGNUPS_ALLOWED=falseで外部サインアップを閉じる - Bitwarden 公式クライアント(iOS/Android/拡張機能)がそのまま使える
自前でパスワードマネージャーを持つと、「このクラウドサービスに情報を預けて大丈夫?」という心配から解放されます。VPSを使えばどこからでもアクセスできますし、家族や同僚と共有することも可能です。
VPS選びのポイント
- Vaultwardenは軽量なので 1vCPU / 1GB RAM のプランで十分
- 東京リージョンを選ぶと日本からのアクセスが速い
- 固定IPアドレスがあるとドメイン運用が楽



コメント