Domácí Server

Serverem (od slova serve – sloužit) chápeme počítač, který poskytuje nějaké služby. Proč ale investovat peníze na stavbu a čas na správou vlastního serveru, když jsou potřebné služby dostupné online na internetu?

V tomto článku popíšu svůj domácí server a rozeberu, k čemu používám server já a proč jsem se rozhodl ho provozovat doma. Vezměme jako ilustrační příklad synchronizaci a zálohování jako nabízí dropbox – 100 GB za 99$ (~2000 Kč) ročně. Já mám na svém serveru k dispozici 1 200 GB s náklady za elekřinu okolo 800 Kč za rok. Samozřejmě mi server slouží ještě k mnoha dalším účelům. Tím se výhodnost ještě zvyšuje.

Hardware serveru

Typický server běží 24 hodin denně, je tedy vhodné pamatovat na jeho spotřebu. Nejúspornějším použitelným hardwarem jsou minipočítače s procesory ARM. Spotřeba se pohybuje kolem 5 W, ovšem nabízejí jen velmi nízký výpočetní výkon a minimální možnosti rozšíření. Najít ARM desku se SATA řadičem je téměř nadlidský výkon. Hodí se tak jen opravdu na nejjednodušší aplikace a pokusy. Další možností, kterou jsem vybral já, je server založený na desce s Intel Atom procesorem. Výhodou je architektura x86/x64 a že se jedná o klasický počítač se standardními periferiemi. V mém případě se spotřeba pohybuje v rozmezí 20-25 W. Výkon oproti moderním desktopům nízký, ale na server s OS Linux dostačující s rezervou. Můj server je tedy tvořen deskou Intel D410PT s Intel Atom CPU, která je doplněna 1 GB operační paměti. Systémovým diskem je 2,5″ disk s kapacitou 250 GB, který mi zbyl po výměně disku v notebooku za rychlejší. Výhodou notebookového disku je nízká spotřeba, oproti klasickým 3,5″ diskům. Jako úložiště pro data slouží 1 TB 3,5″ disk, který jsem původně koupil jako externí. Později se však porouchal řadič zajišťující USB připojení, takže ho nadále používám jako interní SATA disk. Tento disk je většinu času vypnutý a spouští se pouze v případě potřeby, takže nezvyšuje spotřebu serveru. Data se kterými se pracuje častěji jsou umístěna na systémovém 2,5″ disku. Jedinnými náklady na pořízení serveru tak byla cena základní desky s pamětí, tedy okolo 1300Kč. Disky už jsem měl, stejně jako 100W ATX zdroj ze starého Pentia 2. Vzhledem k omezenému prostoru pro umístění ve skříni pro rozvaděč jsem se neobtěžoval se skříní, ale všechny komponenty prostě přišrouboval na dřevotřískovou desku. Samozřejmě podle očekávaného využití je třeba také odpovídající připojení k Internetu. Jestli čtete tyto stránky tak již ale zřejmě nějaké máte. (Poznámka na okraj: Připojení bez veřejné adresy nepovažuji za připojení k Internetu a ISP co přidělují pouze adresu z privátního rozsahu bych žaloval za klamavou reklamu.)

design

Software a služby

Volba operačního systému byla poměrně jednoduchou záležistostí. Už před pořízením serveru bylo jasné, že na něm poběží nejuniverzálnější dostupný operační systém – Linux. Konrétně jsem zvolil distribuci Debian, která je na serverech jednou z nejčastěji používaných a mám s ní nejvíce zkušeností. Zaznamenal jsem nějaké pokusy o systém pro domácí servery od Microsoftu, ale očekávám od něj vysoké HW požadavky a mnohá omezení. Tedy nic pro mě. Dále zde popíšu některé služby, které mi server poskytuje.

Síťové úložiště

Dokud jsme měli v domácnosti jeden počítač, bylo všechno jednoduché. Doba ale pokročila a nyní jen já sám používám notebook, netbook a smartphone. Některá data je vhodné mít přístupná ze všech těchto zařízení. Pokud se jedná o velké množství nepříliš důležitých dat, přišlo mi jako nevhodnější řešení síťové úložistě. Veškeré filmy, záznamy přednášek a další data tak mohu připojit jako síťový disk a přímo je přehrát nebo s nimi pracovat bez nutnosti jejich kopírování. Protože na notebooku mi běží primárně Windows a na netbooku Debian, zvolil jsem dva různé přístupy. Pro přístup z Windows je nastavena Samba s tunelováním skrze OpenVPN pro zabezpečení při přistupu přes internet. Na linuxu jsem se doposud spokojil s připojovím pomocí SSHFS.

Synchronizace a zálohování

Pokud potřebuji pracovat s některými daty i bez přístupu k síti, je nutné mít kopii dat přímo na zařízení. Potom je ale třeba zajistit, aby byla všude aktuální verze dat. Neustálé ruční kopírování je nepraktické a je tak vhodné mít možnost synchronizaci zautomatizovat. K synchronizaci používám kombinaci programu rsync s vlastními skripty a multiplatformního nástroje Unison. Zaujal mě ale projekt OwnCloud, který plánuji v nejbližší době vyzkoušet. Synchronizaci používám pro veškerou muziku, dokumenty a aktuální verzi zdrojových podkladů všech mých projektů. Protože jsou data umístěna zároveň na 3 místech jsou tímto způsobem také zálohována. Pro jistotu ale nejkritičtější data zálohuji pomocí služby SpiderOak (bezpečnější obdoba dropboxu).

Systém pro správu verzí

Při vývoji software, ale i při psaní dokumentů, je téměř nutné mít k dispozici několik posledních verzí, aby bylo možné se v případě potřeby vrátit o pár kroků zpět. Udržovat si více verzí ručně je nepraktické a nepřehledné. Verzovací systémy umožňují ke každé verzi doplnit komentář a ukládají pouze rozdíly mezi verzemi a šetří tak místo na disku. Obsahují také podporu pro spolupráci více lidí. Pro použití ve svých projektech mám nakonfigurováno úložiště Subversion (SVN).

Streamování a nahrávání televize

Jednou ze služeb, které lze zprovoznit v podstatě jen na domácím serveru je streamování a nahrávání televizních kanálů. Pro tyto účely používám propracovaný balík softwaru MythTV. Na serveru je připojen TV tuner a nainstalován mythtv backend, který se stará o příjem signálu a streamování ke klientům. Dále má na starosti nahrávání nastavených programů. Plánovač nahrávání je poměrně mocný. Dokáže například nahrávat pořady podle klíčových slov, které vyhledá v EPG informacích pro každý kanál. Plánovač, lze také ovládat pomocí webového rozhraní a není tedy problém si nastavit nahrání oblíbeného pořadu na dálku v případě, že nestihnete domů dorazit včas. Na notebooku a netbooku je pak nainstalován MythTv frontend, pomocí kterého lze pustit televizi naživo, přehrát uložený záznam nebo plánovat nahrávání. Je možné od začátku sledovat i ještě nahrávané pořady. Tuto funkci používám velmi často. Spustím nahrávání pořadu a začnu jej sledovat s půlhodinových spožděním. Mohu tak potom posunem dopředu přeskočit nepříjemné reklamy. Další užitečnou funkcí je posun o několik vteřin zpět. Typické použití je pokud na vás přítelkyně při sledování hokeje promluví, vy se otočíte a přijdete o gól.

mythweb.png

MythFrontend.png

Vlastní Web

Pokud plánujete webovou prezentaci u které nečekáte miliony návštevníků denně, je možné ji provozovat i na domácím serveru. Tento web právě také běží na serveru u mě na půdě. Je zde potřeba ale odpovídající připojení k internetu. Především ve směru ven, aby nebyly návštěvníci omezováni. Bohužel můj poskytovatel nenabízí přijatelný tarif s více než 1,5 Mbit uploadem. Očekávám tedy, že v případě stížností na rychlost budu možná muset web přemístit jinam. Používám klasickou konfiguraci LAMP – Linux, Apache, MySQL a PHP. Nad ní běží WordPress jako systém pro strávu obsahu.

Samozřejmě se dá najít mnoho dalších využití domácího serveru, například různé herní servery, VPN pro bezpečné spojení dvou sítí přes internet atd. Stačí jen investovat pár korun do hardware a trochu úsilí do konfigurace a správy software a můžete mít domácí server i vy.


Tricopter
Vlastní CNC (1) – Mechanika