Domowy serwer

Wstęp

Rok jeszcze się nie skończył to nie ma co zwalniać tempa 😉 A z racji, że przed świętami udało mi się zdobyć na Allegro (za 139 zł) dysk SSD 250 GB Samsunga to postanowiłem przywrócić do życia mój stary komputer stacjonarny HP Compaq Elite 8300, o poniższych parametrach:

ProcesorIntel Core i5-3470 3,20 GHz
Ilość rdzeni procesora4
Pamięć RAM12 GB DDR3
Rodzaj dysku twardegoSSD
  
Liczba punktów uzyskana podczas testu procesora w programie PerformanceTest 96128
Liczba punktów uzyskana podczas testu pamięci w programie PerformanceTest 91859

Jak widać powyżej nie jest to demon prędkości (chociaż z symulacjami czasu rzeczywistego paneli PV i turbin wiatrowych z częstotliwością 20 kHz w Matlabie potrzebnych do wykonania pracy magisterskiej sobie poradził), ale do zastosowania w roli domowego serwera powinien być wystarczający.

Po co serwer w domu?

Pierwsze moje pomysły wykorzystania domowego serwera przedstawiam poniżej:

  • Pi-hole – W domu wykorzystuję wiele urządzeń, które są podłączone do Internetu. Niestety nie na wszystkich mam możliwość zainstalowania jakiegoś adblock’a, więc dobrze by było realizować takie zadania na poziomie całe sieci. Dodatkowo dostęp do Internetu możliwy jest dzięki sieci mobilnej Play, a jak wiadomo wszystkie oferty „no limit” są tak naprawdę z limitami transferu, więc fajnie byłoby przyoszczędzić parę megabajtów na niepobieraniu niepotrzebnych reklam. Na początku myślałem o zainstalowaniu Pi-hole’a na routerze jednak obecnie przeze mnie używany nie spełnia minimalnych wymagań, a wymiana na nowy model nie daje jakiegoś znaczącego skoku technologicznego, więc na razie wstrzymuję się z zakupem. Dlatego jeśli jedynym zadaniem dla domowego serwera nie ma być blokowanie reklam to jest to idealne miejsce na instalację Pi-hole’a.
  • Napęd DVD – Niestety dzisiaj nowe komputery czy laptopy sprzedaje się bez napędów optycznych. Ma to swoje uzasadnienie, ale problem pojawia się, gdy trzeba uzyskać dostęp do danych sprzed wielu lat przechowywanych właśnie na płytach CD/DVD. Do tej pory zawsze szukałem jakiegoś starego laptopa z napędem DVD i zawartość płyt przenosiłem za pomocą pendrive’ów. Było to zadanie czasochłonne. W związku z tym taki serwer powinien udostępniać zawartości płyt w całej domowej sieci.
  • HubScreen – Wykonany przeze mnie w tym roku projekt działa na granicy swoich możliwości. Ewentualne próby rozbudowy (np. dodanie asystenta głosowego nad którym miałbym kontrolę) wymagałoby zmiany sprzętu co mogłoby wiązać się ze znaczącymi zmianami w projekcie. Aby tego uniknąć w takiej sytuacji dobrze byłoby przenieść zadania związane z renderowaniem strony WWW na domowy serwer, a wynik tego działania prezentować na ekranie z projektu HubScreen. Do uzyskania tego efektu powinna wystarczyć nawet najprostsza aplikacja pozwalająca na uzyskiwanie „zdalnego pulpitu” na domowym serwerze.

Pierwsze podejście – Debian 10

Przy pierwszym podejściu postanowiłem podejść do tematu „po bożemu”, czyli zainstalować system operacyjny, który najczęściej występuje na serwerach. Dodatkowo Pi-hole jest oprogramowaniem, które zostało opracowane pod Raspberry Pi, czyli linux’a (a nawet Raspberry Pi OS, który jest Debianem), więc problemów z działaniem raczej nie powinno być. I tak było w rzeczywistości. Instalacja blocker’a reklam sprowadziła się do jednego polecenia wydanego w terminalu:

curl -sSL https://install.pi-hole.net | bash

Po zakończeniu procesu instalacji i konfiguracji oprogramowania, a następnie zmianie adresu serwera DNS w routerze jeden z celów został osiągnięty.

Został jeszcze napęd DVD. Do jego udostępnienia postanowiłem wykorzystać serwer protokołu iSCSI. Mogłem go uruchomić dzięki jednej z dwóch aplikacji:

  • iscsitarget – Niestety aplikacja nie była zgodna z najnowszą wersją kernela w systemie Debian 10 (była kompatybilna maksymalnie z wersją Debian 8).
  • targetcliPo skonfigurowaniu serwera wszystko działało idealnie. Na domowym komputerze z systemem Windows 10 dodanie napędu było wyjątkowo intuicyjne dzięki domyślnie zainstalowanej aplikacji „Inicjator iSCSI”. Potem mogłem posługiwać się urządzeniem tak jakby było podłączone bezpośrednio do płyty głównej w moim komputerze. Było to to czego szukałem. Niestety nie ma róży bez kolców i po wymianie płyty na inną serwer iSCSI powodował kernel panic, który prowadził do „wysypania się” systemu operacyjnego serwera. Niestety nie znalazłem rozwiązania tego problemu, więc po raz setny poddałem się z próbą wykorzystania linux’a w codziennym zastosowaniu i wróciłem do tego co jest sprawdzone – czyli Windowsa.

Drugie podejście – Windows Server 2019

Na drugie podejście wpadłem zaraz po tym jak odkryłem, że Pi-hole jest dostępny w postaci kontenera Docker. Z początku myślałem o wykorzystaniu WSL’a skoro Microsoft tak go reklamuje, ale przypomniałem sobie o problemach w wersji pierwszej (chociażby brak możliwości używania systemd w Debianie), a wersja druga dostępna na serwery jest na razie tylko w kompilacji Preview. Natomiast chwilę wcześniej walczyłem z Dockerem przy próbie uruchomienia serwera gry „Plemiona” i nawet spodobało mi się to rozwiązanie. Dodatkowo w domu podstawowym systemem operacyjnym jest Windows, więc Windows Server zapewniłby największą kompatybilność.

I tak po kilku dniach walki z Dockerem i kolejnych kilku z routerem udało się uruchomić Pi-hole’a.

Pi-hole działający na domowym serwerze w ramach kontenera Docker

Na razie dowiedziałem się, że aktualizacja może nie być taka prosta jak w zwykłym linux’ie, ale obecnie jest to problem przyszłości 😉

Napęd DVD został udostępniony w sieci domowej tym razem dzięki usłudze udostępniania folderów dostępnej domyślnie w systemie Windows. Proste i na dzień dzisiejszy wystarczające rozwiązanie. Windows Server również posiada serwer iSCSI, ale do tej pory nie rozgryzłem jak udostępniać z jego wykorzystaniem napędy optyczne (z dyskami nie ma żadnych problemów). No ale jeszcze żadnych płyt nie musiałem nagrywać, więc o to będę martwił się później 😉

Podsumowanie

Na dzień dzisiejszy serwer spełnia swoją rolę.

Średnie dzienne zużycie energii to 0,52 kWh, co daje dzienny koszt działania serwera w wysokości 29 groszy (miesięcznie 8,70 zł). Koszt raczej do przełknięcia. Oby zwrócił się w postaci zaoszczędzonego transferu za Internet.

A co w przyszłości? Aktualnie w domu buduję sobie sieć Casambi z czujnikami (m. in. wilgotności, PM 2.5, PM 10, temperatury). Chciałbym jeszcze dokupić czujnik temperatury na ZigBee, który znajdzie się gdzieś na balkonie (w tym celu zakupiłem już na Aliexpress układ CC2530, który wymaga jeszcze zmiany firmware). Wszystkie dane z czujników planuję gromadzić w bazie danych na serwerze i w jakiś fajny sposób je wizualizować. Zobaczymy co tam do tego czasu jeszcze mi do głowy przyjdzie 🙂