Skip to main content

1.8 Self-hosting server YunoHost

Predstavenie YunoHost

YunoHost je nadstavbou nad čistým OS Linux Debian (ku ktorému je priamy prístup aj cez SSH), zameraný na self-hosting webových služieb a aplikácií s dôrazom na viacpoužívateľské prostredie a jednotné prihlasovanie. 

Kým TrueNAS je dátový gigant na ukladanie súborov a ich zálohovanie a umbrelOS je minimalistický osobný cloud, YunoHost je kompletný internetový server. Je ideálny, ak chcete pre školu, rodinu či malú firmu prevádzkovať vlastný kolaboratívny server (Nextcloud), webový server aj s HTTPS, e-mailový server či chat – to všetko na vlastnej doméne s jedným prihlasovacím účtom pre každého používateľa (SSO).

Hardvérová náročnosť je pomerne nízka, je ho možné prevádzkovať aj na SBC – dostupný je aj pre ARM64 CPU a je jedným z najpopulárnejších systémov pre správu serverov na Raspberry Pi. Samotný YunoHost vezme z disku veľmi málo (približne 5 GiB), no väčší disk využijeme pre samotné používateľské údaje a aplikácie.

Inštalácia YunoHost

Virtuálny počítač môžeme nachystať úplne rovnako ako pre umbrelOS (pozri kapitolu 1.1). VirtualBox nám v tomto prípade ponúkne aj „Unattended Installation“, teda vytvorenie používateľského účtu a pomenovanie servera už vopred, no tento spôsob v záujme prípravy na realitu skutočnej inštalácie na hardvér odmietnime. V detailoch siete venujme pozornosť MAC adrese, aby sme na reálnom DHCP serveri zariadili statické priradenie IP adresy.

Po spustení počítača môžeme potvrdiť inštaláciu v grafickom režime a zvoliť jazyk. Rozdelenie disku nemusíme riešiť – ponechajme predvolené nastavenie, ktoré vytvorí nutné systémové oddiely (pre bootovanie) a takmer celý priestor disku ponechá v oddieli v súborovom systéme ext4.

Po dokončení inštalácie OS môžeme pokračovať vo webovom prehliadači zadaním IP adresy servera. Budeme musieť potvrdiť bezpečnostné varovania, pretože server používa HTTPS s nepodpísaným certifikátom. Zadajme vlastné doménové meno v tvare priezvisko.lab a vytvorme používateľa „správca systému“ s dohodnutým používateľským menom a heslom.

Táto fiktívna doména musí byť samozrejme zadefinovaná aj na lokálnom DNS serveri – zatiaľ stačí záznam typu A. V MikroTik RouterOS je možné využiť výraz RegExp v tvare ^(.*\.)?priezvisko\.lab$.

Pokiaľ by sme zadali skutočné doménové meno a mali ho cez DNS nasmerované na náš server YunoHost (jeho porty TCP/80 a TCP/443), systém by automaticky získal TLS certifikát Let's Encrypt a fungovalo by nám HTTPS bez varovaní.

Základná konfigurácia

Po dokončení inštalácie sa musíme prihlásiť vytvoreným účtom – môžeme sa pripojiť aj cez naše doménové meno, napríklad v tvare http://yuno.priezvisko.lab. Hneď na úvod dajme vyhľadať aktualizácie systému a nainštalujme ich. Následne upravme zopár nastavení v ponuke Nástroje → Nastavenia YunoHost:

  • NGINX Force HTTPS: Nie – keďže nemáme skutočne platné doménové meno, TLS certifikát nebude platný, preto zrušíme presmerovávanie na HTTPS (toto však neplatí pre administrátorské rozhranie);
  • NGINX Compatibility: Modern – nebudeme sa pripájať z archaických webových prehliadačov;
  • Portal → Allow users to add, remove, edit mail forward: Nie – nedovolíme používateľom, aby si sami nastavovali alias e-mailovej adresy.

Pozor na snapshoty vo VirtualBoxe: Ak po vytvorení snapshotu virtuálny počítač nenabootuje (UEFI nenájde disk), hneď po spustení počítača vojdite cez Esc do bootovacej ponuky a cez Boot Maintenance Manager → Boot Options → Boot From File spustite /EFI/debian/shimx64.efi. Potom po naštartovaní servera opravte bootovanie príkazom v termináli:
sudo grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=debian --force-extra-removable