budování úplného domácího serveru-základy

zveřejnil (a) Oliver dne 06.09.202106.09.2021

Self-hosting důležitý software a data na vlastním domácím Serveru má mnoho výhod, ale může být skličující úkol, jak začít s. Provozuji svůj vlastní server již několik let a zde popíšu možnosti hardwaru a softwaru. Toto bude úplný průvodce, Jak nastavit svůj vlastní malý server.

proč byste měli vytvořit svůj vlastní server?

v některých případech byste neměli. Některé velmi nákladné, specializované nebo těžko konfigurovatelné (jako e-mail) služby mohou být ve skutečnosti lepší u externího poskytovatele. Pokud používáte své služby jen velmi zřídka nebo nejste vůbec ochotni se ponořit do některých znalostí potřebných pro hostování, nemusí to být pro vás to pravé místo.

nebojte se však, hostování softwaru na vlastní pěst nebylo nikdy tak jednoduché jako dnes a přichází s mnoha výhodami. Možná je nejdůležitější, že vás to dělá trochu více nezávislým. Tech giganti nemají tak snadný čas na získání vašich dat a nějaký problém v cloudu nebo u vašeho poskytovatele internetu vám nezabrání v přístupu k vašim datům a službám (lokálně).

v době, kdy služby ovládají stále důležitější části vašeho života (jako inteligentní domácí systém), může být tato kontrola a nezávislost neocenitelná. Z dlouhodobého hlediska to může být dokonce nákladově efektivnější v dlouhodobém horizontu. Jistě nákup hardwaru je investice, ale hostování terabajtů dat v cloudu vás bude stát hodně-navždy.

v neposlední řadě to může být velmi zábavný projekt, který vám pomůže naučit se hodně o technologii a máte vždy možnost vyzkoušet nový software. Existuje tolik open source & svobodný software venku!

co chcete se svým serverem?

před vytvořením něčeho je důležité se zeptat sami sebe: co mám v plánu dělat s tímto serverem? Pokud hledáte jen hostit pár malých služeb lokálně bez velkého množství dat výsledek bude vypadat velmi odlišné od plného úložného serveru.

pokud potřebujete pouze místní služby, doporučuji ve většině případů získat novější Raspberry Pi a případně externí SSD pro data. Jsou levné, energeticky účinné a snadno se nastavují. Popsal jsem svůj malý inteligentní domácí server a rozbočovač založený na Raspberry Pi 4 do hloubky v tomto článku. Přidání SSD pro malé ukládání dat je také docela snadné.

pokud hledáte výkonnější řešení nebo potřebujete uložit velké množství dat, doporučuji použít jinou platformu. Někteří lidé používají NAS nebo starý serverový hardware (který může fungovat velmi dobře), ale doporučuji běžný zákaznický hardware se zaměřením na některé speciální vlastnosti.

  • ujistěte se, že máte dobré síťové připojení (1Gbit/s nebo možná dokonce 10)
  • používejte energeticky účinné komponenty a v závislosti na tom, kam chcete umístit tiché servery
  • získejte procesor, který je dostatečně výkonný, aniž byste plýtvali energií v nečinnosti
  • obvykle nepotřebujete grafickou kartu
  • Získejte dostatek paměti RAM, to může být pro váš server velmi důležité
  • získejte základní desku a pouzdro, které pojme dostatek pevných disků & SSD pro ukládání a má dobré chlazení
  • získejte kvalitní paměťová média. Použil jsem řadu WD red hodně (jen buďte opatrní s verzemi SMR) a slyšel jsem dobré věci o sérii Seagate Ironwolf také
  • ujistěte se, že vaše komponenty jsou správně chlazeny a vše je dostatečně dobře připojeno. Budete chtít, aby to bylo sestaveno & zapomeňte na
  • získejte kvalitní napájecí adaptér!
  • osobně bych se vyhnul hardwarovým řadičům RAID

pokud chcete vytvořit domácí server, zvažte nákup prostřednictvím těchto přidružených odkazů na podporu blogu
Western Digital Red Plus series
Seagate IronWolf Series
Raspberry Pi 4 8GB pro menší server

německý vydavatel Heise má několik skvělých článků o budování vlastního serveru. Můžete také najít mnoho mezinárodních článků o tom. Moje osobní učení po vytvoření několika verzí serveru je vždy plánovat to, co potřebujete právě teď a ve velmi blízké budoucnosti. Nestavte za něco, co byste mohli potřebovat za 10 let. Do té doby bude k dispozici lepší hardware. Jedinou výjimkou může být úložiště. Vždy je dobré mít několik portů SATA, abyste mohli později přidat další úložiště.

softwarový zásobník

existuje spousta softwaru pro servery a každá volba bude záviset na vašich preferencích a případu použití. Následující je můj osobní názor po několika letech práce na tomto problému ve svém volném čase.

nejprve začněme s tím, co bych na serveru nepoužil: Windows. Upgrady jsou těžké, spousta softwaru není správně podporována a je drahá. Místo toho jděte s řešením Unix/Linux. Existují plná řešení, jako je FreeNAS, OpenMediaVault nebo Unraid, ale Unraid stojí peníze a další řešení také omezují to, co můžete udělat. Mohou být pro vás dobrou volbou, ale rozhodl jsem se jít DIY cestou a postavit si vlastní řešení založené na osvědčené technologii.

můj domovský server běží na minimálním Ubuntu server OS (verze LTS) s přístupem SSH pro správu. Používám souborový systém ZFS ke sloučení jednotek do jednoho velkého datového fondu a zároveň poskytuje funkce, jako jsou mezipaměti, snímky, RAID a jednoduché zálohy. V tomto fondu jsem vytvořil několik souborových systémů pro různé případy použití, přičemž některé z nich byly zpřístupněny prostřednictvím sítě pro ostatní klienty. Na serveru běží démon Docker a já používám několik souborů docker-compose k hostování sady služeb jako OpenHab, Grafana, Bitwarden / Vaultwarden a Nextcloud. Reverzní proxy (Traefik v tuto chvíli) umožňuje oslovit vybrané služby odkudkoli na webu.

můj domovský server stackhardware založený na ZFS a storage poolfile systém se snímky a samba sharesDocker a Traefik pro software

externí zálohy se provádějí prostřednictvím dalších jednotek připojených přes USB a pravidelně se otáčejí. Několik skriptů a uptime monitor pravidelně kontrolují, zda vše stále běží správně a jinak odesílají alarmy. Instalace je většinou automatizovaná a lze ji rychle znovu provést na novém hardwaru (pokud jsou data samozřejmě stále k dispozici).

jak nastavit server-Automatizovaná instalace

před skutečným nastavením serveru jsem se rozhodl tento proces automatizovat. To usnadňuje, rychlejší, méně náchylné k chybám a také funguje jako druh dokumentace. Velkou výhodou je základní platforma, kterou lze spolehlivě nastavit rychle a snadno. Tímto způsobem lze vše ostatní, data a skutečné služby, konfigurovat nezávisle na tomto systému. Pokud chci každý přejít na něco jiného, mělo by to být relativně snadné.

pro automatizaci jsem zvolil Ansible. Ansible je software, který vám umožní psát tzv playbooks: krátké skripty, které definují, jaké kroky je třeba udělat pro nastavení serveru. Tyto playbooks pak lze vyvolat pomocí jednoduchého příkazu a bude automatizovat všechny manuální kroky potřebné pro proces nastavení. Naučil jsem se Ansible sám při nastavování serveru, takže jsem si jistý, že playbooks by mohl být lepší, ale budu sdílet, stejně jako vše ostatní potřebné pro nastavení serveru, přes GitHub v následujících částech této série.

spustil jsem tyto skripty ve VM několikrát před skutečnou instalací, abych se ujistil, že vše funguje tak, jak bylo zamýšleno. Od té doby jsem přidal několik nových funkcí a přepracoval části stávajících. Skutečná instalace na serveru byla poměrně jednoduchá.

nejprve musíte nainstalovat svůj oblíbený operační systém Linux. Vybral jsem Ubuntu Server LTS a nainstaloval jej přes USB flash disk. Systém je nainstalován na SSD pro rychlejší spuštění. Po instalaci jsem pouze nakonfiguroval síť (doporučuji statickou IP), povolil SSH a přesunul server do konečné fyzické polohy. Od této chvíle není potřeba žádná obrazovka / klávesnice / myš, lze ji spravovat prostřednictvím sítě(pokud se něco pokazí).

další kroky jsou také jednoduché: Stáhněte si skripty, které potřebujete, nainstalujte Ansible a spusťte playbooks.

sudo apt install git ansiblegit clone https://github.com/OliverHi/zfs-homeserver.gitcd zfs-homeserver/ansibleansible-playbook setup_playbook.yml -K

to spustí playbook s názvem setup_playbook.yml, který nastaví server. Samozřejmě můžete použít libovolný Ansible playbook zde, ale můj je poměrně jednoduchý a vypadá takto.

--- - name: "Setting up the home server" hosts: localhost connection: local # become root user, which is needed for most tasks become: yes become_user: root vars_files: - vars/main_vars.yml tasks: - name: Install the needed packages apt: name: - samba - software-properties-common #- linux-headers - dkms - zfsutils-linux - samba-vfs-modules - zfs-auto-snapshot state: latest cache_valid_time: 3600 - import_tasks: tasks/setupZFStask.yml - import_tasks: tasks/setupUsersTask.yml - import_tasks: tasks/setupFoldersTask.yml - import_tasks: tasks/setupSambaTask.yml - import_tasks: tasks/setupDocker.yml # and more tasks if needed

v podstatě pracuje na lokálním serveru, běží jako root a používá proměnné, které jsem definoval v samostatném main_vars.soubor yml. Začne to instalací několika balíčků, které potřebuji pro své nastavení, a poté proběhne sadou úkolů, které jsem napsal pro různé části softwarového zásobníku. Nastaví souborový systém ZFS, vytvoří uživatele a složky, nastaví Docker a další. Vždy si je můžete přizpůsobit podle svých představ.

v následujících příspěvcích této série vysvětlím, jak jsem nastavil souborový systém, uživatele, akcie samby, Docker a reverzní proxy Traefik. V každé části také přidám potřebné soubory Ansible pro jejich automatickou instalaci. Veškerý kód bude k dispozici na mém účtu GitHub.

další příspěvek o nastavení ZFS a záložního systému naleznete zde.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.