既存のPostgres
公式には推奨されていませんが、既存のPostgresサーバーを使用してImmichを実行す ることが可能です。この設定を使用するには、PostgresとLinuxコマンドラインの基礎的な知識を持っている必要があります。これらの知識がない場合は、専用のPostgresコンテナを使用するデフォルト設定を推奨します。
デフォルトでは、ImmichはPostgresデータベースでスーパーユーザの権限を必要とし、特定の拡張機能がインストールされていることを想定しています。このガイドでは、既存のPostgresサーバーをImmichで使用するために必要な準備手順を説明します。
既存のPostgresサーバーを使用することで、pgBackRestやBarmanのようなプログラムを使用して論理的レプリケーションやストリーミング型の書き込み前ログバックアップなどの強力な管理機能を解放することができます。
前提条件
pgvector(>= 0.7.0, < 1.0.0)をインストールする必要があります。これはvchordの前提条 件です。
Debian/Ubuntuでこれを行う最も簡単な方法はPostgreSQL Apt リポジトリを追加し、
apt install postgresql-NN-pgvectorを実行することです(NNはPostgresのバージョン、例: 16)。
PostgresのインスタンスにVectorChordをインストールする必要があります。その後の設定として、postgresql.confにshared_preload_libraries = 'vchord.so'を追加します。すでにいくつかのshared_preload_librariesが設定されている場合、各拡張機能をカンマで区切ることができます。例えば、shared_preload_libraries = 'pg_stat_statements, vchord.so'のように記述します。
ImmichはPostgresバージョン>= 14, < 18で動作することが知られています。
インストールされたVectorChordのバージョンがImmichのバージョンと互換性があることを確認してください。現在の受け入れ範囲は>= 0.3.0, < 0.5.0です。
接続URLの指定
DB_URL環境変数を.envファイルに設定することで、既存のPostgresサーバーに接続できます。
DB_URL='postgresql://immichdbusername:immichdbpassword@postgreshost:postgresport/immichdatabasename'
# PostgresへのSSL接続を要求する
# DB_URL='postgresql://immichdbusername:immichdbpassword@postgreshost:postgresport/immichdatabasename?sslmode=require'
# SSL接続を要求するが、証明書名のチェックを強制しない
# DB_URL='postgresql://immichdbusername:immichdbpassword@postgreshost:postgresport/immichdatabasename?sslmode=require&sslmode=no-verify'