Linux オフラインデプロイメント
この記事では、オフラインまたはエアギャップ環境の自分のサーバーにBitwardenをインストールしてデプロイする手順を説明します。Bitwarden ソフトウェアリリースサポートのドキュメンテーションをご確認ください。
warning
手動インストールは、上級ユーザーのみが行うべきです。Docker技術に非常に詳しく、Bitwardenのインストールに対してより多くのコントロールを望む場合のみ、進めてください。
手動インストールでは、Bitwardenのインストールの特定の依存関係を自動的に更新する能力が欠けています。Bitwardenの一つのバージョンから次のバージョンへアップグレードすると、必要な環境変数の変更、nginx default.confの変更、docker-compose.ymlの変更など、あなたが責任を持って変更を行う必要があります。
これらをGitHubのリリースメモで強調しようと思います。Bitwardenのインストールスクリプトで使用される依存関係テンプレートの変更もGitHubで監視することができます。
インストールを進める前に、以下の要件が満たされていることを確認してください:
あなたのサーバーにDockerエンジンとDocker Composeがインストールされ、使用準備が整っています。
インターネットアクセスが可能なマシンを使用して、Bitwardenサーバーリポジトリの
リリースページから最新のdocker-stub.zipファイルをダウンロードし、このファイルをサーバーに転送しました。あなたの環境では、オフラインのSMTPサーバーが設定され、アクティブになっています。
note
Bitwardenは現在、DockerおよびDocker Compose環境でのみサポートされています。Bitwardenのインストールスクリプトと手動インストールの成果物は、BitwardenスタックとKubernetesの広範な知識がなければ、正確にKubernetesマニフェストに変換することはできません。インストールアーティファクトの自動変換は現時点では推奨されておらず、デプロイメント環境が壊れる可能性があります。
最小限 | おすすめ | |
|---|---|---|
プロセッサー | x64、1.4GHz | x64、2GHzデュアルコア |
記憶 | 2GB RAM | 4GB RAM |
ストレージ | 12GB | 25GB |
Dockerバージョン | エンジン19+およびコンポーズ1.24+ | エンジン19+およびコンポーズ1.24+ |
デフォルトでは、Bitwardenはホストマシンのポート80(http)および443(https)を通じて提供されます。これらのポートを開けて、ネットワーク内外からBitwardenにアクセスできるようにしてください。インストール中に異なるポートを選択することもできます。
インターネット経由でBitwardenを提供している場合、特に、ホストマシンを指すDNSレコードを持つドメイン名(例:bitwarden.example.com)を設定することをお勧めします。
私たちは、Bitwardenをインストールし実行するための専用のBitwardenサービスアカウントを持つサーバーを設定することをお勧めします。これにより、サーバー上で実行されている他のアプリケーションからあなたのBitwardenインスタンスが隔離されます。
これらの手順はBitwardenが推奨するベストプラクティスですが、必須ではありません。詳細については、DockerのLinux用のインストール後の手順のドキュメンテーションをご覧ください。
Bitwardenユーザーを作成する:
Bashsudo adduser bitwardenBitwardenユーザーのパスワードを設定します:
Bashsudo passwd bitwardenDocker グループを作成します(まだ存在しない場合):
Bashsudo groupadd dockerBitwardenユーザーをdockerグループに追加します:
Bashsudo usermod -aG docker bitwardenBitwardenディレクトリを作成します:
Bashsudo mkdir /opt/bitwarden/opt/bitwardenディレクトリの権限を設定します:Bashsudo chmod -R 700 /opt/bitwarden/opt/bitwardenディレクトリのBitwardenユーザー所有権を設定します:Bashsudo chown -R bitwarden:bitwarden /opt/bitwarden
warning
あなたがBitwardenユーザー&ディレクトリを作成した場合、bitwardenユーザーとして/opt/bitwardenディレクトリから以下を完了してください。インストール中に問題が発生する可能性があるため、 Bitwarden を root としてインストールしないでください。
あなたのBitwardenサーバーに必要なアセットを構成するためのマシンを設定するには:
新しいディレクトリを
bwdataという名前で作成し、docker-stub.zipをそれに抽出します。例えば:Bashunzip docker-stub-US.zip -d bwdata一度解凍すると、
bwdataディレクトリは、docker-compose.ymlファイルのボリュームマッピングが期待するものと一致します。あなたの希望により、これらのマッピングの位置をホストマシン上で変更することができます。./bwdata/env/global.override.envで、以下の環境変数を編集してください:globalSettings__baseServiceUri__vault=: あなたのBitwardenインスタンスのドメインを入力してください。globalSettings__sqlServer__ConnectionString=: 後のステップで使用するために、RANDOM_DATABASE_PASSWORDを安全なパスワードに置き換えてください。globalSettings__identityServer__certificatePassword: 後のステップで使用するための安全な証明書のパスワードを設定します。globalSettings__internalIdentityKey=:RANDOM_IDENTITY_KEYをランダムなキー文字列に置き換えてください。globalSettings__oidcIdentityClientKey=:RANDOM_IDENTITY_KEYをランダムなキー文字列に置き換えてください。globalSettings__duo__aKey=:RANDOM_DUO_AKEYをランダムなキー文字列に置き換えてください。globalSettings__installation__id=: https://bitwarden.com/hostから取得したインストールIDを入力してください。globalSettings__installation__key=: https://bitwarden.com/hostから取得したインストールキーを入力してください。globalSettings__pushRelayBaseUri=: この変数は空白であるべきです。詳細については、プッシュリレーの設定をご覧ください。tip
この時点で、すべての
globalSettings__mail__smtp__変数とadminSettings__adminsの値も設定することを検討してください。これにより、新しい組織メンバーへの招待をSendするためのSMTPメールサーバーが設定され、システム管理者ポータルへのアクセスが提供されます。
./bwdataから、IDコンテナのための.pfx証明書ファイルを生成し、それをマップされたボリュームディレクトリ(デフォルトでは./bwdata/identity/)に移動してください。例えば、次のコマンドを実行します:Bashopenssl req -x509 -newkey rsa:4096 -sha256 -nodes -keyout identity.key -out identity.crt -subj "/CN=Bitwarden IdentityServer" -days 10950そして
Bashopenssl pkcs12 -export -out ./identity/identity.pfx -inkey identity.key -in identity.crt -passout pass:IDENTITY_CERT_PASSWORD上記のコマンドでは、
IDENTITY_CERT_PASSWORDをステップ2で作成し使用した証明書のパスワードに置き換えてください。identity.pfxを./bwdata/sslディレクトリにコピーしてください。あなたのドメインの名前で
./bwdata/sslにサブディレクトリを作成します。例えば:Bashmkdir ./ssl/bitwarden.example.com信頼できるSSL証明書と秘密鍵を新しく作成された
./bwdata/ssl/bitwarden.example.comサブディレクトリに提供してください。note
このディレクトリは、
/etc/sslのNGINXコンテナにマッピングされています。信頼できるSSL証明書を提供できない場合は、BitwardenクライアントアプリケーションにHTTPSエンドポイントを提供するプロキシでインストールをフロントにしてください。./bwdata/nginx/default.conf:にてすべての
bitwarden.example.comのインスタンスをあなたのドメインに置き換えてください、Content-Security-Policyヘッダーも含めて。ssl_certificateとssl_certificate_keyの変数を、ステップ6で提供された証明書と秘密鍵のパスに設定します。あなたの証明書の設定に応じて、以下のアクションのいずれかを取ってください:
信頼できるSSL証明書を使用している場合は、
ssl_trusted_certificate変数を証明書のパスに設定します。自己署名証明書を使用する場合は、
ssl_trusted_certificate変数をコメントアウトしてください。
./bwdata/env/mssql.override.envで、RANDOM_DATABASE_PASSWORDをステップ2で作成したパスワードに置き換えてください。./bwdata/web/app-id.jsonで、bitwarden.example.comをあなたのドメインに置き換えてください。./bwdata/env/uid.envで、コンテナがそれらの下で実行されるように、前に作成したbitwardenユーザーとグループの UID と GID を設定します。次に例を示します。BashLOCAL_UID=1001 LOCAL_GID=1001
あなたのオフラインマシンで使用するためのDockerイメージを取得するには:
インターネットに接続されたマシンから、
bitwarden/xxx:latestのすべてのdockerイメージをダウンロードします。これらはdocker-compose.ymlファイルにリストされており、docker-stub.zipにあります。各画像を
.imgファイルに保存します。例えば:Bashdocker image save -o mssql.img ghcr.io/bitwarden/mssql:latestすべての
.imgファイルをオフラインのマシンに転送してください。あなたのオフラインマシンで、各
.imgファイルをロードしてローカルのDockerイメージを作成します。例えば:Bashdocker image load -i mssql.img
次のコマンドであなたのBitwardenサーバーを起動してください:
Bashdocker compose -f ./docker/docker-compose.yml up -d
すべてのコンテナが正しく動作していることを確認してください。
Bashdocker ps

おめでとうございます!Bitwardenは現在、https://your.domain.comで稼働しています。それが機能していることを確認するために、ブラウザでウェブ保管庫を訪れてください。
あなたは今、新しいアカウントを登録してログインすることができます。新しいアカウントのメールアドレスを確認するためには、SMTP環境変数(環境変数を参照)を設定する必要があります。
Bitwardenの組織を自己ホスト型で運用する予定がある場合は、組織を自己ホストするを参照して開始してください。
詳細情報は、自己ホスト型FAQをご覧ください。
自己ホスト型のサーバーを手動でインストールし、デプロイした場合の更新は、標準的な更新手順とは異なります。手動でインストールしたサーバーを更新するには:
最新の
docker-stub.zipアーカイブをGitHubのリリースページからダウンロードしてください。新しい
docker-stub.zipアーカイブを解凍し、その内容を現在のbwdataディレクトリの内容と比較し、新しいものをbwdataの既存のファイルにコピーしてください。
しないでください、既存のbwdataディレクトリを新しいdocker-stub.zipアーカイブの内容で上書きしないでください。これは、あなたが行ったカスタム設定作業を上書きすることになります。最新のコンテナイメージをダウンロードし、オフラインマシンに転送してください上記の文書化された通りに。
次のコマンドを実行して、更新された設定と最新のコンテナを使用してサーバーを再起動します:
Bashdocker compose -f ./docker/docker-compose.yml down && docker compose -f ./docker/docker-compose.yml up -d