ImmichをMacで動かす:Mac miniでできること・できないこと
手持ちのMac miniをImmichサーバーにできるか。公式が非Linuxを強く非推奨とする理由、Docker DesktopのVM設定、CPUで動く機械学習、Macからの写真の送り方、VPSとの併用まで解説します。
結論:Mac mini で Immich は動くが、公式には「強く非推奨」
手元の Mac mini を Immich サーバーにすることはできます。Immich は Docker で動くので、Mac に Docker Desktop を入れれば同じ手順で起動します。ただし Immich の公式ドキュメントは、Linux 以外の OS を「strongly discouraged(強く非推奨)」としています。また、Mac では機械学習の処理にハードウェアアクセラレーションが使えず、CPU で動きます。家族の写真を何年も預けるなら、この 2 点を知ったうえで決めてください。
この記事は、2026 年 10 月 22 日に読んだ Immich の公式ドキュメントと、2026 年 10 月 21 日に公開された Immich v3.3.5 を前提にしています。v3.3.5 は前日の v3.3.4 に続くセキュリティ修正のリリースで、Immich のリリースノートはできるだけ早く更新するよう勧めています。そのため、この記事の手順も v3.3.5 に固定しています。対象は、iPhone と Mac を使う家庭で、すでに Mac mini が 1 台あり、「これを写真サーバーにできないか」と考えている人です。Mac で動くこと、ドキュメントが注意していること、Linux マシンや VPS(仮想専用サーバー)のほうが向いている場面を順に説明します。
Immich の公式ドキュメントは Mac について何と言っているか
Immich の要件ページ(Requirements)が勧める OS は、64 ビットの Linux か、ほかの Unix 系 OS です。Linux 以外の OS については、Docker の使い勝手が悪くなりがちなので強く非推奨だと書いています。さらに、Linux 以外の OS ではセットアップやトラブル対応で開発チームが手伝える範囲が「severely reduced(大きく限られる)」とも書いています。macOS での動かし方として挙がっているのは「Docker Desktop on Mac」です。
つまり、Mac で動かす方法は用意されています。ただし、困ったときに公式の助けは期待しにくい、という意味です。
ハードウェア要件は次のとおりです。
このグラフのデータ
[
{
"label": "\u6700\u5c0f",
"ram_gb": 6,
"cpu_cores": 2
},
{
"label": "\u63a8\u5968",
"ram_gb": 8,
"cpu_cores": 4
}
]メモリは最小 6 GB、推奨 8 GB です。CPU は最小 2 コア、推奨 4 コアです。メモリが 4 GB しかない場合は、機械学習の機能を無効にすれば動かせるとドキュメントは書いています。メモリとディスクの見積もり方は Immich に必要なメモリとストレージの目安 にまとめています。
CPU のアーキテクチャは amd64 と arm64 の両方に対応しています。Apple シリコン(M1 以降)の Mac mini も、Intel の Mac mini も、アーキテクチャの面では対象内です。古い Intel Mac には注意が 1 つあります。v3 以降、amd64 版の機械学習コンテナは x86-64-v2 以上の命令セットを必要とします。この命令セットに対応しない CPU で使える最後のバージョンは v2.7.5 です。
なぜ Mac では Docker Desktop の VM 設定を確認するのか
Docker のコンテナは Linux カーネルの機能で動きます。macOS のカーネルは Linux ではありません。そのため Docker Desktop は Mac の中に Linux の VM(仮想マシン)を 1 台作り、コンテナはその VM の中で動きます。Immich が使えるメモリと CPU は、Mac 本体の性能ではなく、この VM に割り当てた量で決まります。Mac mini に 16 GB のメモリがあっても、VM の割り当てが要件より少なければ、Immich が使えるのはその割り当て分だけです。
割り当ては Docker Desktop の設定画面で変えます。Docker のメニュー、またはダッシュボードの Settings を開き、Resources の Advanced タブに進みます。ここで Docker の Linux VM が使う CPU、メモリ、スワップ、ディスク使用量の上限を設定します。画面の構成はバージョンで変わることがあるので、手元の Docker Desktop で場所を確認してください。
既定値はここには書きません。既定値は Mac のメモリ量によって変わるからです。スライダーが今いくつを示しているかを見て、メモリが 6 GB 以上、CPU が 2 コア以上になっているかを確認します。余裕があれば 8 GB と 4 コアに近づけます。ただし macOS 自身もメモリを使います。メモリ 8 GB の Mac mini では、推奨の 8 GB を VM に渡すと macOS が使う分が残りません。その場合は、機械学習を無効にした 4 GB の構成にするか、別のホストを検討します。
設定を反映したら、ターミナルで VM から見えている量を確認します。
docker info | grep -E 'CPUs|Total Memory'CPUs と Total Memory の行に、設定した値に近い数字が出ていれば反映されています。数字が変わっていなければ、設定の適用と Docker Desktop の再起動が済んでいるかを確認します。
Mac では Immich の機械学習は CPU で動く
Immich の機械学習(ML、machine learning)は、顔の検出と、「海」や「犬」のような言葉で写真を探すスマート検索に使われます。写真をまとめて取り込んだ直後は、この処理が CPU とメモリをいちばん多く使います。
Immich の ML ハードウェアアクセラレーションのページが挙げるバックエンドは 5 つです。ARM NN(Mali GPU)、CUDA(NVIDIA GPU、compute capability 5.2 以上)、ROCm(AMD GPU)、OpenVINO(Iris Xe や Arc などの Intel GPU)、RKNN(Rockchip)です。そして同じページは、対応するサーバーは Linux と Windows(WSL2 経由)だけだと書いています。macOS、Metal、Apple シリコンの GPU、Neural Engine には触れていません。
ドキュメントに Mac 向けのバックエンドがないので、Mac mini では ML は CPU で動くものとして計画してください。Apple シリコンの GPU や Neural Engine で速くなる、という前提で Mac を選ぶのは誤りです。CPU でも処理は進みます。写真が多いと、初回の顔検出とスマート検索の準備が終わるまで時間がかかります。
Mac mini に Immich v3.3.5 を入れる手順
先に Docker Desktop を Docker の公式サイトから入れて、起動しておきます。Docker Compose の操作に慣れていなければ、Docker Compose の基本操作 を先に読むと、以下の手順が追いやすくなります。
公式の手順は wget で 2 つのファイルを取得します。macOS には wget が入っていないので、ここでは curl を使います。また、公式の手順は常に最新版(latest)を取得しますが、この記事では v3.3.5 に固定します。家族の写真を預けるサーバーは、更新のタイミングを自分で決めたほうが安全だからです。
mkdir ~/immich-app
cd ~/immich-app
curl -L -o docker-compose.yml https://github.com/immich-app/immich/releases/download/v3.3.5/docker-compose.yml
curl -L -o .env https://github.com/immich-app/immich/releases/download/v3.3.5/example.env
head -5 docker-compose.ymlhead の出力が YAML の行になっていれば、ファイルは正しく取れています。HTML や短いエラー文が出た場合は、URL のタグ名を確認してください。
次に .env を編集します。変える行は次のとおりです。
UPLOAD_LOCATION=./library
DB_DATA_LOCATION=./postgres
TZ=Asia/Tokyo
IMMICH_VERSION=v3.3.5
DB_PASSWORD=ReplaceWithALongRandomStringIMMICH_VERSION:配布されている.envの値はv3で、v3 系の新しいリリースに自動で追従します。v3.3.5と書くと、このリリースに固定されます。TZ:配布ファイルでは# TZ=Etc/UTCとコメントになっています。先頭の#を外し、Asia/Tokyoにします。DB_PASSWORD:.envのコメントにあるとおり、使える文字はA-Za-z0-9だけです。記号や空白は入れません。UPLOAD_LOCATIONとDB_DATA_LOCATION:次の節で説明します。
起動して、状態を確認します。
docker compose up -d
docker compose psdocker compose ps で、immich_server、immich_machine_learning、immich_redis、immich_postgres のすべてが起動中になっていれば成功です。イメージの取得でエラーになった場合は、IMMICH_VERSION のタグ名を Immich のリリースページと見比べてください。
ブラウザで http://localhost:2283 を開きます。同じ家のほかの端末からは http://<Mac の IP アドレス>:2283 です。最初に登録したユーザーが管理者になります。
写真とデータベースは Mac のどこに置くか
UPLOAD_LOCATION は写真と動画の保存先です。DB_DATA_LOCATION は PostgreSQL(Immich が使うデータベース)のファイルの保存先です。既定値はそれぞれ ./library と ./postgres で、docker-compose.yml と同じフォルダーの中に作られます。フォルダーの中身は Immich の Docker が写真を保存する場所 で詳しく説明しています。
データベースは内蔵 SSD に置いたままにします。要件ページは、DB_DATA_LOCATION はできればローカルの SSD に置き、どんな種類のネットワーク共有にも置かないように、と書いています。.env のコメントにも「Network shares are not supported for the database」とあります。NAS の共有フォルダーや SMB でマウントした場所を DB_DATA_LOCATION に指定しないでください。上の手順のようにホームフォルダーに ~/immich-app を作れば、データベースは内蔵 SSD に入ります。
写真は容量が大きいので、外付けドライブに置きたくなります。Docker Desktop for Mac は、既定で /Users、/Volumes、/private、/tmp、/var/folders をコンテナと共有します。外付けドライブは /Volumes の下に現れるので、追加の共有設定なしで指定できます。
UPLOAD_LOCATION=/Volumes/Photos/immich-library要件ページには、ファイルシステムについての記述がいくつかあります。ハードウェアの項目では、ユーザーとグループの所有権、パーミッションに対応した Unix 互換のファイルシステムを勧めていて、例として EXT4、ZFS、APFS を挙げています。Windows ユーザー向けの特別な要件の節では、データベース(DB_DATA_LOCATION)は所有権とパーミッションに対応したファイルシステムに置く必要があり、NTFS や exFAT、FAT32 でフォーマットしたファイルシステムでは動かない、と書いています。Mac で外付けドライブをフォーマットするなら、APFS がこの条件に当てはまります。exFAT で動かないと明記されているのはデータベースです。写真ライブラリ(UPLOAD_LOCATION)が exFAT のような Windows と共用しやすい形式で動くかどうかについて、ドキュメントは何も書いていません。推奨から外れる形式を使うなら、自分で試して確かめる必要があります。
外付けドライブを使うなら、Docker Desktop を起動する前に ls /Volumes/Photos でドライブがマウントされているかを確認する習慣をつけてください。
Apple の「写真」から書き出した既存のフォルダーを、Immich の外部ライブラリ(External Libraries)として読み込む方法もあります。ライブラリのページには注意がいくつかあります。マウントの指定の末尾に :ro(読み取り専用)を付けないと、Immich はそのフォルダーのファイルを削除できます。シンボリックリンクは使わず、Docker のマウントをまたぐリンクも作らないように、と書かれています。また、写真がネットワークドライブにある場合、自動のファイル監視はおそらく動かないとも書かれています。
Mac を 24 時間動かし続けるための設定
Immich サーバーは、家族の iPhone がいつ写真を送ってきても受け取れる必要があります。Mac がスリープしている間は、誰もアップロードできません。
macOS のスリープの設定は、Apple メニューの System Settings にある Energy の項目です(サイドバーを下にスクロールすると出てきます)。Apple のヘルプは次の 2 つの項目を挙げています。ここでは英語表示の名前で書きます。日本語表示での項目名はこの記事では確認していないので、同じ意味の項目を探してください。
- 「Prevent automatic sleeping when the display is off」:ディスプレイが消えても、Mac を自動でスリープさせない。
- 「Wake for network access」:ネットワーク経由のアクセスで Mac を起こす。
Apple のヘルプは新しい macOS を基準に書かれています。古い macOS では、名前や場所が違うことがあります。
次は Docker Desktop です。Settings の General に「Start Docker Desktop when you sign in to your computer」があります。オンにすると、Mac にサインインしたときに Docker Desktop が起動します。Immich の docker-compose.yml は 4 つのコンテナすべてに restart: always を指定しているので、Docker が起動すればコンテナも戻ってきます。
このスイッチは「サインインしたとき」に働く設定です。誰もサインインしていない状態で Docker Desktop がどう動くかは、Docker のドキュメントに書かれていません。停電のあとの再起動を想定するなら、実際に Mac を再起動して、その状態で iPhone から Immich に届くかを自分で試してください。
Resources の Advanced には、Resource Saver(リソースセーバー)という設定もあります。Docker Desktop がアイドルのときに Linux VM を自動で止める機能です。常時動かすサーバーとして使うなら、このスイッチの状態を確認し、自分の使い方で VM が止まらないかを見ておきます。
ユーザー報告も 1 つ紹介します。2026 年 3 月 1 日に Q&A サイトへ投稿された質問です。M4 Mac mini で Immich と Nginx Proxy Manager を動かしていたところ、「約 48 時間後に Immich が反応しなくなり、遅くなる」と書かれています。Immich のコンテナを再起動しても直らず、Docker 全体を再起動すると戻るそうです。投稿者は省電力の機能を切っていて、Mac はスリープしないとも書いています。これは 1 人のユーザーの報告で、原因は確認されていません。Immich や Docker の公式な不具合報告は、この記事では見つけられませんでした。同じ症状が出たら、まず Docker Desktop の再起動で戻るかを試してください。戻るなら、問題は Immich ではなく Docker の VM の側にある可能性が高くなります。
Docker Desktop のライセンス:家庭で使うなら個人利用
Docker Desktop は、個人利用、教育、非営利のオープンソースプロジェクト、小規模な事業では無料で使えます。小規模な事業とは、従業員 250 人未満かつ年間売上 1,000 万ドル未満の事業です。それより大きな組織での業務利用には、有料のサブスクリプション(Pro、Team、Business)が必要です。家族の写真を預ける自宅サーバーは個人利用です。会社の Mac で動かすなら、Docker のライセンスのページを自分で確認してください。Linux で使う Docker Engine との違いは Docker Engine と Docker Desktop の無料範囲の違い で説明しています。
「Immich の Mac アプリ」はあるか:Mac から写真を送る方法
Mac mini をサーバーにしない場合でも、Mac は写真を Immich に送る側として役に立ちます。
2026 年 10 月 21 日時点で、公式の macOS 用デスクトップアップローダーは見つかりませんでした。確認したのは、Immich ドキュメントの紹介ページと CLI のページ、コミュニティのリンク集 awesome.immich.app です。リンク集には第三者製の immich-desktop-app が載っていますが、機能と保守の状況はこの記事では確認していません。新しいアプリが出ている可能性があるので、使う前にもう一度確認してください。
公式に用意されている Mac からの手段は、次の 2 つです。
Web 画面からのアップロード。 ブラウザで Immich を開き、写真をアップロードします。数十枚程度ならこれで足ります。
公式の CLI(コマンドラインツール)。 大量の写真や、フォルダーごとの取り込みに向いています。Node.js 22 以上が必要です。
node --version
npm i -g @immich/clinode --version が v22 以上を表示することを先に確認します。古い CLI(パッケージ名 immich)を入れたことがあるなら、先に npm uninstall -g immich で消すようにドキュメントは書いています。npm を使いたくない場合は、Docker イメージ ghcr.io/immich-app/immich-cli:latest も用意されています。
ログインには、末尾が /api のサーバー URL と、Immich の Web 画面で発行した API キーを使います。
immich login http://192.168.1.216:2283/api YOUR_API_KEY
immich upload --dry-run --recursive ~/Pictures/immich-export/
immich upload --album --recursive ~/Pictures/immich-export/192.168.1.216 は例なので、自分の Immich サーバーのアドレスに置き換えます。--dry-run は実際には送らず、何がアップロードされるかだけを表示します。結果を見てから、--dry-run を外して実行します。--album は、フォルダー名からアルバムを作ります。
Apple の「写真」から元のファイルを書き出す
Apple の「写真」に入っている写真は、そのままではフォルダーとして扱えません。Apple のヘルプにある「未編集のオリジナルを書き出す」手順で、元のファイルを書き出します。以下は英語表示のメニュー名です。
- 書き出す写真を選ぶ。
- File > Export > Export Unmodified Original を選ぶ。
- キーワードなどの IPTC メタデータを残したいなら、「Export IPTC as XMP」にチェックを入れる。メタデータは XMP のサイドカーファイルとして書き出されます。
- ファイル名とサブフォルダーの形式を選ぶ。サブフォルダーが要らなければ「None」を選ぶ。
- Export を押して保存先を選び、Export Originals を押す。
Live Photos は、静止画と動画の 2 つのファイルとして書き出されます。書き出したフォルダーを、上の immich upload で送ります。サブフォルダーを作って書き出した場合は、--album を付けるとフォルダーごとにアルバムができます。
第三者製の immich-go
immich-go は Go 言語で書かれた、公式 CLI の代わりになるツールです。Immich のプロジェクトではなく、個人の GitHub アカウント(simulot/immich-go)で開発されています。Immich のドキュメントがこのコミュニティ製ツールを勧めているのは、Google フォトのテイクアウト(書き出しデータ)を取り込む用途だけです。Apple の「写真」からの取り込みに Immich が勧めているわけではありません。
Mac では Homebrew で入れられます。2026 年 10 月 22 日時点で、Homebrew の安定版は 0.32.0 です。プロジェクトの README は、GitHub のリリースページからビルド済みのバイナリーを取る方法だけを書いています。リリースには macOS 用の tar.gz ファイルも含まれています。
brew install immich-go
immich-go upload from-folder --server=http://192.168.1.216:2283 --api-key=YOUR_API_KEY ~/Pictures/immich-exportREADME は Immich の V2 と V3 に対応すると書いています。同時に、初期段階のバージョンで十分にテストされていないとも書いています。最初は少ない枚数で試してください。Google フォトから移る場合の流れは、Immich を自分で立てて Google フォトから移行する手順 にあります。
Linux マシンや VPS のほうが向いているのはどんなときか
Mac mini で始めてよいのは、家族数人分の写真を家の中で使い、Mac が普段から起動している場合です。次のどれかに当てはまるなら、別のホストを考えてください。
- 公式のサポートを受けやすい構成にしたい。Linux なら、要件ページが勧める OS そのものです。
- ML を GPU で速くしたい。Linux の PC に NVIDIA や Intel の GPU があれば、CUDA や OpenVINO のバックエンドが使えます。
- Mac を普段の作業にも使っていて、VM にメモリを 6 GB 以上渡す余裕がない。
- 外出先からも安定して使いたいが、自宅のルーターでポートを開けたくない。
Linux マシンでは Docker Engine が直接動くので、VM の割り当てを気にする必要がありません。VPS なら、常時起動と外からの到達が最初からそろっています。Immich 以外の写真管理ソフトも含めて比べたいなら、PhotoPrism と Immich の比較 が参考になります。
VPS に Immich を置き、Mac を機械学習ワーカーにする構成
両方の良いところを使う構成もあります。Immich サーバー、データベース、写真は VPS に置き、Mac mini には ML の処理だけを任せます。Immich のドキュメントには、このリモート機械学習のガイドがあります。
Mac 側では ML のコンテナだけを動かします。ガイドの compose ファイルの要点は次のとおりです。公式ページは 1 行にまとめて表示されることがあるので、実際に使う前に公式ページと見比べてください。
services:
immich-machine-learning:
image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release}
volumes:
- model-cache:/cache
restart: always
ports:
- 3003:3003
volumes:
model-cache:mkdir ~/immich-ml
cd ~/immich-ml
# 上の内容を docker-compose.yml として保存する
echo 'IMMICH_VERSION=v3.3.5' > .env
docker compose up -d.env で IMMICH_VERSION=v3.3.5 を指定し、VPS と同じバージョンにそろえます。ガイドは、2 台のバージョンが違うとバグや不安定の原因になる、と警告しています。VPS 側を更新するときは、Mac 側も同じタグに上げてください。
この ML コンテナも Docker Desktop の VM の中で動くので、処理は CPU で行います。ガイドがイメージのタグに付けられる接尾辞として挙げているのは -armnn、-cuda、-rocm、-openvino、-rknn だけで、Mac 向けのものはありません。
いちばん大事なのは、VPS と Mac のつなぎ方です。ガイドは、ML コンテナは内部向けのサービスで、セキュリティ対策がまったくないと書いています。また、写真のプレビュー画像がリモートの ML コンテナに送られます。認証がないので、ポート 3003 に届く人なら誰でもこのコンテナを使えます。URL は http:// なので、プレビュー画像も暗号化されずに流れます。このため、自宅ルーターでポート 3003 を開けてはいけません。VPS と Mac を WireGuard などの VPN でつなぎ、VPN の中のアドレスだけで通信します。
VPN をつないだら、VPS から Mac のポートに届くかを確認します。10.8.0.2 は、VPN の中での Mac のアドレスの例です。
nc -vz 10.8.0.2 3003succeeded という表示が出れば、VPS から Mac のポート 3003 に届いています。タイムアウトしただけでは、原因は特定できません。VPN の経路の問題や Mac 側のコンテナの停止のほかに、ファイアウォールが接続を止めていることもあります。この場合は、VPN の経路が正しく、コンテナが動いていてもタイムアウトします。まず docker compose ps を Mac で実行してコンテナを確かめ、次にファイアウォールのルールを確認します。Mac のファイアウォールは、System Settings の Network にある Firewall で設定します。Apple のヘルプによると、Options の「Block all incoming connections」をオンにすると、必須ではないサービスやアプリへの外からの接続が止められます。同じ Options には、外からの接続を許可するアプリとサービスの一覧もあるので、あわせて確認してください。
届くことを確認したら、Immich の管理画面の Machine Learning Settings で「Add URL」を押し、http://10.8.0.2:3003 を追加します。
ガイドには、ほかにも知っておくべき点があります。
- スマート検索と顔検出はリモートの ML を使います。顔認識(Facial Recognition)は使いません。
- 元の URL(VPS 上のローカル ML コンテナ)を残しておくと、Mac が止まっているときの予備になります。ローカルの URL を消して置き換えると処理はリモートだけになり、Mac が止まっている間はジョブが失敗します。
ローカルの URL を残しておけば、Mac がスリープしている間も VPS 側で処理が続きます。そのため、Mac をサーバーにする構成ほど、24 時間の稼働にこだわらなくて済みます。VPS のメモリをどれだけ用意するかは、ローカルの ML コンテナを残すかどうかで変わります。
FAQ
Mac の Immich は Apple シリコンの GPU や Neural Engine を使えますか?
使えないものとして計画してください。Immich の ML ハードウェアアクセラレーションのページが挙げるバックエンドは ARM NN、CUDA、ROCm、OpenVINO、RKNN だけです。対応するサーバーは Linux と Windows(WSL2 経由)だけと書かれていて、Metal や Neural Engine には触れていません。Mac mini では ML は CPU で動くので、Docker Desktop の VM にメモリ 6 GB 以上と CPU 2 コア以上を割り当ててください(2026 年 10 月 22 日時点のドキュメント)。
Immich の Mac 用アプリはありますか?
2026 年 10 月 21 日時点で、公式の macOS 用デスクトップアップローダーは、Immich のドキュメントでもコミュニティのリンク集でも見つかりませんでした。Mac からは、ブラウザの Web 画面、公式 CLI(npm i -g @immich/cli、Node.js 22 以上)、第三者製の immich-go で写真を送れます。新しいアプリが出ている可能性があるので、使う前に確認してください。
Mac の外付けドライブに Immich の写真を置いても大丈夫ですか?
写真の保存先(UPLOAD_LOCATION)は外付けドライブにできます。Docker Desktop for Mac は既定で /Volumes をコンテナと共有しているからです。Immich の要件ページは、所有権とパーミッションに対応した Unix 互換のファイルシステムを勧めていて、APFS を例に挙げています。データベースの保存先(DB_DATA_LOCATION)は内蔵 SSD に置き、ネットワーク共有には置かないでください。
家で Immich を動かすだけなら Docker Desktop は無料ですか?
Docker のライセンスのページでは、個人利用は無料の対象です。従業員 250 人未満かつ年間売上 1,000 万ドル未満の小規模な事業も無料で、それより大きな組織での業務利用には有料のサブスクリプションが必要です。家族の写真を預ける自宅サーバーは個人利用にあたります。