Immichの外部ライブラリを読み取り専用ソースとして設定する方法

エヴァ・ウォン は テクニカルライター であり ZimaSpaceの常駐ティンカーでもあります。 生涯のオタクであり、 ホームラボとオープンソースソフトウェアに情熱を持っています。彼女は複雑な技術的概念をわかりやすく、 実践的なガイドに翻訳することを専門としています。エヴァはセルフホスティングは楽しくあるべきで、怖がるものではないと信じています。彼女のチュートリアルを通じて、コミュニティが ハードウェアのセットアップを解明する手助けをしています。初めてのNAS構築からDockerコンテナの習得まで。

Immichの外部ライブラリは、管理対象のアップロードツリーの外部にすでに保存されている写真をインデックス化します。元データを読み取り専用でマウントすると、アプリケーションやオペレーターのミスからオリジナルを保護できますが、Immichにはサムネイル、エンコード済み動画、プロフィールデータ、データベースの状態を保存するための書き込み可能なストレージも必要です。

この構成では、信頼ゾーンを2つに分けます。変更不能なソースフォルダーと、書き込み可能な生成データです。大規模なアーカイブを追加する前に、小規模なパイロットライブラリで、検出、メタデータ、サムネイル、再スキャン、削除のテストに合格する必要があります。同じパイロットで、コンテナパス、所有権、復旧計画の整合性も確認できます。

ソースストレージと管理対象ストレージを分けてマッピングする

既存のアーカイブ用にホストパスを選び、/external/family-photosのような別のコンテナパスを指定します。外部アセットと管理対象アセットではライフサイクルのルールが異なるため、Immichのアップロードストレージ配下には置かないでください。

Immichの外部ライブラリワークフローでは、ユーザーに割り当てるパスをサーバーから認識できる必要があります。管理者がホスト側だけのパスをアプリケーションに貼り付けないよう、マウントの両側を記録しておきます。

アップロード、サムネイル、エンコード済み動画、データベースデータ用のImmichの書き込み可能な場所について、通常のバックアップと空き容量の監視が行われていることを確認します。読み取り専用のオリジナルは、生成された状態やライブラリを利用可能にするアセットレコードを保護するものではありません。

読み取り専用のコンテナマウントを適用する

Composeまたはコンテナマネージャーで、読み取り専用フラグを付けたバインドマウントとしてアーカイブを追加します。一般的な構成では、ホストの/srv/photos/archiveをコンテナ内の/external/archiveに、:roを付けてマッピングします。

すべての親ディレクトリで、コンテナプロセスに通過および読み取り権限を付与します。読み取り専用でも権限が不要になるわけではありません。ディレクトリに実行権限がないと、個々のファイルが読み取り可能でも検出できません。

ソースがネットワーク共有の場合は、コンテナの起動前にホスト側のマウントを安定させます。Immichのネットワーク共有の信頼性ガイドでは、利用可能なパスと信頼できるアプリケーション依存関係の違いについて説明しています。

パイロット外部ライブラリを追加してスキャンする

Immichの所有ユーザーを作成または選択し、外部ライブラリを追加して、コンテナから見えるインポートパスを入力します。完全なアーカイブを指定するのではなく、コピーまたは重要度の低いオリジナルを含むディレクトリから始めます。

スキャンを実行し、想定した写真と動画の数が表示されることを確認します。ネストされたフォルダー内のアセットを開き、日付と場所を確認し、サムネイルとエンコード済みプレビューがオリジナルの隣ではなく、管理対象ストレージに書き込まれていることを確認します。

ホスト側で、スキャンの前後にパイロットソースの更新時刻またはハッシュを比較します。また、コンテナ内からマウントされたパスにファイルを作成してみます。読み取りが成功する一方で、作成操作は失敗するはずです。

再スキャン、ファイル欠落、復旧をテストする

ホスト側のソースにファイルを1つ追加し、再スキャンを実行して表示されることを確認します。次に、パイロットのファイルを一時的にソースから移動し、再スキャンして、インストールされているImmichのバージョンがアセットレコードをどのようにマークまたは削除するかを確認してから、実データで同じ操作を行います。

通常の復旧計画に従って、データベースと書き込み可能なImmichデータをバックアップします。読み取り専用のアプリケーションマウントでは、ディスク障害、ホスト側での削除、破損から外部オリジナルを保護できないため、外部オリジナルには独立したバックアップが必要です。

合格条件は、Immichがアーカイブをインデックス化して表示でき、そこに書き込めず、外部ソースを管理対象アップロードとして扱わずに再構築できることです。生成ファイルがオリジナルの隣に現れたり、マウントの欠落が空のライブラリと誤認されたりした場合は、作業を中止してください。

よくある質問

読み取り専用マウントでImmichによるオリジナルの削除を防げますか? そのコンテナマウント経由での書き込みは防げます。ただし、ホスト側での削除、別の書き込み可能な共有、ファイルシステムの障害、管理者によるマウントモードの変更から保護できるわけではありません。

外部ライブラリのサムネイルはどこに保存されますか? Immichが管理する書き込み可能なストレージに保存されます。その場所を読み取り専用のオリジナルとは分け、データベースとともに復旧計画に含めてください。

複数のユーザーが同じ外部フォルダーをインデックス化できますか? 正確なリリースの動作をテストするまでは、所有権の重複を避けてください。重複したインデックス化により、所有権や共有の結果が分かりにくくなる可能性があります。

サポートとヒント

もっと読む

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.