📷

Ubuntu24.04+Docker上にimmichを導入

2025/03/10に公開

はじめに

自宅サーバーにimmichをインストールしたいので、検証環境であるwsl2上のUbuntu24.04にimmichをインストールしてみます。
基本的には公式のインストール手順に従って自分の環境にあった調整を行うだけですので、ぶっちゃけ公式ページ以上の有益な情報はないです。。。

環境

以下環境で作成しました。

  • 作成日:2025年3月10日
  • windows 11
    • Pro
    • version 24H2
  • Ubuntu24.04.1(microsoft storeに記載のバージョン)

immich用ディレクトリの作成

サーバー用途で使いたいので、/srv/dockerディレクトリをルートディレクトリとし、その下にimmichディレクトリを作成。

Windows Terminal
cd /srv/docker
sudo mkdir ./immich
cd ./immich

immich用composeファイルのダウンロード

Windows Terminal
sudo wget -O compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
sudo wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env
sudo cp ./.env ./.env.backup

compose.yml内にも記載がありましたが、基本的にvolumesの箇所も含めてcompose.ymlは変更せず、次項の.envファイルの変更のみにとどめておきます。

.envファイルの調整

Windows Terminal
sudo vim .env

修正箇所のみ抜粋。
UPLOAD_LOCATIONについては好きなところを指定すれば良いですが、最終的に/home/(ユーザー名)/ピクチャを指定するのはナシだなって思いました。

.env
# The location where your uploaded files are stored
- UPLOAD_LOCATION=./library
+ UPLOAD_LOCATION=/home/(ユーザー名)/ピクチャ

# To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
- # TZ=Etc/UTC
+ TZ=Asia/Tokyo

# Connection secret for postgres. You should change it to a random password
# Please use only the characters `A-Za-z0-9`, without special characters or spaces
- DB_PASSWORD=postgres
+ DB_PASSWORD=4567changeMyPassword0123

サービスの開始

Windows Terminal
sudo docker compose up -d

確認してみる

ubuntuのIPアドレスをip addr showなどで調べて、ブラウザで(IPアドレス):2283にアクセスし、immichの管理者設定画面が表示されるか? → うまくいった

初期設定の変更

ストレージテンプレート

初期設定画面(もしくは管理画面)で「ストレージテンプレート」という、アップロードした写真をどんな風に仕分けるか?というルールを決められる。
私の場合は現在yyyyMMdd_(旅行タイトルやイベント名)などでフォルダを作成して全手動管理している(yyyyMMddはイベント初日の年月日)ので、まったく同じようにとはいかないが、以下のようにストレージテンプレートを設定した。

{{y}}/{{album}}/{{filename}}

こうすることで例えば、EXIF情報に撮影日:2025年3月10日と記載されている写真をimmichにアップし、「北海道旅行」というアルバムに入れた場合は

(.envで設定したUPLOAD_LOCATION) / library / 2025 / 北海道旅行 / IMG_1234.jpeg

として自動仕分けしてくれる。便利すぎないか?
なおアルバムを作成せずにいると私の場合は

(.envで設定したUPLOAD_LOCATION) / library / 2025 / 03 / IMG_1234.jpeg

と、ストレージテンプレート書式を流用すると{{y}}/{{MM}}/{{filename}}のように仕分けされた。

ストレージテンプレートで使える変数はほかにもあるので、immich導入を検討している人のために設定画面をキャプチャした↓
ストレージテンプレート画面

さいごに

こ、これだけで終わり…?

google photosのテイストで表示されるのは非常にありがたいし、スマホアプリもあって同期もできるとなるとメリットは大きい。あとはリスクヘッジとして、libraryフォルダをほかのサーバーやPCとsyncthingで同期をとっておくと良さそう。

検証としてwsl2上で構築したはいいが、皆様はどう運用しているのだろう?(ルートディレクトリや本体のバックアップ等)
この辺は別途immichで検索して、皆様の知見から自分にマッチしたものを選択していきたい。

Discussion