コンテンツにスキップ

ファイルからキーをインポートする

セットアップ

ソース、ダウンローダー、メディアサーバー、字幕サイト、メールの情報を 1 つのファイルに書いてインポートすれば、Settings でキーを 1 つずつ入力せずに済みます。

  • HolyArrs が Docker で動いていて、設定が /config にあること。
  • Settings > API > API keys(設定 > API > API キー)でオーナーの API キーを作れること。

ファイルをインポートする

ファイルをインポートする へのリンク
  1. holyarrs-secrets.template.yaml を holyarrs-secrets.yaml にコピーします。

  2. 使うものだけ入力します。残りは空のままにします。空の項目はスキップされます。

  3. 自分だけが読めるようにします:

    Terminal window
    chmod 600 holyarrs-secrets.yaml
  4. 読み取り専用でコンテナにマウントします:

    volumes:
    - /srv/holyarrs/config:/config
    - /srv/holyarrs/holyarrs-secrets.yaml:/run/secrets/holyarrs.yaml:ro
  5. Settings > API > API keys で、admin(管理者)スコープのオーナー API キーを作ります。ファイルの holyarrs ブロックに、アドレス http://127.0.0.1:6262 と一緒に入れます。

  6. 試しに実行します。何も変更されません:

    Terminal window
    docker exec holyarrs /holyarrs import-secrets -file /run/secrets/holyarrs.yaml -dry-run

    項目ごとに would set の行が 1 つ表示されます。

  7. 実際に実行します(同じコマンドから -dry-run を外します)。set の行と終了コード 0 が表示されます。

  8. 新しいソースとダウンローダーを確認してから、再開します。新しいメディアサーバーと通知をテストしてから、オンにします。

  9. ホスト側でファイルを削除します(ファイルを削除するを参照)。API キーも、もう不要なら削除します。

各ブロックが何になるか

各ブロックが何になるか へのリンク
ファイル内 作られるもの
trakt.client_id Trakt のアプリキー(Settings > Outside lists(設定 > 外部リスト))。
tmdb, tvdb 古いファイルとの互換のために受け付けます。メタデータにキーは不要です。
opensubtitles, subdl 自分のアカウントを設定した字幕サイト。
addic7ed Addic7ed の字幕サイト。番組のみです。
indexers エントリごとにソースが 1 つ。paused(一時停止中)の状態です。
jackett, prowlarr 同じアドレスでキーのない indexers エントリに、このキーが入ります。
qbittorrent, sabnzbd ダウンローダー。paused の状態です。
nzbget, transmission, deluge スキップされます。インポートではまだ設定できないため、Settings > Downloaders(設定 > ダウンローダー)で追加します。
jellyfin, emby, plex メディアサーバー。テストするまで off(オフ)です。
smtp, discord, webhook 通知の「Email」「Discord」「Webhook」。テストするまで off です。
radarr, sonarr, lidarr, prowlarr, bazarr, seerr Move from other apps(ほかのアプリからの移行)用に保存されるキー。
holyarrs 動作中の HolyArrs に接続するためだけに使います。保存されません。

すべてのキーは、Settings で入力したものと同じく、暗号化された保管庫に入ります。

ローカルネットワークのスイッチ

ローカルネットワークのスイッチ へのリンク

アドレスのあるブロックには allow_local_network: true を付けられます。付けると、その項目はこのマシンや自宅のネットワーク(192.168.x.x、10.x.x.x、コンテナ名)に到達できます。付けないと、その項目はインターネットにしか到達できず、自宅にあるダウンローダーは応答しません。HolyArrs がアドレスからこれを推測することはありません。Settings の May reach the local network(ローカルネットワークへのアクセスを許可)と同じスイッチです。

HolyArrs を停止した状態で

HolyArrs を停止した状態で へのリンク

同じ設定に対して、使い捨てのコンテナを実行します。設定フォルダーに直接保存するので、holyarrs ブロックは不要です:

Terminal window
docker stop holyarrs
docker run --rm -e PUID=1000 -e PGID=1000 \
-v /srv/holyarrs/config:/config \
-v /srv/holyarrs/holyarrs-secrets.yaml:/run/secrets/holyarrs.yaml:ro \
holyarrs/holyarrs:latest import-secrets -file /run/secrets/holyarrs.yaml
docker start holyarrs

アプリと同じ PUID と PGID を使ってください。そうしないと、設定フォルダーの所有者が 1000:1000 になります。PUID のユーザーがファイルを読める必要があります。HOLYARRS_MASTER_KEY_FILE を使っている場合は、使い捨てのコンテナにも同じ変数とマウントを指定します。

もう一度実行しても安全です。一致する項目は unchanged と表示され、変更のあった項目だけが保存されます。

項目 照合に使うもの
ソース 名前
ダウンローダー、メディアサーバー 種類とアドレス
通知 名前と種類
字幕サイト、以前のアプリ 種類

アドレスかキーが変わったソースやダウンローダーは、もう一度一時停止されます。自分で再開したものは、再実行しても動いたままです。indexers エントリの api_key が空の場合、保存済みのキーが残ります。消すには clear_key: true を追加します。

-delete を付けると、何も失敗しなかった実行のあとに限り、コマンドがファイルをゼロで上書きして削除します。読み取り専用のマウントはコンテナの中から削除できないため、ホスト側で削除します:

システム コマンド
Linux shred -u holyarrs-secrets.yaml
macOS rm -P holyarrs-secrets.yaml
Windows Remove-Item holyarrs-secrets.yaml を実行し、ごみ箱を空にします。

SSD やコピーオンライトのファイルシステムでは、古いブロックがディスクに残ることがあります。キーそのものは、暗号化された保管庫に入っています。

症状 原因 対処
ファイルがほかのユーザーにも読める 権限がゆるすぎます。 chmod 600 を実行します。Windows では、自分だけが開けるフォルダーに置きます。
不明なキーでインポートが止まった 示された行に入力ミスかタブがあります。 その行を直します。何も保存されていません。
平文の http が拒否された holyarrs のアドレスがこのマシンのものではありません。 コンテナの中で http://127.0.0.1:6262 を使って実行するか、https を使います。
自宅にあるダウンローダーが応答しない ローカルネットワークの権限がありません。 そのブロックに allow_local_network: true を設定します。
使い捨てのコンテナがフォルダーの所有者を変えた PUID/PGID が違います。 アプリの PUID と PGID を使います。
-delete で何も起きなかった 何かが失敗したか、マウントが読み取り専用です。 ホスト側で削除します。
フラグと終了コード
フラグ 内容 既定値
-file <path> シークレットのファイルです。 なし
-dry-run 何が設定されるかを表示するだけです。 オフ
-config <folder> 設定フォルダーです。 /config
-delete 失敗のない実行のあと、ファイルをゼロで上書きして削除します。 オフ
-forget-move-credentials 保存済みの以前のアプリのキーをすべて削除して、終了します。 オフ
-allow-http-lan 自宅のネットワークのアドレスへの平文の http:// を許可します。警告が表示されます。 オフ
-allow-readable-file ほかのユーザーが読めるファイルを受け付けます。Windows の Docker Desktop では、どのファイルも読める状態として見えます。 オフ

holyarrs のアドレスは https:// か、このマシンだけへの平文の http://(127.0.0.1、::1、localhost)でなければなりません。平文の http では、オーナーのキーとファイル全体が暗号化されずに流れます。

終了コード 意味
0 すべての項目が成功しました。
1 失敗した項目があります。ファイルを直して、もう一度実行します。
2 コマンドラインかファイルに誤りがあります。
出力

項目ごとに 1 行です: set(試しの実行では would set。メモが付くこともあります)、unchanged、skipped (empty)、skipped (why)、failed: why。キー、パスワード、トークン、アドレスは出力されません。履歴には、件数だけのイベントが 1 つ記録されます。ファイル内の値が出てしまうエラーは、代わりに [hidden] と表示されます。

ファイル形式

YAML の、小さく厳密な一部分です:

  • ブロックはスペースのインデントで表し、タブは使いません。リストは - で書きます
  • 値はそのまま書くか、"double quotes" か 'single quotes' で囲みます(シングルクォートの中の ' は 2 つ重ねて書きます)
  • # は、行頭か、クォートの外のスペースのあとでコメントの始まりになります。そのため、 # を含むパスワードはクォートで囲みます
  • &、*、!、|、>、[、{、%、@、バッククォートで始まる値や、: を含む値はクォートで囲みます

不明なキーや 256 KB を超えるファイルがあると、何も保存されないうちにインポート全体が止まります。メッセージにはキーと行が示されます。ファイルへのリンクは拒否されます。

特別なフィールド
フィールド ルール
SABnzbd 完全な api_key が必要です。nzb_key、ユーザー名、パスワードはスキップされ、保存されません。
tvdb.api_key, tvdb.unique_user_key, trakt.redirect_urls 受け付けますが、スキップされます。
smtp.host サーバー名だけです。スキームやポートは付けません。
smtp.port 1 から 65535。既定値は 587 です。
smtp.from メールアドレスを 1 つ、そのまま書きます。
以前のアプリのブロック Move from other apps で Use the saved key(保存済みのキーを使う)を選ぶと使われます。表示されることはなく、オーナー専用で、読み取りが 1 回成功すると削除されます。

HolyArrs は無料です。時間の節約になったら、GitHub でスターを付ける、スポンサーになる、コーヒーをおごるのいずれかで応援してください。