Immich
Immich は、ユーザーが個人のメディアライブラリをバックアップ、整理、検索、共有できる、高性能なセルフホスト型の写真・動画管理ソリューションです。このプロジェクトは活発に開発されており、オープンソースでセルフホスト可能な Google Photos および iCloud (写真/動画のみ) の代替として位置づけられています。詳しくは 公式ドキュメント を参照してください。
データ主権は中核となる原則です。つまり、写真と動画を完全に自分で管理できます。Google Photos のようなプロプライエタリな、場合によってはプライバシーを侵害する可能性のあるサービスから脱却できます。
Immich は、実行中のシステム上、または docker や snap イメージによるコンテナでデプロイできます。この記事では、実行中のシステム上にデプロイするための具体的な手順を示します。
インストール
主にインストールするパッケージは immich-serverAUR です。任意で、immich-machine-learningAUR を使用すると、自然言語検索語による写真検索、顔認識、人物グループ化、重複検出、光学文字認識 (OCR) など、Google Photos に似たインテリジェンス機能を有効にできます。
PostgreSQL のセットアップ
Immich はデータベース操作に PostgreSQL を使用します。管理ユーザーとデータベースの手動セットアップが必要です。以下は基本的な設定例で、手順は PostgreSQL から要約したものです。
runuser を使用して、runuser -u postgres -- command のように実行します。ここで command は、以下の postgres ユーザーとして実行する必要があるコマンドのいずれかです。データベースを初期化します:
[postgres]$ initdb --locale=C.UTF-8 --encoding=UTF8 -D /var/lib/postgres/data --data-checksums
/var/lib/postgres/data/postgresql.conf を編集し、以下を追加します:
shared_preload_libraries = 'vchord.so'
postgresql.service を 起動/有効化 します。
対話形式で immich ユーザーを作成します。通常のインストールでは、ロール名に immich と入力し、残りの superuser/createdb/createrole のプロンプトには n と答えます。
[postgres]$ createuser --interactive
immich データベースを作成します:
[postgres]$ createdb immich
管理ユーザーのパスワードを編集します。strongpassword は希望するパスワードに置き換えてください:
[postgres]$ psql
ALTER USER immich WITH ENCRYPTED PASSWORD 'strongpassword'; \q
リバースプロキシのセットアップ
Immich では、TLS 終端、ロードバランシング、トラフィックフロー、その他の高度な機能を処理するためにリバースプロキシが必要です。このプロジェクトは公式に Nginx、Caddy、Apache、traefik をサポートしていますが、AUR パッケージは事前設定済みの nginx ドロップインを提供しています。他のサポート対象デーモンを設定するには、ドキュメント を参照してください。
Nginx のセットアップ
/etc/nginx/nginx.conf を編集し、http {} ブロック内に以下を挿入します:
include /etc/nginx/conf.d/*.conf; types_hash_max_size 4096;
conf.d ディレクトリを作成し、パッケージのテンプレートを配置します:
# mkdir /etc/nginx/conf.d # cp /usr/share/doc/immich/examples/nginx.conf /etc/nginx/conf.d/immich.conf
ファイアウォール設定
デフォルトでは、外部 TCP ポート 8080 は Immich のデフォルトである 2283 にリダイレクトされます。8080/tcp を許可するようにファイアウォールを更新してください。
たとえば、ufw で LAN からのトラフィックのみを許可する場合:
# ufw allow from 192.168.1.0/24 to any port 8080 proto tcp
使い方
以下のサービスを起動し、必要に応じて有効化してください: nginx.service と immich-server.service。ML パッケージをインストールしている場合は、immich-machine-learning.service を起動します。
ユーザーのセットアップ、サービスのデフォルト設定、ジョブの実行などを行うには、http://127.0.0.1:8080 または http://immich.hostname:8080 をブラウズしてください。