Linux オフラインデプロイメント
この記事では、オフラインまたはエアギャップ環境の自分のサーバーにBitwardenをインストールしてデプロイする手順を説明します。Bitwarden ソフトウェアリリースサポートのドキュメンテーションをご確認ください。
注意
手動インストールは、上級ユーザーのみが行うべきです。Docker技術に非常に詳しく、Bitwardenのインストールに対してより多くのコントロールを望む場合のみ、進めてください。
手動インストールでは、Bitwardenのインストールの特定の依存関係を自動的に更新する能力が欠けています。Bitwardenの一つのバージョンから次のバージョンへアップグレードすると、必要な環境変数の変更、nginx default.conf
の変更、docker-compose.yml
の変更など、あなたが責任を持って変更を行う必要があります。
これらをGitHubのリリースメモで強調しようと思います。Bitwardenのインストールスクリプトで使用される依存関係テンプレートの変更もGitHubで監視することができます。
インストールを進める前に、以下の要件が満たされていることを確認してください:
あなたのサーバーにDockerエンジンとDocker Composeがインストールされ、使用準備が整っています。
インターネットアクセスが可能なマシンを使用して、Bitwardenサーバーリポジトリの
リリースページ
から最新のdocker-stub.zipファイルをダウンロードし、このファイルをサーバーに転送しました。あなたの環境では、オフラインのSMTPサーバーが設定され、アクティブになっています。
備考
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 bitwarden
Bitwardenユーザーのパスワードを設定します:
Bashsudo passwd bitwarden
Docker グループを作成します(まだ存在しない場合):
Bashsudo groupadd docker
Bitwardenユーザーをdockerグループに追加します:
Bashsudo usermod -aG docker bitwarden
Bitwardenディレクトリを作成します:
Bashsudo mkdir /opt/bitwarden
/opt/bitwarden
ディレクトリの権限を設定します:Bashsudo chmod -R 700 /opt/bitwarden
/opt/bitwarden
ディレクトリのBitwardenユーザー所有権を設定します:Bashsudo chown -R bitwarden:bitwarden /opt/bitwarden
注意
あなたが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=
: この変数は空白であるべきです。詳細については、プッシュリレーの設定をご覧ください。チップ
この時点で、すべての
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
サブディレクトリに提供してください。備考
このディレクトリは、
/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 bitwarden/mssql:version
すべての
.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
このページの変更を提案する
どうすればこのページを改善できますか?
技術、請求、製品に関するご質問は、サポートまでお問い合わせください。