2026年版 アクションカメラおすすめの選び方 初心者向けに主要メー カーを比較
アクションカメラの選び方を初心者向けに解説。4K、手ブレ補正、防水、バッテリー、GoPro・DJI・Insta360・AKASOの代表モデルを紹介します。
今回は、写真・動画を自己ホストで管理できるImmich(イミッチ)を紹介します。
Immichは、急速に人気が高まっている自己ホスト型の写真・動画管理ソフトです。
Immichは、スマートフォンの写真自動バックアップやWeb UIでの閲覧をローカル環境で運用できるフォト管理ソフトになります。 クラウド依存を減らしつつ、複数端末で同じ画像・動画ライブラリを扱いたい場合に向いています。
この記事ではUbuntuなどのLinux環境を前提に、Docker ComposeでImmichを導入し、初期設定と運用時の確認ポイントまでまとめて紹介します。
Immichは、写真・動画の保存、検索、共有を自己ホストで行えるオープンソースソフトウェアです。
Googleフォトのような感覚で写真や動画をスマートフォンと同期して管理することができます。そのため、界隈ではGoogleフォト代替とも 言われており、サブスクリプション費用を抑えたい人や大企業にプライバシーデータを管理させたくないと考える人たちの間で近年人気になっています。
なお、Immichは宅内のLAN環境内での利用が前提ですが、Tailscale のようなVPNを併用すれば、自宅外から自分の Immich サーバーへ接続して利用することもできます。
Immich は 1 つの画面だけで完結しているように見えますが、実際には Web UI を含むサーバー本体、データベース、Redis、機械学習用コンポーネントが分かれて動作します。
| 要素 | 役割 |
|---|---|
| Immich Server | Web UI と Web API の中核 |
| PostgreSQL | メタデータ(ユーザー情報・ライブラリ情報など)保持 |
| Redis | キュー処理・キャッシュ処理 |
| Machine Learning | 顔認識や検索補助などの機能を担当 |
公式のDocker Compose構成では、上記コンポーネントが分かれて起動します。 そのため、バックアップ対象も「画像データ」と「DBデータ」を分けて管理する前提で考えると整理しやすいです。
システム構成としては、次の図に示すようにImmich本体であるImmichサーバーを宅内LAN上に構築し、PCやスマートフォン側の専用アプリをインストールすることで利用可能になります。
少々手間かもしれませんが、今どきのユーザービリティに富んだアプリなので、Immichサーバーを構築した時に流れで専用アプリのインストールが案内されます。 そのため、迷うことなく導入することができます。
今回はそんなImmichを構築して使ってみたいと思います。
上の図に示すように、この記事はUbuntu(Linux)にImmich(サーバー)をインストールし、PCのWebブラウザとAndroidスマホの専用アプリを介してログインした結果を基に作成しています。
| 項目 | サーバー側 | クライアント側 |
|---|---|---|
| 環境 | Ubuntu 24.04 | Windows 11 / Android 14 |
| 実行方式 | Docker Compose | Webブラウザ / Immichモバイルアプリ |
| 公開範囲 | 宅内LAN(外部公開なし) | |
それでは導入方法の説明に入ります。
まず Docker を準備します。ここで重要なのは、Immich 用には Ubuntu 標準の docker.io ではなく、Docker 公式パッケージの Docker Engine と Docker Compose plugin を使うことです。
結論だけ先に書くと、Docker については次の方針で進めてください。
Immich 公式 Docs でも、docker.io パッケージ環境では docker compose up -d 実行時に問題が出ることがあると案内されています。ここでは、Docker の公式リポジトリから導入した Docker Engine と Compose plugin が入っている状態を前提に進めます。
Ubuntu では、次の流れで導入すると分かりやすいです。
immich-server@kamo:~$ for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove -y $pkg; done
Ubuntu 標準の docker.io や、競合する古い Docker 関連パッケージを外します。何も入っていなければ、そのまま何も削除されないだけです。
immich-server@kamo:~$ sudo apt update
パッケージ一覧を更新します。
immich-server@kamo:~$ sudo apt install ca-certificates curl
HTTPS 経由で Docker 公式リポジトリを登録するための基本ツールを入れます。
immich-server@kamo:~$ sudo install -m 0755 -d /etc/apt/keyrings
GPG キー保存用ディレクトリを作成します。
immich-server@kamo:~$ sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
Docker 公式の GPG キーを取得します。
immich-server@kamo:~$ sudo chmod a+r /etc/apt/keyrings/docker.asc
取得したキーを APT が参照できるようにします。
immich-server@kamo:~$ printf "Types: deb\nURIs: https://download.docker.com/linux/ubuntu\nSuites: %s\nComponents: stable\nArchitectures: %s\nSigned-By: /etc/apt/keyrings/docker.asc\n" "$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")" "$(dpkg --print-architecture)" | sudo tee /etc/apt/sources.list.d/docker.sources > /dev/null
Docker の公式 APT リポジトリを登録します。
immich-server@kamo:~$ sudo apt update
Docker 公式リポジトリを含めた状態で、もう一度パッケージ一覧を更新します。
immich-server@kamo:~$ sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Docker Engine 本体、CLI、containerd、Buildx、Compose plugin をまとめて導入します。
一般ユーザーで docker compose を使えるようにするため、まず現在のユーザーを docker グループへ追加します。
docker グループは強い権限を持つため、家庭内の個人運用を前提にし、不特定のユーザーを安易に所属させないようにしてください。
docker グループにユーザーを所属させたくない場合、以降の説明で出てくるdockerコマンドの前にsudo付ければ実行が成功します。
immich-server@kamo:~$ sudo usermod -aG docker $USER
現在のユーザーを docker グループへ追加します。
その後、いったんログアウトして再ログイン(またはシステム再起動)し、グループ追加を反映させてから次を確認します。
immich-server@kamo:~$ docker --version
Docker 公式パッケージとして導入した Docker Engine が利用できることを確認します。
immich-server@kamo:~$ docker compose version
Docker Compose plugin が利用できることを確認します。ここで確認したいのは docker compose が使えることです。旧来の docker-compose コマンドを使う前提ではありません。
immich-server@kamo:~$ groups
出力結果に docker が含まれていることを確認します。含まれていなければ、ログアウト/ログインがまだ反映されていません。
immich-server@kamo:~$ docker run hello-world
テスト用コンテナを実行して、Docker Engine 自体が正常に動作し、かつ一般ユーザーで Docker を実行できることを確認します。
# 以下の表示結果であれば、Docker Engineが正常に動作しています。 immich-server@kamo:~$ docker run hello-world Hello from Docker! This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps: 1. The Docker client contacted the Docker daemon. 2. The Docker daemon pulled the "hello-world" image from the Docker Hub. (amd64) 3. The Docker daemon created a new container from that image which runs the executable that produces the output you are currently reading. 4. The Docker daemon streamed that output to the Docker client, which sent it to your terminal. To try something more ambitious, you can run an Ubuntu container with: $ docker run -it ubuntu bash Share images, automate workflows, and more with a free Docker ID: https://hub.docker.com/ For more examples and ideas, visit: https://docs.docker.com/get-started/
immich-server@kamo:~$ mkdir -p ~/apps/immich
Immich 用の作業ディレクトリを作成します。
immich-server@kamo:~$ cd ~/apps/immich
以降の設定ファイルをまとめて扱うため、作業ディレクトリへ移動します。
immich-server@kamo:~/apps/immich$ wget -O docker-compose.yml https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml
公式の docker-compose.yml を取得します。
immich-server@kamo:~/apps/immich$ wget -O .env https://github.com/immich-app/immich/releases/latest/download/example.env
環境変数のひな形になる .env を取得します。
少なくとも次の値は自分の環境に合わせて設定します。
例として、次のような値を設定します。
UPLOAD_LOCATION=./library DB_DATA_LOCATION=./postgres TZ=Asia/Tokyo IMMICH_VERSION=v2 DB_PASSWORD=yourdbpassword
特に DB_PASSWORD は、Immich が内部で PostgreSQL に接続するときに使うパスワードです。Immich のログインパスワードとは別物なので、デフォルト値のままではなく、自分で決めた文字列へ変更してください。
公式Docsでは、Docker の解釈で問題が出にくいよう、DB_PASSWORD には英数字だけを使う形が案内されています。また、TZ はコメントアウトを外して自分のタイムゾーンへ変更する形です。
Immich の各コンテナをバックグラウンドで起動します。
immich-server@kamo:~/apps/immich$ docker compose up -d
ここで unable to get image 'ghcr.io/immich-app/immich-server:v2': permission denied while trying to connect to the docker API at unix:///var/run/docker.sock のようなエラーが出る場合は、現在のユーザーに docker グループがまだ反映されていない可能性が高いです。その場合は、前段の sudo usermod -aG docker $USER を実行したうえで、ログアウト/ログイン(またはシステム再起動)を行い、groups コマンドで docker が含まれていることを確認してから再実行してください。
次に各コンテナが起動しているかを確認します。
immich-server@kamo:~/apps/immich$ docker compose ps
コンテナ起動が確認出来たら、ip aコマンドなどを使ってIPアドレスを調べます。
今回、私の環境ではUbuntu(Linux)のIPアドレスは192.168.3.18でした。
通常、Immichサーバーにはブラウザや専用アプリを介してhttp://<server ip address>:2283でアクセスできますので、 私の場合はhttp://192.168.3.18:2283でアクセスできることになります。
図にするとこんな感じです。
それでは次節では初期設定について説明します。
docker compose up -d の実行後は、まずブラウザで管理者アカウントを作成し、その後にクライアント接続へ進む流れで確認すると整理しやすいです。
最初に表示されるのはようこそ画面です。Immich のロゴとともに開始ボタンが表示されるので、ここから初期セットアップを進めます。
次に管理者ユーザーの登録画面が表示されます。最初のユーザーは管理者として扱われるため、メールアドレス、パスワード、名前を入力して登録します。
管理者登録が終わると、初期設定ウィザードが始まります。ここからテーマ、言語、プライバシー関連の初期値を順に確認していきます。
テーマ設定では、Light と Dark を選べます。ここは後から変更できるので、まずは見やすい方を選べば十分です。
言語設定では、UI に使う表示言語を選択します。特段の理由がない限り、日本語(母国語)を選んでおけば良いと思います。
サーバープライバシー設定では、地図表示機能やバージョンチェックのように外部サービスへ依存する機能を有効にするか確認できます。後から管理画面で変更できるので、最初は既定値のままでも構いません。
ユーザープライバシー設定では、Google Cast のような追加機能を有効にするかを選びます。使う予定がなければ無効のままでも問題ありません。
ストレージテンプレート設定では、アップロードされたファイルをテンプレートに従って自動整理する機能を有効にできます。まずは標準状態で始めて、運用に慣れてから使うかどうかを決めてもよいです。
バックアップ設定では、Immich の写真・動画データとデータベースを合わせて保護する必要があること、また 3-2-1 バックアップ戦略が推奨されることが案内されます。
初期ウィザードの終盤では、モバイルアプリの導線も表示されます。ここからアプリストアや Obtainium 向け設定へ進めます。
ダウンロードリンク一覧では、Google Play、App Store、F-Droid などの入手先がまとめて表示されます。ここまで終われば、ブラウザ側の初期設定はひとまず完了です。
ここまで確認できたら、次はブラウザとモバイルアプリから接続し、実際に写真や動画を扱える状態になっているかを確認します。
ここではAndroidスマホに専用アプリをインストールする方法と初回ログインについて説明します。
次のストアからインストールすることができます。
https://play.google.com/store/apps/details?id=app.alextran.immich&hl=ja
Android アプリを起動すると、まずサーバーのエンドポイント URL を入力する画面が表示されます。ここでは http://サーバーのアドレス:ポート番号 の形で、Immich サーバーの接続先を指定します。
例えば、今回の私の環境ではImmichサーバーのUbuntu(Linux)のIPアドレスが192.168.3.18でしたので、http://192.168.3.18:2283 のようにサーバー IP とポート番号を入力します。入力後に次へ進み、ログイン画面へ移動します。
次に、ブラウザ側で作成したメールアドレスとパスワードを入力してログインします。ここでは Web 画面で作成した管理者アカウント、または追加した一般ユーザーアカウントを使います。
初回ログイン後は、端末内の写真と動画へのアクセス許可を求められます。自動バックアップまで使う場合は、ここで許可しておく必要があります。
ログインが終わると、Android アプリのメイン画面が表示されます。最初は空に見えても問題ありません。まだ同期されていないだけなので、次はライブラリ画面から端末内の写真フォルダを確認します。
ライブラリ画面では、お気に入り、アーカイブ、共有リンク、撮影場所に加えて、端末内の項目も確認できます。バックアップ対象を選ぶときは、この画面から端末内の項目を開きます。
端末内の項目を開くと、Pictures、Camera、Download など、バックアップ候補になるフォルダが一覧表示されます。ここで、どのフォルダを Immich に同期するかを選びます。
フォルダ(例:Pictures)を 1 つ開くと、中にある画像や動画の一覧が表示されます。まずはここで手動アップロードや同期対象の確認を行い、その後に自動バックアップを有効にすると切り分けしやすいです。
(ちなみに、上のスマホ画面のキャラは私が最近始めたガジェット記事の看板キャラクタ(名前はまだ無い)です。)
以上がImmichのログインと簡単な使い方になります。色々弄っていけば、細かな使い方についてどんどん分かってくるかと思います。
Immich では、写真や動画ファイルだけを残しても完全な復旧はできません。ライブラリ情報やユーザー情報、設定内容も別の場所に保持されるため、少なくとも次の 3 つをセットでバックアップしたいです。
上記の1番と2番は.envに記載されいてる情報になります。
UPLOAD_LOCATION 配下には、実際の写真や動画ファイルが保存されます。ここが失われると、ライブラリ本体を失うことになります。
DB_DATA_LOCATION 配下には、PostgreSQL のデータが保存されます。ここにはユーザー情報、アルバム情報、サムネイルや検索に必要なメタデータの管理情報が含まれるため、失われると写真ファイルが残っていても運用の復旧が難しくなります。
docker-compose.yml と .env は、コンテナ構成や保存先パス、Immich のバージョン、データベース接続用パスワードといった設定情報です。再構築時に同じ構成を再現するため、これらも一緒に残しておきたいです。
immich-server@kamo:~/apps/immich$ docker compose pull
最新のコンテナイメージを取得します。
immich-server@kamo:~/apps/immich$ docker compose up -d
取得した新しいイメージでコンテナを再作成し、更新を反映します。
immich-server@kamo:~/apps/immich$ docker compose logs --tail=100
更新直後のログを確認し、エラーが出ていないかを見ます。
immich-server@kamo:~/apps/immich$ docker compose ps
まずコンテナが停止していないかを確認します。
immich-server@kamo:~$ ss -tulpn | grep :2283
Immich の待受ポート 2283 が開いているかを確認します。
immich-server@kamo:~/apps/immich$ docker compose logs --tail=200
直近のログを確認し、エラーや再起動ループの有無を調べます。
まずリリースノートを確認し、Composeファイルや環境変数の変更点がないかを確認してください。 変更点を反映せずに更新すると、起動しても機能が不完全になる場合があります。
運用に関しては大体、以下の3つを気を付けてください。
モバイルアプリの自動バックアップを有効化し、撮影データをLAN経由で自宅サーバーへ集約します。
ユーザーを分けて運用し、必要な範囲だけ共有設定を行います。管理者アカウント常用は避けると安全です。
まずは宅内LANの自己ホスト運用から始め、必要に応じてVPN経由アクセスへ拡張するのが現実的です。
上手く活用して従来のクラウドサービスの完全代替と見なすことができれば、お金の節約になります。
この記事では、Immichの導入手順をDocker Compose前提で整理しました。
実運用では「データ保存先の設計」と「更新前確認」が重要です。導入後はバックアップ方針までセットで整備してください。
2026年版 アクションカメラおすすめの選び方 初心者向けに主要メー カーを比較
アクションカメラの選び方を初心者向けに解説。4K、手ブレ補正、防水、バッテリー、GoPro・DJI・Insta360・AKASOの代表モデルを紹介します。
初心者向けノートパソコンおすすめ10選 失敗しにくい選び方を整理
ノートパソコンを初めて選ぶ人向けに、比較しやすい10機種を紹介します。メモリ、ストレージ、画面サイズ、重さ、Office有無、保証の見方を整理します。
レーザー彫刻機の選び方を紹介! 家庭向けで見たい方式や確認ポイントを整理
今回はレーザー彫刻機の選び方を紹介します。ダイオード、CO2、ファイバーの違い、家庭用で最初に見たい確認ポイント、代表的な メーカーと製品、家庭で使うときの注意点を整理して紹介します。
3Dプリンターの選び方! 造形方式や素材、確認ポイントを整理して紹介
3Dプリンターの選び方を紹介します。FDMと光造形の違い、PLAやPETG、ABSなどの素材、造形サイズ、家庭で使うときの注意点、代表的なメーカーと製品を整理しています。
2026年版 はじめてのミニPC おすすめモデル紹介
この記事では「オフィスワーク向け」と「ゲーム&AI向け」の2つの用途に分けて、 はじめてミニPCを購入する方でも選びやすいおすすめモデルを紹介します。
OCuLinkとは何か? 小型PCやミニPCの購入前に知っておきたいポイントを整理
OCuLinkとは何かを、小型PCやミニPCの購入を検討している人向けに整理します。USB4やThunderboltとの違い、eGPU用途で気にしたいポイント、製品ページでの確認点をまとめています。