Ubuntu24.04+Docker上にimmichを導入
はじめに
自宅サーバーにimmichをインストールしたいので、検証環境であるwsl2上のUbuntu24.04にimmichをインストールしてみます。
基本的には公式のインストール手順に従って自分の環境にあった調整を行うだけですので、ぶっちゃけ公式ページ以上の有益な情報はないです。。。
環境
以下環境で作成しました。
- 作成日:2025年3月10日
- windows 11
- Pro
- version 24H2
- Ubuntu24.04.1(microsoft storeに記載のバージョン)
immich用ディレクトリの作成
サーバー用途で使いたいので、/srv/docker
ディレクトリをルートディレクトリとし、その下にimmich
ディレクトリを作成。
cd /srv/docker
sudo mkdir ./immich
cd ./immich
immich用composeファイルのダウンロード
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ファイルの調整
sudo vim .env
修正箇所のみ抜粋。
UPLOAD_LOCATION
については好きなところを指定すれば良いですが、最終的に/home/(ユーザー名)/ピクチャ
を指定するのはナシだなって思いました。
# 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
サービスの開始
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