【Umbrel v1.5】VaultwardenをTor無しで使うには
https通信が必要です。そのためにはドメイン名と証明書が必要です。
Tailscaleを使えばその両方が用意されているし、VPN経由でパスワードマネージャーたるVaultwardenにアクセスすることになるのでセキュリティも高いかと。アプリストアにリバースプロキシとして使えるNginxがあるので、これを使ってVaultwardenが使えるように構成を作ります。
用意するもの
- Umbrel Home v1.5
- 純正品でなくてもOK。ラズパイUmbrelでも使えるはず。下記3つのアプリが使えればヨシ。UmbrelOSが古すぎる場合はわからん。
インストールするアプリ
- Tailscale
- Nignx Proxy Manager
- Vaultwarden
<手順>
1. 上記3つのアプリをインストール
2. ダッシュボードからtailscaleを選び、その後Umbrel Homeを自分のtailscaleネットワークに接続
3. tailscaleダッシュボードからSettings->HTTPSでmanageを選び、MagicDNSとHTTPS Certificateを有効
4. コンソールにてtailscaleコンテナに入り、証明書を作成
Umbrelダッシュボードで設定を選び、詳細設定->Terminal->アプリでtailscaleを選ぶ。以下コマンドを実行。
cd /var/lib
tailscale cert
tailscale certを実行すると以下のように表示される。
For domain, use "umbrel.<自分のtailscaleネットワーク名>".
※ 実際は< >は付いて無いよ。説明のために便宜上表記してますので、コマンド入力や設定を入力する場合は入れないでね。
表示のとおりコマンド実行すると1,2分ほどして証明書を発行される。
tailscale cert umbrel.<自分のtailscaleネットワーク名>
ウィンドウ下のxを選んでターミナルを閉じる。
5. 証明書をダウンロード
同じく、詳細設定->TerminalでUmbrelOSを選ぶ。以下コマンドを実行。
Downloadsフォルダに証明書一式をコピーする。
cd ~/umbrel/app-data/tailscale/data
cp umbrel* ~/umbrel/home/Downloads
ウィンドウ下のxを選んでターミナルを閉じる。
UmbrelダッシュボードからFilesを選ぶ。左のお気に入りからDownloadsを選ぶ。
2つのファイルをダウンロードする。
ダウンロードしたら右上xで閉じる。
6.Nginx Proxy ManagerでVaultwardenへのリバースプロキシを設定
Nginx Proxy Managerをダッシュボードから選んで起動。
※右上で表示言語を選べます。
6.1 証明書の追加
メニューから証明書->証明書の追加->カスタム証明書を選ぶ。
以下を入力する。
名前:umbrel.<自分のtailscaleネットワーク名>
証明書キー: 先程ダウンロードしたファイル名末尾がkeyのファイルを選択
証明書: 先程ダウンロードしたファイル名末尾がcrtのファイルを選択
保存する。
保存完了したら以下のように表示される。

6.2 プロキシホストの追加
メニューからホスト->プロキシホストを選ぶ。
プロキシホストを追加を選ぶ。
詳細に以下を入力する。
ドメイン名: umbrel.<自分のtailscaleネットワーク名>
スキーム: http
転送ホスト名/IP: umbrel.local
転送ポート: 80

続いてカスタムロケーションのタブを選ぶ。
以下を入力する。
Location: /vw
スキーム: http
転送ホスト名/IP: vaultwarden_server_1
転送ポート: 8089

続いてSSLのタブを選ぶ。
SSL証明書のプルダウンメニューで先ほど追加したtailscale証明書を選ぶ。
SSLを強制、HTTP/2サポートにチェック入れる。

右下の保存を選ぶ。
完了すると以下のようになる。

Nginx Proxy ManagerのWebページを閉じる。
7.Vaultwardenのdocker-compose.yamlを編集
ダッシュボードでVaultwardenを右クリックし、停止を選ぶ。
詳細設定->TerminalでUmbrelOSを選ぶ。
以下コマンドを実行。
cd ~/umbrel/app-data/vaultwarden
mkdir hooks
cd hooks
touch pre-start
chmod +x pre-start
<なぜこうなのか>
Umbrelはhooksディレクトリにpre-startがあるとアプリ起動前にこのpre-startスクリプトを実行する。
このスクリプトにVaultwardenにhttpsで接続するために必要なドメイン名の入った環境変数設定を入れる。
つづいて以下コマンドを実行してnanoエディタでpre-startを編集する。
nano pre-start
中身はこのように編集する。
#!/usr/bin/env bash
set -euo pipefail
export DOMAIN=https://umbrel.<自分のtailscaleネットワーク名>:40443/vw
※ダッシュボードのターミナルだとコピペできないのでSSHでやると良いかも。
保存したらターミナルを終了する。
ダッシュボードでVaultwardenを右クリック、開始を選ぶ。
Webブラウザのアドレスバーに以下を入力してVaultwardenのページが表示されたら成功です。ブックマークしておきましょう。
末尾の/を忘れずに。
https://umbrel.<自分のtailscaleネットワーク名>:40443/vw/

※ダッシュボードから入れないのは変わりません。
おわり

