Mac mini jako domácí server: software, díky kterému o něm celé měsíce nemusím vědět
V první části jsem popsal cestu od externího disku připojeného k televizoru až k Macu mini M4 se třemi NVMe SSD a celkovou kapacitou 12 TB. Samotný hardware ale z počítače server neudělá. Rozhodující je až software – a hlavně to, zda po několika měsících stále slouží mně, místo abych já sloužil jemu.
Nejlepší známkou toho, že můj domácí server funguje, je ticho. Televize je vypnutá, Mac mini schovaný ve skříni Lian Li a na žádném monitoru nesvítí administrační panel. Přesto na pozadí stahuje soubory, třídí hotová média, zásobuje Jellyfin, přijímá fotografie z iPhonu a obnovuje podpisy aplikací přes AltServer.
Většinu času o něm nevím.
To není efektní vlastnost, kterou lze vyfotit nebo zapsat do tabulky parametrů. Po letech hledání vhodného domácího úložiště je to ale možná ta nejdůležitější. Router, který nestíhal indexovat knihovnu, i klasický počítač s hlučnými pevnými disky se připomínaly neustále. Současný Mac mini se připomene zpravidla až tehdy, když si po několika měsících vzpomenu, že bych měl aktualizovat aplikace.
Když jsem přešel z Macu mini M2 na M4, nevymýšlel jsem celý server znovu. Přenesl jsem dosavadní systém a pokračoval tam, kde jsem skončil. M2 nebyl pro tyto úlohy pomalý a M4 nezměnil způsob, jakým server používám. Přidal větší výkonovou rezervu, 16 GB paměti a 10Gb/s Ethernet, software však zůstal stejný. Snadnost tohoto přechodu nejlépe ukázala, že sestava už není experimentem, ale hotovým pracovním prostředím.
macOS není serverový systém. Mně to nevadí
Pokud bych domácí server navrhoval od nuly podle učebnice, macOS by pravděpodobně nebyl první odpovědí. Linux nabízí služby nezávislé na přihlášeném uživateli, přesnější řízení jejich startu, lepší kontejnerový ekosystém a podstatně více návodů pro domácí provoz služeb. Hotový NAS zase nabídne připravenou správu disků, RAID, snapshoty a webovou administraci.

Jenže svůj server nepoužívám podle učebnice. Používám ho doma, pod televizorem, s několika konkrétními aplikacemi. A všechny na macOS fungují tak, jak potřebuji.
To je celý důvod mé spokojenosti. Nevybral jsem si macOS proto, že by v každé serverové disciplíně porazil Linux. Vybral jsem si ho proto, že mezi mnou a výsledkem vytváří nejméně tření. Jellyfin, qBittorrent, Resilio Sync, AltServer i Amphetamine mají grafické aplikace, které lze nainstalovat běžným přetažením do složky Aplikace. Když je potřeba něco zkontrolovat, nemusím hledat příkaz, konfigurační soubor ani cestu ke kontejnerovému logu. Otevřu aplikaci nebo její webové rozhraní.
Počítač navíc zůstává počítačem. Mac mini je připojený k LG OLED televizoru přes HDMI, takže jej mohu kdykoliv použít jako plnohodnotný Mac. Není to jednoúčelová krabička zavřená v technické místnosti. Pro současné použití tuto univerzálnost většinu času nepotřebuji, ale je příjemné vědět, že server není uzamčený do jediné role.
Každodenní správa samotného macOS přitom prakticky neexistuje. Torrent ovládám přes VueTorrent, Jellyfin má klienty na počítači, televizoru, iPhonu i iPadu a Resilio se spojí se serverem po otevření aplikace v telefonu. Na plochu Macu se vracím hlavně při aktualizacích. To je pro mě podstatnější argument než teoretická možnost postavit techničtější a dokonaleji automatizované řešení.
Nepřetržitý provoz bez předstírání dokonalosti
Domácí server nesmí usnout jen proto, že je vypnutý televizor. Na Macu proto používám Amphetamine s jednoduchou nekonečnou relací. Žádné složité podmínky, plánování podle sítě ani pravidla pro jednotlivé procesy. Aplikaci spustím, aktivuji relaci a macOS zůstane vzhůru. Televize se může normálně vypnout a server pokračuje v práci.

Funkci Drive Alive, která periodickou aktivitou zabraňuje uspávání externích disků, nepoužívám. NVMe boxy ji v mé sestavě nepotřebují a není důvod je preventivně udržovat aktivní jen proto, že taková volba existuje. Amphetamine zde řeší spánek počítače, nikoliv hardwarové problémy úložiště.
Rozdíl mezi softwarem a hardwarem se ukázal při jediném skutečném problému, který jsem během dlouhodobého provozu zaznamenal. Když byly všechny tři externí NVMe boxy připojené k zadním portům Macu mini, porty je nedokázaly spolehlivě napájet současně. Disky se odpojily a už se samy nepřipojily, takže obsah na nich zůstal offline. Na první pohled mohl problém vypadat jako chyba macOS, spánek disku nebo nestabilní aplikace. Ve skutečnosti šlo o napájení portů. Přesunutí jednoho boxu do předního konektoru problém odstranilo a od té doby je sestava stabilní.
Žádná utilita by nedostatečné napájení neopravila. Taková zkušenost je užitečnější než dlouhý seznam voleb v aplikaci: pokud disk fyzicky zmizí ze systému, nepomůže mu častější přístup ani dokonalejší knihovna médií.
Ani návrat po výpadku elektřiny není plně bezobslužný. Mac mini se po obnovení napájení zapne, ale nemám povolené automatické přihlášení. FileVault je vypnutý, takže nejde o odemykání šifrovaného disku, přesto je nutné zadat heslo a zkontrolovat, zda se všechny aplikace spustily. Některé naběhnou automaticky, Amphetamine však znovu aktivuji ručně.
Z pohledu skutečného serveru to není ideální. Položky spouštěné po přihlášení nejsou plnohodnotný správce služeb a počítač po výpadku neobnoví celý provoz bez mého zásahu. V domácnosti jsou ale výpadky natolik vzácné, že mi dává větší smysl jednou za dlouhou dobu vše zkontrolovat než stavět vlastní spouštěcí a dohledové skripty se závislostmi mezi službami. Je to vědomý kompromis mezi absolutní automatizací a jednoduchostí.
Kombinace vypnutého FileVaultu a vypnutého automatického přihlášení je navíc bezpečnostní mezistav. Ruční zásah po restartu už stejně přijímám, interní disk však není chráněný šifrováním. Provoz to nekomplikuje, je to však jedna z oblastí, kterou má smysl do budoucna přehodnotit.
qBittorrent s tváří VueTorrentu
qBittorrent jsem nezačal používat až na Macu. Používal jsem ho roky ve Windows, věděl jsem, kde co najdu, a po přechodu na macOS jsem neměl důvod měnit návyk, který fungoval. Podpora Macu není nejsilnější stránkou projektu a kdybych dnes vybíral klienta úplně od začátku, jednodušší Transmission by mohl působit přirozeněji. Ve skutečném používání ale nezačínám s prázdným srovnávacím listem. qBittorrent už zapadá do celého pracovního postupu a nezpůsobuje mi problémy.

Samotnou aplikaci pro macOS přitom téměř neotevírám. Celé stahování spravuji přes VueTorrent, alternativní webové rozhraní postavené nad API qBittorrentu. Motor se nemění: přenosy, frontu, cesty i zápis na disk stále řídí qBittorrent. VueTorrent pouze nahrazuje jeho původní webovou tvář.
Tato zdánlivě kosmetická změna rozhoduje o tom, zda je server pohodlný. Původní webové rozhraní jsem prakticky nepoužíval. VueTorrent mi od začátku dával větší smysl: je přehlednější, modernější a hlavně dobře použitelný na různě velkých obrazovkách. Stejné rozhraní otevřu na iPhonu, iPadu i počítači a z kteréhokoli zařízení zvládnu vše, co běžně potřebuji.
Nový torrent tak nemusím přidávat na Macu pod televizorem. Nemusím zapínat vzdálenou plochu ani hledat myš a klávesnici. Otevřu VueTorrent na zařízení, které mám právě v ruce, zvolím cíl a dál už server pracuje sám. Takové drobné pohodlí na papíře nevypadá zásadně, ale při každodenním používání mění celý vztah k serveru.
Cesta od složky Temp k čisté knihovně
Nejdůležitější část spojení qBittorrentu a Jellyfinu se neodehrává v žádném komplikovaném skriptu. Je ukrytá ve struktuře složek.
Na discích mám oddělené dočasné adresáře a finální složky pro filmy a seriály. qBittorrent zapisuje rozpracované stahování do složky Temp. Teprve po dokončení přesune soubor do konečného umístění. Jellyfin sleduje pouze finální složky, takže se nikdy nepokouší zařadit film, který má staženou polovinu dat, nebo seriálovou epizodu, která právě roste před očima.
V praxi se mi nestalo, že by Jellyfin neúplný soubor předčasně indexoval. Po dokončení přesunu se nový obsah objeví automaticky. Nemusím jej ručně kopírovat, obnovovat knihovnu ani čekat desítky minut, jak tomu bývalo u mediálního serveru integrovaného v routeru.
Tři fyzické disky přitom zůstávají třemi samostatnými svazky. Na každém jsou vlastní složky Filmy a Seriály a v Jellyfinu jsou jejich cesty ručně spojené do společných knihoven. Uživatel na televizoru neřeší, na kterém NVMe disku konkrétní soubor leží. Vidí jednu knihovnu filmů a jednu knihovnu seriálů. Fyzické rozdělení úložiště zůstává organizační záležitostí serveru, nikoliv diváka.
Takové uspořádání je pro mě lepší než snaha vytvořit z disků jeden virtuální celek za každou cenu. Knihovna sjednotí obsah tam, kde jej potřebuji vidět pohromadě, ale jednotlivé disky zůstávají samostatné a snadno vyměnitelné.
Jellyfin je srdce celé sestavy
Jellyfin je hlavní důvod, proč domácí server vůbec vznikl. V první fázi jsem chtěl pouze přestat přenášet externí disk mezi počítačem a televizorem. Dnes spravuje knihovnu rozloženou na 12TB úložišti se stovkami filmů a seriálových epizod, hlídá složky na třech discích a zpřístupňuje je na všech obrazovkách, na kterých je skutečně používám.

Proč právě Jellyfin a ne Plex? Moje odpověď není ideologická. Jellyfin je zdarma a pro moje použití nabízí vše, co potřebuji. Žádná funkce, kterou používám, není schovaná za předplatným. Nainstaluji server, přidám vlastní složky a používám vlastní obsah.
Na LG OLED B3 přehrávám přes oficiální aplikaci z LG Content Store. Na iPadu používám oficiálního klienta a podle situace také Swiftfin, na počítači stačí webové rozhraní. Výkon Macu mini při běžném přehrávání vůbec neřeším. Většinu času není server něco, co bych sledoval v Activity Monitoru; je to prostě zdroj filmu. M4 má obrovskou rezervu a už M2 zvládal stejnou práci bez pocitu omezení.
Nativní instalace na macOS je v tomto případě výhodou. Jellyfin nemusí běžet v linuxovém kontejneru uvnitř virtuálního stroje a může přímo využívat multimediální schopnosti Apple Silicon. Pro mě je ale důležitější praktický výsledek než technologický diagram: aplikace běží, knihovna se aktualizuje a obraz se přehraje bez potřeby server neustále ladit.

Bezchybný ovšem není celý přehrávací řetězec. Největší slabinu jsem nenašel u obrazu, ale u pokročilého zvuku. Pokud soubor obsahuje Dolby TrueHD, aplikace na televizoru oznámí, že zvuk není podporovaný, a zůstane ticho. LG OLED B3 je připojený přes eARC k soundbaru Samsung HW-Q950A, přesto se zvuková stopa k reproduktorům nedostane.
To je poměrně zásadní nedostatek, protože právě u kvalitních filmových souborů je pokročilá zvuková stopa součástí důvodu, proč je ukládat v původní kvalitě. Současně dobře ukazuje, že schopnosti mediálního serveru nekončí u procesoru. O výsledku rozhoduje také klient v televizoru, podporované formáty, způsob předání zvuku přes eARC a to, zda Jellyfin dokáže pro danou kombinaci zvolit vhodnou náhradní cestu. Mac může mít výkonu nadbytek a soundbar může být připravený, ale jediný nepodporovaný článek přehrávání umlčí celý systém.
Zde je rozdíl mezi větou „Jellyfin přehraje všechno“ a skutečným používáním. Obraz a běžné zvukové formáty fungují natolik spolehlivě, že o nich nemusím přemýšlet. TrueHD je výjimka, kterou nelze v poctivém popisu sestavy schovat.
Média jsou hlavním důvodem existence serveru, nepřetržitě zapnutý Mac si však postupně našel i menší, osobnější úkoly.
Resilio Sync místo dalšího tarifu iCloudu
Resilio Sync na serveru neřeší multimediální knihovnu. Má jednodušší a osobnější úkol: automaticky ukládá fotografie z fotoaparátu iPhonu na jeden z externích disků.

Jakmile v telefonu otevřu aplikaci, připojí se ke stále dostupnému Macu mini a odešle nové fotografie. Nepotřebuji kvůli tomu platit větší prostor na iCloudu a nemusím snímky pravidelně kopírovat kabelem. Server je doma zapnutý nepřetržitě, takže iPhone má téměř vždy dostupný cíl.
Důležitý je také směr této operace. Když fotografii později smažu z telefonu, kopie na serveru zůstane. Nejde tedy o obyčejné zrcadlení, které by každé smazání poslušně rozneslo na všechna zařízení. V každodenním smyslu se Resilio chová jako automatická lokální záloha fotoaparátu.
V přísném významu slova ale nejde o kompletní zálohovací strategii. Fotografie jsou po odstranění z telefonu pouze na jednom serverovém disku. Pokud by tento disk selhal, druhá nezávislá kopie neexistuje. Resilio řeší pohodlné automatické ukládání a šetří cloudové předplatné, ne pravidlo 3-2-1 ani ochranu proti každému typu ztráty dat.
Omezení stojí za pojmenování právě proto, že aplikace funguje tak nenápadně. Automatizace snadno vytvoří pocit, že je o data definitivně postaráno. Ve skutečnosti pouze odstranila ruční krok. Druhá kopie je samostatný problém.
U filmů a seriálů tento problém vědomě neřeším. Jejich druhou kopii nevytvářím, protože při selhání disku je mohu znovu získat. U 12TB knihovny by úplná záloha znamenala další velké úložiště a náklady, které mi vzhledem k nahraditelnosti obsahu nedávají smysl. Tři disky nejsou RAID a každý z nich může selhat. U mediální knihovny toto riziko přijímám. Fotografie jsou na rozdíl od filmů nenahraditelné, a jejich jediná serverová kopie proto zůstává slabým místem celé sestavy.
AltServer: malá služba, které nepřetržitý Mac dává smysl
AltServer je v celé sestavě nejméně nápadná služba, ale současně jeden z nejlepších příkladů, proč je výhodné mít doma plnohodnotný Mac zapnutý 24 hodin denně.

U bezplatného vývojářského účtu jsou aplikace nainstalované přes klasický AltStore podepsané pouze na sedm dní. Bez pravidelného obnovení se přestanou spouštět. Pokud AltServer běží na notebooku, který je většinu týdne vypnutý, uspán nebo mimo domácí síť, z malé technické podmínky se stane pravidelná povinnost.
Na serveru o ní nevím. Mac mini běží, iPhone se doma objeví ve stejné síti a AltServer obnoví podpisy automaticky na pozadí. Používám bezplatný účet a v praxi nemusím certifikáty ručně hlídat. Přesně tak má podle mě automatizace vypadat: ne jako další panel se statistikami, ale jako povinnost, která zmizela.
AltServer sám o sobě nákup domácího serveru neobhájí. Když už ale Mac běží kvůli médiím, stahování a synchronizaci, jeho dodatečné náklady jsou prakticky nulové. Každá podobná drobná služba zvyšuje hodnotu jednoho společného stroje.
Kde se pohodlí macOS láme
Dlouhodobý provoz je stabilní. Údržba už tak elegantní není.
Aktualizace neřeším průběžně podle pevného kalendáře. Jednou za několik měsíců si vzpomenu, projdu používané aplikace a nainstaluji jejich nové verze. Není to vzorová bezpečnostní politika, zvlášť pokud bych chtěl v budoucnu zpřístupnit více služeb z internetu. Odpovídá to ale skutečnému používání: server se mezi těmito zásahy sám nepřipomíná a nic mě nenutí otevírat jeho plochu.

Při aktualizacích se nejčastěji projeví nejotravnější vlastnost macOS. U prakticky všech aplikací, které používám mimo App Store, narazím při prvním spuštění nové verze na ochranu systému. Místo obyčejného nahrazení aplikace musím otevřít Nastavení, přejít do části Soukromí a zabezpečení a spuštění ručně povolit. Chápu důvod: macOS brání otevření aplikace, kterou nepovažuje za důvěryhodnou. Při údržbě několika dlouhodobě používaných serverových aplikací je však opakovaný rituál únavný.
Amphetamine z App Storu se v tomto směru chová výrazně pohodlněji. U ostatních aplikací distribuovaných přes DMG nebo ZIP se aktualizace často podobá ruční výměně souboru, po které ještě následuje přesvědčování systému, že jej skutečně chci otevřít. macOS mi šetří práci celé měsíce a potom ji část vrátí v jednom odpoledni údržby.
Druhou hranicí pohodlí je vzdálený přístup. Z internetu se dnes k serveru připojuji pouze přes SFTP; přístup vede přes přesměrování portu na routeru s Asuswrt-Merlin. Webová rozhraní qBittorrentu ani Jellyfinu zatím neotevírám, i když to do budoucna plánuji. Tady končí současné pohodlí a začíná další úkol: zvolit bezpečný způsob přístupu. Pro podobné služby dává větší smysl privátní VPN typu Tailscale nebo WireGuard, případně správně zabezpečená reverzní proxy tam, kde má být služba dostupná širšímu okruhu zařízení.
To není jen obecná bezpečnostní poučka. VueTorrent poskytuje prakticky plnou kontrolu nad qBittorrentem a Jellyfin zpřístupňuje celou knihovnu i uživatelské účty. Rozhraní, které je pohodlné pro mě, by bylo stejně pohodlné pro kohokoliv, kdo by se do něj dostal.
Nejlepší server je ten, který nepřekáží
Po měsících používání nemám příběh o pádech databáze, ztracených torrentech ani pravidelném restartování služeb. Jediný vážnější provozní problém způsobilo napájení tří externích boxů, nikoliv macOS nebo některá z aplikací. Po přesunutí jednoho disku do předního portu se problém nevrátil.
Absence dramat je hlavní výhodou této sestavy. qBittorrent stahuje do dočasné složky a hotové soubory přesune. Jellyfin je automaticky přidá do společné knihovny. VueTorrent mi dovolí vše řídit z telefonu. Resilio odloží nové fotografie mimo iPhone. AltServer na pozadí obnoví podpisy. Amphetamine udrží počítač vzhůru, zatímco televizor zůstane vypnutý.
Žádná z těchto aplikací sama o sobě není důvodem označit macOS za nejlepší serverový systém. Linux by dokázal lépe řídit služby po startu, NAS by nabídl propracovanější ochranu dat a jiné klientské zařízení by mohlo vyřešit problém s TrueHD. Jenže kvalitu domácího serveru neurčuje počet funkcí, které by teoreticky mohl mít. Určuje ji součet kroků, které kvůli němu musím pravidelně dělat.
V mém případě se tento počet přiblížil nule.
Mac mini proto nevnímám jako NAS, který má navíc plochu, ani jako počítač, který náhodou zůstal zapnutý. Je to stále univerzální Mac, ale software z něj vytvořil službu přítomnou na všech ostatních zařízeních v domácnosti. Na televizoru vidím knihovnu, na telefonu VueTorrent a fotografie se ukládají bez kabelu. Samotný server zůstává v pozadí.
Předchozí sestavy jsem posuzoval podle toho, co ještě nezvládají. U Macu mini po měsících řeším spíše opačnou otázku: kdy jsem na něj naposledy musel sáhnout?
Obvykle si nevzpomenu. A právě proto funguje.
