Immich Ubuntu インストール Docker Compose セルフホスト 写真管理 動画管理 バックアップ プライベートクラウド
Google Photosが良かったが、画像・動画がかなり増えていき、プランを移行しないといけないが、さすがに月1000円は払えない。
Googleログイン情報流出する事件もあり、Googleだけに頼り切っていると、アカウント使えない状態になると全て詰んでしまう。
NASも検討したが金額面・使いやすさを考慮すると。個人的には微妙である。それなら、中古PCを購入し設定すると自由度が高いのでImmichを使うことにした。
地図機能が魅力的
Immichは、Google PhotosやiCloudの代替とし使用できます。
代替として、NASがまず思い当たるが、微妙に使いづらいUIだったりする。
その点ImmichのUIは良く使いやすい。
良いUIをそろえたNASがあれば教えてほしい。
ios,androidのアプリがあるのは評価が高い。表示速度も早くストレスなしで、動画・画像を見ることができる。
ハードウェア要件は公式だと以下の通りです。
| 項目 | 最小要件 | 推奨要件 |
|---|---|---|
| OS | Ubuntu 20.04以上 | Ubuntu 22.04 LTS |
| RAM | 4GB | 6GB以上 |
| CPU | 2コア | 4コア以上 |
RAM 4GBで運用しているが特に遅いと思わない。ストレスなく運用できている。
しかし、HDDでの運用は厳しいようで、SSDは必須であると感じる。
ubuntuの更新を行います。
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget git
公式の通りdockerをインストールする。
公式通りです。 最新情報は公式ページを参照してください。
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
# GPGキーの追加
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# リポジトリの追加
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl start docker
sudo systemctl enable docker
rootユーザー以外でもdockerを起動したいのでグループに追加します。
sudo usermod -aG docker yu-za-mei
グループ追加後 一度ログアウトして再ログインしてください。
docker --version
docker compose version
何処でも可。私は/optに入れています。
mkdir ./immich-app
cd ./immich-app
Immichに必要なdockerファイルと環境ファイルをダウンロードする。
# docker-compose.ymlのダウンロード
wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
# 環境設定ファイルのダウンロード
wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env
nano .env
以下の項目を変更する。
最低パスワードだけ変更すればいいかも?
# 写真・動画の保存場所
UPLOAD_LOCATION=/home/username/immich-library
# データベースファイル。
DB_DATA_LOCATION=/home/username/immich-postgres
# タイムゾーンの設定(日本の場合)
TZ=Asia/Tokyo
# データベースパスワード(強力なパスワードに変更)
DB_PASSWORD=tuyoipassword
docker compose up -d
ymlファイル名変更または、ルートアカウントで起動。
rootアカウントで起動できているのであればdockerグループ追加ができていないかも。
docker compose ps
# 全体のログを確認
docker compose logs
ブラウザで以下のURLにアクセスします:
http://ipaddress:2283
初回アクセス時に管理者アカウントを作成します:
先ほどのアカウントでログインします。
特に気を付ける部分はありません。
ファイル構造をきっちりしたいのでテンプレートを設定します。
特にこだわりが無ければここも設定しなくても大丈夫です。
ここまで表示されたら構築完了です。
お疲れ様でした。

Immichには「外部ライブラリ」という便利な機能があります。この機能を使用することで、既存の写真・動画を再アップロードすることなく、Immichで管理・表示できるようになります。
外部ライブラリ機能は、サーバー上の既存フォルダをImmichに読み込み専用で統合する機能です。以下のような場面で特に有効です:
dockerを利用しているdocker上からフォルダーに直接アクセスができないためマウントする必要があります。 compose.ymlのvolumesにマウントするフォルダーを指定します。
ervices:
immich-server:
container_name: immich_server
image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release}
# extends:
# file: hwaccel.transcoding.yml
# service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding
volumes:
# Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file
- ${UPLOAD_LOCATION}:/usr/src/app/upload
- /etc/localtime:/etc/localtime:ro
- /var/Photos:/photos/:ro
env_file:
上記の例では サーバ上の/var/Photosのフォルダーをコンテナ/photos/にマウントしています。
/mnt/external/photos)を指定
この機能により、既存の大量な写真・動画コレクションを効率的にImmichに統合できます。
参考リンク:
Immichを導入することで既存の大量な画像、動画をまとめて管理プレビューでき、android,iosでも快適に使用できます。
思ったより使い勝手がいいのでかなり助かっています。
Immichは頻繫に更新、アップデートされているので、バグや互換性、アップデートを注意する必要がある。
あとは、バックアップどうしようか...