VaultwardenをDockerで構築|メモリ15MBで動く1Password代替。HTTPS必須の注意点と最初にやる設定【2026年版】

※2026年10月25日時点の情報です。弊社のサーバーで Vaultwarden 1.37.4(Web Vault 2026.7.0)を動かし、確認しました。設定項目や画面は版によって異なるため、最新の内容については公式 Wiki を確認してください。

1Password や Bitwarden のクラウド版に代えて「パスワードを自分のサーバーに置きたい」と調べると、まず候補に挙がるのが Vaultwarden です。軽いとは言われるものの、実際には何MBで動き、どこでつまずくのかを実測した日本語の記事はあまり見かけません。そこで、弊社の検証サーバーに Docker で構築し、確かめました。

結論:VaultwardenはDockerでメモリ約15MB。HTTPSがつまずきどころ

  • アカウント作成・6件の取り込み・検索を終えたあとも、コンテナのメモリは15MB
  • イメージは402MB、起動から応答までは9秒。1コンテナ・SQLite で完結する
  • http のままではアカウントを作れない。localhost でも変わらず、HTTPS が前提になる
  • ログイン画面から保管庫まで、設定なしで日本語。日本語の項目名・メモも検索できた
  • 公開にあたっては、新規登録の停止・アイコン取得・管理画面・バックアップを最初に決める

検証には架空のログイン情報(ダミーのパスワード)6件を使いました。実際の業務データは登録していません。

Vaultwardenとは:Bitwardenと互換性のある非公式サーバー

Vaultwarden は、パスワード管理サービス Bitwarden のサーバーを別に作り直した非公式の互換サーバーです。Bitwarden 社の公式製品ではありません。ログイン画面の下にも、「Bitwarden の非公式な書き直しであり、Bitwarden のプロジェクトや Bitwarden 社とは関係がない」という英語の注記が表示されます。

画面(Web Vault)は、Bitwarden の Web 画面を Vaultwarden 向けに手直ししたものです。互換サーバーとして、Bitwarden のブラウザ拡張機能やアプリの接続先に指定して使える作りになっています。ただし、今回拡張機能とスマホアプリからの接続は試していません。確認の対象はブラウザの Web 画面だけです。

VaultwardenをDockerで構築する手順と実測値

検証環境は、さくらのクラウドの2コア・メモリ8GB・SSD 40GB(Ubuntu 22.04、Docker 29.8.2)です。測定時はほかのコンテナを止めました。構築のもとにしたのは、公式 Wiki「Using Docker Compose」の例です。この例ではポートをサーバーの全アドレスで開け、SIGNUPS_ALLOWED(新規登録の許可)を “true” にしているため、次のように変更しました。

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: always
    environment:
      DOMAIN: "https://vault.example.jp"   # 実際の URL(https)に合わせる
      SIGNUPS_ALLOWED: "true"   # 自分のアカウントを作ったら "false" に変えて再起動
    volumes:
      - ./vw-data:/data
    ports:
      - 127.0.0.1:8081:80       # 外には出さず、前に置くリバースプロキシから受ける

ポートを 127.0.0.1 に限定すると、サーバーの外からは直接開けなくなります。外部に公開する際は、前に置くリバースプロキシで HTTPS を受けます。SIGNUPS_ALLOWED は既定でも trueです。省略しても、誰でも登録できる状態で起動します。

項目 実測値
イメージ vaultwarden/server:latest、402MB(取得6秒)
起動 up -d が戻るまで4秒、/alive が200を返すまで9秒
メモリ(コンテナ) 起動60秒後 9MB、アカウント作成・取り込み・検索を終えて 15MB
メモリ(サーバー全体の増分) 起動60秒後に30MB
ディスクの増加 384MB
データ(vw-data) 6件を登録して596KB

HTTPS 用に追加した Caddy も約15MB で、Vaultwarden 本体(約15MB)と合わせても約30MB でした。同じサーバーで検証した Paperless・Metabase・Superset・Nextcloud と比較しても、軽さは群を抜いています。数値上は512MB クラスの小さな VPS にも収まる水準です。ただし、実際の512MB プランでの検証はしていません。

VaultwardenにはHTTPSが必須:httpのままではアカウントを作れない

Vaultwarden では、「まず http で立てて触ってみる」という進め方ができません。http の URL で Web 画面を開き、アカウントを作ろうとしたところ、「エラーが発生しました。Insecure URL not allowed. All URLs must use HTTPS.」と表示され、先へ進めませんでした。127.0.0.1 と localhost のどちらでも同じです。Web Vault 2026.7.0 には、API と通知の URL が https:// で始まらなければ処理を止める仕組みがあるためです(開発モードを除く)。

検証では Caddy(caddy:2-alpine)の tls internal を使い、自己署名の証明書で HTTPS 化しました。この方法ではブラウザに証明書の警告(NET::ERR_CERT_AUTHORITY_INVALID)が表示されるため、「詳細設定」から先へ進んで確認しています。自己署名は検証用です。本番で利用する場合は、独自ドメインと正式な証明書(Caddy や Traefik などのリバースプロキシで Let’s Encrypt)を先に用意してください。

Vaultwardenの画面は日本語? 取り込みと検索もチェック

ブラウザの言語が日本語であれば、ログイン画面・アカウント作成・パスワード設定・保管庫・インポート画面は最初から日本語で表示されます。設定は不要です。

Vaultwardenのログイン画面。「ログイン」「メールアドレス」「続ける」「アカウントの作成」が日本語で表示され、下部にWeb Vault 2026.7.0とBitwarden非公式である旨の注記がある
ブラウザの言語に合わせて、最初から日本語で出るログイン画面(Vaultwarden 1.37.4/Web Vault 2026.7.0、2026年10月25日に弊社で撮影)

一方、英語のままの部分も残っています。アカウント作成直後に出る拡張機能の案内、「You’re in! Welcome to Bitwarden」のツアー、保管庫上部のチェックリスト(Get started with your vault)、インポート画面にあるフォルダーの説明文などです。毎日使う画面ではないため、困る場面は少ないはずです。

データの取り込みには、Bitwarden 形式の CSV を貼り付けました。内訳はログイン5件・セキュアメモ1件・フォルダー3つ(経理・社内・広報)の6件です。日本語の項目名・メモ・フォルダー名も、そのまま取り込めました。

Vaultwardenで「データを保管庫にインポートしました。」と表示された画面。ログイン5件・セキュアメモ1件・フォルダー3つの合計6件で、左にはフォルダー「経理」「広報」「社内」が並ぶ
Bitwarden 形式の CSV で架空のデータ6件を取り込んだ結果。日本語の項目名・フォルダー名もそのまま入った(2026年10月25日に弊社で撮影)

検索では「バンキング」で「ネットバンキング(検証用)」がヒットし、部分一致で探せることを確認しました。メモ欄にだけ記載した「月末」でも、同じ項目が見つかっています。検索は復号後のブラウザ内で行われるため、検索語がサーバーへ送られることはありません。

Vaultwardenの保管庫で「バンキング」と検索し、「ネットバンキング(検証用)」が1件表示された画面
「バンキング」の部分一致で「ネットバンキング(検証用)」がヒット。上部のチェックリストは英語のまま(2026年10月25日に弊社で撮影)

サーバーにある SQLite の中身も調べました。項目名とパスワードはいずれも「2.xxxx|xxxx」形式の暗号文になっており、日本語の文字列は平文では保存されていません。サーバーの管理者であっても、中身を読めない作りです。

Vaultwardenの公開前に済ませたい5つの設定

設定 既定と弊社での確認内容 やること
HTTPS http ではアカウントを作れない リバースプロキシで独自ドメインと正式な証明書を用意し、DOMAIN に https の URL を設定する
SIGNUPS_ALLOWED 既定は true。メールサーバーが未設定の場合、メール確認なしで誰でもアカウントを作れた 自分の分を作成したら false にする。公式 Wiki によれば、登録を停止しても管理画面から招待できる
サイトのアイコン取得 サーバーがログイン項目の URL のドメインへアイコンを取りに行く(vw-data/icon_cache に保存)。利用しているサービスが外向きの通信に出る 気になる場合は DISABLE_ICON_DOWNLOAD=true(または ICON_SERVICE の設定)
管理画面(/admin) ADMIN_TOKEN が未設定なら無効(今回は未使用) 利用する場合は ADMIN_TOKEN を設定する。公式 Wiki では argon2 でハッシュ化した値を推奨
バックアップ データはすべて vw-data に保存される SQLite の DB と rsa_key.pem を含め、vw-data を定期的に別の場所へ保存する。添付ファイルを使う場合は attachments も

また、アカウント作成時の「このパスワードの既知のデータ流出を確認」には、既定でチェックが入っています。パスワードのハッシュの先頭を外部のサービスに問い合わせる機能です。今回はオフにしてアカウントを作成しました。外部への問い合わせを避けたい場合は、チェックを外してください。

パスワード管理は、サービスが止まるとすべてのログインに困ります。サーバーを立てた日のうちに、バックアップの置き場所と復元の手順まで決めることを前提にしてください。

まとめ:軽い1Password代替のVaultwarden。ドメインと証明書は先に用意

  • Vaultwarden 1.37.4 は1コンテナ・SQLite で動き、メモリ15MB・イメージ402MB・起動9秒
  • Bitwarden 互換の非公式サーバーであり、Bitwarden 社の製品ではない
  • http のままではアカウントを作れないため、独自ドメインと正式な証明書を先に用意する
  • 画面は最初から日本語。日本語の項目名・メモの取り込みも、部分一致検索も問題なし
  • 公開前に SIGNUPS_ALLOWED=false、アイコン取得、ADMIN_TOKEN、vw-data のバックアップを決める
  • 拡張機能・スマホアプリからの接続と、多人数での運用は未検証

Vaultwarden の概要と、1Password の代わりになるほかの OSS は OSSMatch にまとめています。1Password の料金は変更されることがあるため、比較する際は公式サイトで確認してください。

「社内のパスワード管理を自前のサーバーに移したい」「HTTPS とバックアップまで含めて設計したい」とお考えの場合は、合同会社Edel Hearts のOSS導入支援でご相談を受け付けています。弊社が実際に構築し、HTTPS でつまずいた点も含めて率直にお伝えします。

出典