小型デスクトップPCとしてだけでなく、サーバー運用としても非常に優れたMacmini。
Intel時代からM1機に買い替えたり、機能拡充したりで増えまくった記事を一旦ここに整頓しておく。
だいたいここかここに書いてある内容の寄せ集め。
そのほかにも個別記事で書いた内容もあるので、全てをリストにしつつ適宜リンクを貼っている。
Mac miniとは
3種類あるデスクトップMacのうち、最も小さく手頃なモデル。無印/ProのAppleシリコンを搭載し、省スペース省電力で10万円を切る価格でありながら破格のスペックを持つ。
現行モデルはM4/M4Proを搭載しており、94800円の最低スペックでもメモリが16GBまで向上。M4はCPU・GPU共にM1Proに匹敵する性能を持ち、非常にコストパフォーマンスに優れた機種となっている。

M2/M2Proは整備済み製品で、またそれ以前の機種は中古品なら安価で入手可能。相場が5万円を切るM1モデルは今でも良好なコスパを維持しており、中古10万円前後で取引されているM2Proモデルは9Bを超えるLLMをローカルで実用的な速度で動かせるポテンシャルを持つ。
サーバー機としての利点
Appleシリコンにより、ラズパイやNASとは比較にならないほど高性能。macOSは成り立ちからターミナルがLinuxに近く、それでありながら扱いやすいUIをしているのが特徴。
Linuxほど事前知識を要せずWindowsに扱えない機能も一部扱えるため、個人用途のサーバーとしてかなりおすすめ。

流石にサーバーとしてはLinuxの汎用性には届かず、Dockerのホストネットワークモードを始めとして対応しきれないものは微妙に存在する。
とはいえそれも有り余るリソースでVMを動かせば充分であり、力業でなんとかなる場面が多いため結果的に対応力は高い。
Thunderbolt端子を最低でも2基は搭載しており、UltraFine等のThunderboltモニターを使えばモニターに加えマウスとキーボードを含むUSB機器を一括接続可能。
他PCで使っているThunderboltモニターの近くまでケーブルを伸ばしておくことで、ケーブル1本の差し替えでサーバー機能を維持したままデスクトップPCとして運用することも出来る。

またMacminiには、本体を積み上げることで接続性を拡張出来る専用のドックが数多く存在する。Thunderbolt対応の専用ドックを使えば、高速なM.2やSATAのSSDを更に積めるためファイル共有やバックアップ先として役立つ。
各種機能まとめ
基本
画面共有/VNC

メンテナンス方法の基本で、標準環境で設定可能。AppleシリコンのMacからアクセスすれば非常に高速且つ高解像度で操作可能なほか、一般的なVNCクライアントにも対応する。
ポート番号はTCP5900番を基本とし、他のMacと被った場合は5901番以降にズレる。
Thunderboltモニターを用いれば不要になるが、メインのPCからリモート操作すればメインPCと並行して操作出来るので、念の為設定しておくと安心。
SSH
上記の画面共有と違い、こちらはターミナルのコマンドをリモートで入力出来る。ターミナルコマンドはHomebrewで大幅に拡張可能で、iOSのショートカットAppから入力出来るため組み込みやすい。
ショートカットにSSH接続+再起動のコマンドを仕込んで手元のデバイスでワンタップするだけでサーバー機の再起動を可能にしたり、Safariの共有メニューからショートカットでSSH+WebArchiverコマンドを叩くことで通常iOSでは出来ないWebArchive形式を絡めたワークフローを可能にしたりと、応用次第で何にでも使える汎用性を持つ。

使い込む予定がなくとも、再起動だけでも仕込んでおけばトラブル回避に役立つのでおすすめ。
DDNS

上記の画面共有/SSHを始めとして、各種サーバー機能にLAN外の遠隔地からアクセス可能にする手段。
通常は変動するグローバルIPを用いることで遠隔地からアクセス可能だが、変動するたびに接続先を調べ直す必要があるため恒久的に使うには面倒。DDNSを用いることでグローバルIPの代わりに固定化されたアドレスでアクセス可能となり、遠隔操作の利便性が格段に向上する。
DDNSを用いたファイル共有はクラウドストレージに近い利便性をもたらし、各種WebUIにもアクセス可能なため汎用性が上がる。
またDDNSアドレスを通して下記のVPN接続を確立することで、ローカルサーバーの枠を超えた拠点間接続が実現する。
VPN

解説記事(L2TP,IKEv2 on Burmilla)
遠隔地からサーバー機のあるLANに入りあらゆるデバイスの操作を可能とする、リモートアクセスの究極系。
macOSにおけるVPN構築には色々な方法があるが、コマンド一発で構築可能なL2TPのDockerイメージを使うのが最短。速度やセキュリティは最低限だが、構築も接続も手軽で安定性も高い。
より高度なIKEv2に対応したDockerイメージもあるが、Linux環境でしか動作しない模様。わたしはDocker専用にLinux環境を確保して導入した。L2TPと比較すると実測の通信速度が3倍くらい違うので、5Gの速度をフル活用できてVPN張りっぱなしでも非常に快適。
macOSのDocker Desktopでは、表示上接続までは上手くいくものの肝心のネットワークにアクセス出来なかった。一応GitHubの説明によれば、このイメージはLinuxかmacOSであれば扱えるとのこと。
VPNには様々な使い方があり、「サーバー機が属しているLANを外部アクセス可能にする」「仮想のLANを別途用意して遠隔地で共有できるLAN環境に参加する」「VPNを介して接続中のネットワークからパケットを隠蔽する」など多岐に渡る。
Macmini上で構築する場合、自宅LANを外部アクセス可能にしつつパケット隠蔽が出来る。フリーWi-Fi等でのセキュリティ確保にも使えるため万能。
Docker
on BurmillaOS(構築&Homebridge導入/VPN&OpenWebUI導入)
on AlpineLinux(更に高速)
Portainerによる管理(最終形態)
ざっくり言うと単一機能を持たせた仮想マシンとその実行環境。サーバーMacにおいては、一部Linuxベースの機能を扱えるようになるのでかなり有用。
しかしmacOS+Dockerだけではこなせないことも割とあり、結局はDocker用にしっかりとしたLinux仮想環境を用意する必要が生じることも。
現状macOSのDockerで直接動かせるものは、OllamaのOpenWebUIやL2TPVPNサーバー・Craftyなど。
対してIKEv2VPNサーバーとHomebridge・RTSPサーバーなどは仮想Linux環境にDockerを載せる必要がある。
もしDocker用にLinuxを載せる場合、UTMでAlpineLinuxを動かすのが軽量かつ安定。
Docker活用に特化し200MB切りを実現したBurmillaOSも非常に優れているが、UTMで動かせるのはx86_64版でありエミュレーション必須。AlpineはARM64版でエミュレーション不要なため、パフォーマンスはこちらが勝る(起動時間に1分ほどの差が出る)。
Portainerを使えばコンテナを統括管理可能になる。複数マシンに跨ることができるため、仮想環境のDockerとmacOSのDockerを同時に管理することも容易。というかそうしないと8GBメモリでは足りない。
各用途
コンテンツキャッシュ(公式リンク)
他のApple製品のアップデート等を事前にダウンロードしておき、それをLAN内で提供するキャッシュサーバーのようなもの。効果は感じにくいものの、付けておくと一応恩恵がある。
専用にAPFSコンテナを作って使用領域を制限すると楽。APFSコンテナはディスクユーティリティより設定可能で、外付けSSDにコンテナを作っておけばシステムドライブへの影響なく活用できる。
AirPlay2レシーバー

AirPlay2で他デバイスの音声/映像を受け取り、Macminiのメインオーディオデバイスへと流す。
iPhone/iPad/Macの他にAppleTVからの出力も受け取れるが、何故かHomePodからの出力は受け取れない。ホームAppにも登録できないため部屋分けによる音声操作は不可能で、微妙に物足りない。
2018以降のMacminiはUSB-Cと引き換えに光デジタル出力を失っているため、オーディオアンプに接続するなら光デジタルのアダプタを用意しておくと高音質で再生可能。
AirPlayはWi-Fi伝送によりロスレス再生が可能なため、利点を活かすならアナログ接続よりデジタルで流し込んだ方が良い。一応HDMI接続という選択肢もあるが、ダミーアダプタによるヘッドレス運用では併用不可。
恐らくBLE検知を併用したP2P接続に対応しており、HomePodやAppleTVのように爆速で接続可能。他のAirPlayレシーバーと比べた強みでもあり、ホームAppに追加可能なAirMacExpress等を差し置いて使う数少ない理由になる。
Homebridge

言わずと知れた、エミュレーションされたブリッジを介して大量の機器をHomekit対応に出来る仕組み。IRKitを通した赤外線機器を始めとして、多数のWi-Fi対応家電やデバイスをHomekitに組み込むことが可能。その他にもAppleTVのApp選択が出来る仮想デバイスを追加したりmacOSのミュージックAppのコントローラーを追加したり自由自在。
WebUIを用いるとVNCに頼らずメンテ可能になり、VPN越しのiPad等からでも快適にプラグインの設定が行える。
Docker版も存在するが、macOSでの使用は現状不可。SwitchBot/IRKit等にも接続されきちんと動作しWebUIに他デバイスからアクセスすることも可能だが、肝心のHomekit/ホームAppに追加できない。

これはmacOS/Windows版のDocker Desktopがホストネットワークモードが未対応だったことが原因とされていたが、そのホストネットワークモードにも現在では対応しており、それでもなお動作しないため原因不明。
わたしは結局Dockerごと仮想マシンに全移行して強引に解決した。仮想環境でDockerを動かすOSとしてはAlpineLinuxが最適。ARM64でリソースの無駄なく仮想化可能でOSの容量は100MBを切る上、ドキュメントが豊富で情報もネットに多く転がっている。
ミュージック(ホームシェアリング)
LAN内にミュージックAppのライブラリを公開し、iPhone/iPad/Mac/AppleTVから再生できる。iTunesMatchによるクラウド同期と違い、ロスレスのまま再生出来るというメリットがある。
AirPlayレシーバーと併用すれば、好きなデバイスからロスレスのままアンプで再生することも可能。
普段からMacminiでCDの取り込みやライブラリの整頓を行なっておくと、クラウドミュージック用に整頓したライブラリをそのまま使えるためスムーズ。ミュージックAppの母艦の役割も余剰リソースで十分こなせるため、アーカイブ作業もサクサクこなせる。

AppleMusicを使っている場合は標準でロスレス音源の再生権が付帯するため、比較的出番は少なめ。
またAirPods等のBluetooth機器で再生する場合、クラウド同期のiTunesPlus品質(256kbps)でも差が出ないことがほとんど。
ちなみにRemote AppやHomebridge-Musicプラグインを用いれば、MacminiのミュージックAppの操作が可能。ホームシェアリングを使うより、こちらを用いる方が現実的かもしれない。
特にHomebridgeプラグインを使いAirPlay2レシーバー用にスピーカーを接続している場合は、HomePodの自立再生のように操作することも出来る。
SMB
基礎的なファイル共有。LAN内で使える外部ストレージとして全デバイスからアクセス可能なほか、DDNSやVPNと合わせればクラウドストレージの代わりとして使うことも可能。
M1はIntel機と比べ外付けSSDの速度が出にくいという検証結果もあるが、ネットワーク越しに共有するには問題ない程度。

Infuse等のネットワークプレイヤー機能を備えたAppを使えば、格納した動画を好きなデバイスから鑑賞する事も可能。
LAN内で完結するため速度が出やすく、4K/60pクラスの高画質な動画も楽々再生が可能。

わたしもAppleTV越しの4KテレビでスクスタMV流しまくってたりした。
TimeMachineディスク

上述したSMBの応用。SMB共有する際に、TimeMachineディスクとしての使用を許可するか選択出来る。NAS等の他の機器を必要としない上に外付けドライブにも設定出来るため、MacBookから無線でバックアップし続ける用途で重宝する。
ただファイルサーバー機として運用する場合、他デバイスよりも自身のバックアップを作る方が優先度が高かったりする。その場合はTimeCapsuleが安定かも。
APFSコンテナで使用領域を制限すると楽。TimeMachineは空き容量の全てを使うため、HDD/SSDを物理的に分けるかコンテナ/パーティションで容量を絞っておかないと他用途で使えなくなる。
iCloudフォトのアーカイブ
macOS故に写真AppはiCloudと自動同期され、品質を保ったままの書き出しも容易。
定期的にiCloudからMacminiへと書き出ししておくことで、手軽にアーカイブを作成出来るためiCloudの容量を空けられる。

上述したSMB機能とセットで使うと、アーカイブ後の写真や動画を好きなデバイスから閲覧可能になる。VPNを併用すれば遠隔地からアクセス可能になり、クラウド同期と変わらずどこからでも閲覧可能。
書き出ししたものを別途新規のライブラリに格納していく方法もあるが、ミュージックのようにLAN内デバイスからライブラリへアクセスする方法がないため、iPhone/iPadから覗けなくなり使い勝手は微妙。
ローカルLLM/生成AI

解説記事(基本)/(仮想Linux)
M1チップ以降のSoCの性能を活かすと、比較的小型のモデルであれば快適に動作させられる。
これとWebUIを組み合わせることで、LAN内のデバイスのブラウザからAIチャットを好きに扱えるようになる。ホーム画面に追加すればまるでアプリのように起動でき、VPNを使えば外出先からも使用可能。
WebUI環境下でAppleシリコンのNeural Engineを活用する方法は未だ存在していないため、動かす環境はOllamaが安定。
モデルの大きさによって必要なメモリも大きく変動するが、8GBメモリで7~8Bのモデルがギリギリ動作するといったところ。スペックを上げればPhi-4のようなGPT4o-miniに匹敵するモデルも動かせるが、最近は小型軽量のモデルでもGPT3.5級はあるため充分事足りる。
8GBメモリのAppleシリコンで動かす日本語LLMは、記事執筆時だとgemma-2-2b-jpn-itやBorea-Phi-3.5-mini-Instruct-Jpが安定(リンクは両方Ollamaで動かせるgguf版)。
Ollama Web UIはDocker Desktop for Macで動作し、チャットだけでなくモデルの追加/削除や細かな設定も全てブラウザ上で行える。Ollama本体もDockerで動作するらしいが、コマンドラインでのモデルの追加に一手間必要になるため非推奨。
仮想マシンのDockerコンテナのWebUIからホストのOllamaにアクセスするには、ローカルにAPIを公開した上でIPアドレスを直打ちしてやれば良い。詳細はこちら。
Ollamaと同時にDifyやn8nを動かすと、モデルの性能を活かしたアプリやオートメーションの制作が可能になる。
個人用途の生成AIでは最高峰の活用方法で、Apple Intelligenceを超えるポテンシャルがあるためチャレンジしてみる価値はある。
おまけ:マイクラサーバー(Minecraft/Java)
当然ゲーム用のサーバーも組める。Modマルチを含めたマイクラのサーバーを組むのも容易で、Java EditionもBedrock Editionもカバー出来る。
ただし、単純に複数台のMacでデータを共有しながらプレイしたいだけであればiCloud Driveを使う方が遥かに楽。
事前に設定したポート番号でルーターからポート開放を行えば、DDNSアドレスとポート番号でアクセス可能。固定アドレスであるDDNSを使えばグローバルIPの変化に悩まされずに済むため、レンタルサーバーと変わらない快適さでプレイ可能。
LAN内公開ではポートがランダムのため、遠隔地のマルチプレイを行うにはVPN環境がほぼ必須となる。サーバーを立てればVPN環境がなくともDDNSアドレスだけで扱えるため、セキュリティに直結するVPNのアクセス情報を渡さずにマルチプレイが可能になる。

またCraftyのDockerコンテナを使うと、WebUIでサーバー構築と管理が可能になる。WebUIのユーザー設定を行いDDNSアドレスを教えることで、ブラウザ経由でお互い設定画面に飛べるというまるでレンタルサーバーのような環境を相手に提供することも出来る。実質Realms
コンテナの中でJavaとサーバーファイルが動作することになるため、メモリ管理には特に注意。Homebridgeのコンテナと併用する場合でも、CraftyだけはホストOSのDockerで直接動かすのが安全。
ちなみにMinecraftで使われているJavaはバージョンによりARM版でないこともあるが、Prism Launcherを挟めば全バージョンでARM版のJavaを使えるためAppleシリコンMacでの動作性能が大幅に向上する。
ただサーバー運用では特に意味がない上に、そもそもランチャーを使う仕様ではないので気にする必要はないかも。クライアント側でMacを使う際にはお試しあれ。
補足
iPhone/iPad/VisionProからのVNC/SSH接続
VNC/SSHそれぞれ色々あるが、個人的には有料のRemoter Proがお気に入り。(→AppStore)

ちょっとお高いけどこれ一つでSSHとVNCの両方を扱えるので、面倒なアプリの切り替えが減るのは大きな長所。
タッチ操作は小型デバイス向けの画面をトラックパッドっぽく扱うモードに加え、大型デバイス向けの画面タップ位置を直接カーソルクリックとするモードも完備。

SplitViewやMagicKeyboardとトラックパッドといったiPadの各要素にも対応しており、iPad版はvisionOSでも動作可能なため1回買えばあらゆる場面で便利に使える。
SSH含めmacOSにかなり近い使用感を得られるので、iPad用として非常におすすめ。
Docker管理用のWebUI
各種機能に使うDocker自体もまた、WebUIで他デバイスから管理可能。コンテナの起動終了やリソース確認が可能で、WebUI自体もまたDockerコンテナであるため導入が楽。つまりは自身の機能で終了する自爆の危険があるが、初期設定ではちゃっかり無効化されている。

Docker管理用のWebUIは色々あるが、わたしはPortainerを使用中。
WebUIからコンテナの環境変数の変更→再構築まで出来るため、非常に万能。やろうと思えば仮想環境とホストそれぞれのDockerを同時に管理することだって出来る。
演算領域としての活用
遠隔操作でアクセス可能で24時間稼働し続けるため、放置系の作業を投げておくと結構便利。
わたしの使用例だとチャットモデルを裏で延々とDLしたり、iPhoneで撮った4KHDRのビデオを限定公開のYouTubeにアップし続けてバックアップしたり。モバイルデータ通信に制限があっても、遠隔アクセスしたMacminiは全て自宅の回線で動作しているためVNCアクセス以上に消費することもない。
ダミーHDMIアダプタによる使い分け
モニターなしで稼働させると解像度が固定され、遠隔操作の際に支障が出るためダミーHDMIアダプタを用いるといい。ダミーアダプタはAmazonで1000円程度から購入可能で、1080p程度に設定しておけば遠隔操作での使い勝手も良くなる。

Thunderboltモニターをメイン・ダミーアダプタはThunderboltモニターをミラーリングするように設定し、Thunderboltモニターを取り外して遠隔操作した後にダミーアダプタの解像度を1080pに設定することで、ケーブルを抜き差しするだけでスムーズな切り替えが可能になる。
ケーブルを挿せば4K超えの高画質モニターを使ったデスクトップ運用・ケーブルを抜けば1080pダミーアダプタの遠隔操作主体のサーバー運用と切り替えられるようになり、デスクトップPCの役割をある程度カバーしつつメンテナンスも快適に行えるようになる。
ThunderboltモニターはiPadProやMacBookにも使い回せるため、iPadProの拡張・MacBookをデスクトップ運用・Macminiのメンテナンスと無駄にならないのも良い。
自宅サーバーの更なる拡張へ
ここに並べた以外にも活用アイデアは無数にあり、わたしの持つ中にも組み込めてないものがあったりする。省電力かつ高性能なAppleシリコンのMacminiは汎用性が高く、1台でこなせる役割は多岐に渡る。
なんならこのブログをMacminiに移すことすら、DDNSを活用すれば充分可能だろう。M1なら全機能フルで回しても40Wに届かないので、電気代を考えても有料サーバーを契約するより安上がりかも・・・。サーバー代の元取れてるし流石にやらないけど

M4モデルは性能・ポート数が増えつつも小型化しており、16GBメモリで14Bクラスの優れたモデルを稼働させられるのは魅力的。
しかし現状M1の性能にGemma2を合わせれば充分な環境を構築出来ていることを考えると、AppleシリコンのMacは長持ちすることがよく分かる。
各種WebUIのおかげで機能拡張もしやすくなり、VPN導入によって遠隔地からのメンテナンスも容易になった。
しばらくは手探りで機能を模索しながら、サーバー機本体に限定せず広く環境を見直していくつもり。




