Serwer www na Raspberry Pi5 z dostępem do internetu cz. 1

Czas czytania: 8 minuty

Raspberry Pi5 pod własny serwer internetowy

Słowem wstępu

Tutorial dotyczy instalacji i podstawowej konfiguracji serwera internetowego – www, php, bazy danych mysql, serwerów pocztowych (poczty wychodzącej i przychodzącej) wraz z darmowym managerem Ispconfig3 (darmowy zamiennik Cpanelu itp.) na Raspberry Pi5, z dostępem do internetu.

Konfiguracja i dobór wymaganego sprzętu pod własny serwer internetowy

Wszystko czego będziesz potrzebował to:

  • Raspberry Pi 5, najlepiej z 8GB pamięci ram, w obudowie z wentylatorem
Raspberry Pi5
  • Dysk Nvme 128GB lub 256GB
Dysk Nvme
  • Ewentualnie Obudowę usb c na dysk ssd nvme + Dobrej jakości kabel usb c
Obudowa usb-c na dysk nvme
  • Przejściówka, do której można podłączyć dysk nvme bezpośrednio do Raspberry pi 5 przez złącze PCIe
Adapter do Raspberry Pi5 na dysk Nvme
  • Własna domena internetowa
  • Opcjonalnie hub usb c, z własnym zasilaniem
hub usb-c z własnym zasilaniem

Zapytasz pewnie jaki jest sens stawiania takiego serwera we własnym domu/firmie, gdy vps o podobnej wydajności można już zakupić w cenie 80zł/mc ?. Każdy pewnie będzie miał różne argumenty za i przeciw, ja mogę jedynie podać te, którymi ja się kierowałem.

Zalety

  1. Niezależność od firm zewnętrznych. Różnego typu serwerami internetowymi zajmuję się już od około 20 lat, zarówno prywatnie jak i zawodowo, więc z doświadczenia wiem, że nie ma nic bardziej irytującego niż przenoszenie wszystkich danych na inną „lepszą” maszynę, gdy firma w której masz wykupiony serwer kończy z ofertą danej gamy serwerów. Często nie ma możliwości przeniesienia tego automatycznie i wszystko trzeba zrobić ręcznie :] Pół biedy, gdy jest to serwer firmowy i wszystko robi się w godzinach pracy, gorzej, gdy jest to serwer prywatny, a my nie mamy na to czasu :]. Dodatkowo, aby taka operacja była możliwa musimy, przynamniej przez jakiś czas dzierżawić dwa serwery. Stary, z którego przenosimy dane i nowy, na który przenosimy dane, co generuje dodatkowe koszty. Tak wiem, że pewnym rozwiązaniem tego problemu są serwery chmurowe, ale są one też sporo droższe.
  2. Koszty. Jak już wspomniałem, koszt dzierżawy serwera vps o podobnych parametrach i wydajności co nasza malinka, to około 80zł miesięcznie. To koszt serwera wirtualnego, w którym często takie elementy jak pamięć, procesor, dysk twardy, są współdzielone z innymi klientami. Gdybyśmy się zdecydowali na niezależną maszynę dedykowaną, koszt będzie dużo wyższy. Koszt wszystkich wspomnianych wyżej elementów Raspberry pi5 bez huba usb c, to około 800zł-900zł + koszt energii elektrycznej (moje raspberry pi5, pobiera kilka wat na godzinę, więc koszt energii elektrycznej jest znikomy). Wydatek jednorazowy takiego własnego serwera internetowego na Raspberry pi jest niby spory, ale zwraca się już po niecałym roku, więc jest to opłacalne.
  3. Dostęp do NAS. O NAS, to na serwerze vps za około 80zł/m-c możemy zapomnieć. No chyba, że będziemy tam hostować jedynie jakąś małą stronę internetową, a wolne zasoby dyskowe przeznaczymy na dysk sieciowy i vpn. Według mnie to jednak rozwiązanie dość drogie i dość problematyczne. Po co nam nas na serwerze ? o tym napiszę w dalszej części cyklu artykułów „Serwer www na Raspbery Pi 5„.
  4. Większa kontrola nad serwerem. Szczególnie nad elementami wpływającymi na bezpieczeństwo serwera na Raspberry Pi 5.
  5. Sprawdzenie się. Tak, jednym z argumentów przemawiających za zakupem Raspberry Pi5 i postawieniem na nim w pełni funkcjonalnego serwera www, było sprawdzenie się, czy będę w stanie to zrobić całkowicie od podstaw oraz chęć nauczenia się czegoś nowego.
  6. Święty spokój, czyli brak nękania mnie różnego typu propozycjami przejścia na wyższą droższą ofertę, zakupu dodatkowych usług itp.
  7. Coraz gorsze wsparcie klienta. To niestety jest plaga dzisiejszych czasów, że kontakt z suportem technicznym w coraz większej ilości firm graniczy z cudem, w innych jest mocno utrudniony. Nagminne jest stawianie na infolinii przez takie firmy różnego rodzaju botów, które mogą doprowadzić spokojnego człowieka do niepochamowanej agresji.

Wady

  1. Gdy nasz raspberry pi 5, dysk twardy bądź jakikolwiek inny element naszego serwera ulegnie awarii, sami musimy namierzyć problem i ponieść koszty jego naprawy bądź wymiany.
  2. Dla firm chcących skożystatać z takiego rozwiązania pewnym problemem może być także niższe tzw. SLA, czyli mówiąc kolokwialnie ciągłość pracy serwera. Może być ona spowodowana np. awarią zasilania (potocznie, chwilowym brakiem prądu), jednak na szczęście w dzisiejszych czasach, takie awarie zdarzają się bardzo rzadko, o ile sami się do nich nie przyczynimy przez naszą niefrasobliwość.
  3. Potencjalnie mniejsze bezpieczeństwo serwera na Raspberry Pi . Musisz poświęcić dodatkowy czas na zabezpieczenie serwera przed zagrożeniami z zewnątrz i ewentualnie skorzystać z oprogramowania, z którego nigdy wcześniej nie korzystałeś.

Uwagi przedinstalacyjne

  1. Jeśli poniósł cię entuzjazm i właśnie zdecydowałeś się na przeniesienie swojego dość popularnego sklepu internetowego bądź bloga, na własny serwer internetowy oparty na raspberry pi, to jednak proponowałbym tobie jeszcze raz się nad tym zastanowić i dokładnie przemyśleć wszelkie za i przeciw. O ile mój serwer pracuje dość stabilnie i osobiście nie miałem z nim większych problemów (działa na nim między innymi niniejszy blog i kilka innych stron) to niestety nie jestem w stanie przewidzieć jak się zachowa pod bardzo dużym obciążeniem (zakładając, że samo łącze internetowe nie jest wąskim gardłem). Rasberry Pi jest oparte na procesorze ARM, w technologii RISC. Procesory z rodziny x86 są produkowane w technologii CISC (te na których stoi większość serwerów internetowych i twój domowy komputer). Zaletą procesorów ARM jest to, że wydzielają dużo mniej ciepła, pobierając tym samym dużo mniej energii elektrycznej (niższe koszty), jednak też ich architektura sprawia, że nie są w stanie wykonywać wielu operacji w jednym cyklu procesora (np. operacja mnożenia składa się z kilku takich mniejszych operacji), więc wykonują one takie mniejsze operacje w osobnych następujących po sobie cyklach procesora. Powoduje to, że są one nieco wolniejsze w niektórych operacjach, ciężko też jest z tego powodu porównywać ich wydajność z procesorami z rodziny x86. Moja ocena więc w tym zakresie, to dość subiektywne odczucia. Nie jest jednak tak źle jak mogło by się co poniektórym osobom wydawać 🙂
  2. Wspomniałem na początku artykułu, że możesz potrzebować aktywnego (z własnym zasilaniem) huba usb c ale, że nie jest on obowiązkowy. Żeby postawić w pełni funkcjonalny serwer, musisz do niego podpiąć szybki dysk ssd. Karta micro SD nie jest tu dobrym pomysłem, o ile nie chcesz stawiać takiego serwera na nowo za jakieś 2, czy 3 miesiące. Ma ona dość ograniczoną trwałość. Każde dodatkowo podpięte urządzenie do naszego Raspberry Pi, dodatkowo go obciąża. Dysk ssd pobiera niestety sporo dodatkowej energii i może się zdarzyć, że nasze łącze usb nie będzie w stanie jej mu zapewnić. Będzie się to objawiało zawieszeniem się systemu. Najczęściej wtedy będziemy w stanie dalej pingować adres IP naszego Raspberry, jednak nie będziemy mogli się na nie zalogować i żadne usługi jak poczta, czy strony www nie będą działać. Rozwiązaniem tego problemu jest wpięcie aktywnego huba pomiędzy nasze Raspberry Pi i dysk twardy.
  3. Dostępna na polskim rynku nakładka na Raspberry Pi5, umożliwiająca podłączenie dysku twardego bezpośrednio do złącza pci Raspberry pi5, od biedy ujdzie. Nie mieści się ona jednak w oryginalnej obudowie z wentylatorem Raspberry Pi5, to po pierwsze, po drugie moja nakładka przy próbie podłączenia do raspberry ułamała zatrzask w gnieździe na raspberry pi. Nie wiem, czy winę za to ponosi dość sztywna taśma łącząca gniazdo raspberry z gniazdem nakładki, czy dość kiepskiej jakości gniazdo w raspberry Pi5, czy może ja, a dokładnie moja niefrasobliwość, jednak nie zmienia to faktu, że i tak nie mieści się ona w obudowie, w której mamy także zamontowany wentylator, który włącza się w razie potrzeby i schładza nasz procesor przy większym obciążeniu.

aktualizacja 25.02.2024 – Niestety musiałem się przeprosić z moją nakładką nvme na Raspberry Pi5. Okazało się, że kieszeń usb3 na dysk nvme Orico którą posiadam, nie spełnia parametrów, o których pisze producent. Wymieniłem przewód usb3 na dużo lepszej jakości, myśląc że ten dostarczony z kieszenią był uszkodzony i objaw jest ten sam. Dysk zawiesza system, gdyż rozłącza się co jakiś czas. W miarę stabilnie działa natomiast na przewodzie usb 2.0, więc wnioskuję, że użyte elementy elektroniczne do budowy tej kieszeni najzwyczajniej nie są w stanie utrzymać wymaganej prędkości przesyłu danych i co jakiś czas się dławią. Na dowód poparcia mojej hipotezy zamieszczam poniżej zrzut, jakie prędkości jest on w stanie utrzymać na usb3.

Zmiana sposobu podłączenia dysku Nvme sprawiła mi sporo problemów, jako że najpierw musiałem posklejać połamane złącze w Raspberry Pi5 (niezawodny superglue dał radę 🙂 ). Potem okazało się, że przestawienie raspberry w tryb bootowania ze złącza nvme, a nie usb wcale nie jest takie proste (pomimo kilkukrotnych prób, wciąż uparcie bootował z usb i dopiero kilkunasta próba z kolei przyniosła porządany efekt), kolejnym problemem okazała się zamówiona większa obudowa pod raspberry pi5.

Okazało się , że sprzedający to zwykły oszust, a obudowa prawdopodobnie przeznaczona jest pod Raspberry Pi4, a nie jak pisał sprzedający pod Raspberry Pi5, dołączone śrubki także były z d…y bo nic do niczego nie pasowało, no i na deser … brak nawierconych otworów z jednej strony obudowy, aby nie można było przykręcić bocznej ścianki :] Masakra. Obecnie wszystko jakoś poskręcałem i trzyma się niejako na słowo honoru i o dziwo działa.

Jak znajdę więcej czasu i dokupię odpowiednie śruby, podocinam i poskręcam wszystko, aby było stabilne i nie rozleciało się przy byle okazji, albo co gorsze nie doprowadziło do jakiegoś zwarcia na płytkach.

Jakie są obecnie transfery dysku podłączonego bezpośrednio do złącza Nvme ? Tym razem zrzut z konsoli malinki.

Test był robiony poleceniem

# hdparm -tT /dev/nvme0n1

gdyby to kogoś interesowało :]

Gotowy ?

Podłącz więc teraz swój dysk ssd poprzez przewód USB C do komputera domowego i zainstaluj na nim system Raspberry OS (instrukcję jak to zrobić znajdziesz w internecie), następnie po zakończonej instalacji przepnij dysk do szybkiego portu usb (tego przy wtyczce internetowej) swojego Raspberry pi 5 i włącz go.

Osoby, które jednak skorzystają z nakładki nvme na raspberry pi, nie będą miały takiej możliwości więc mogą do tego celu wykorzystać kartę SD. Włóż kartę SD do czytnika w komputerze domowym i zainstaluj 64bit Rapberry Os ze Środowiskiem graficznym. Przełóż taką kartę do slotu w Raspberry Pi 5 i uruchom system. Ściągnij na tak uruchomionym Raspberry Pi, plik Raspberry Imager i uruchom go. Tym razem podczas instalacji systemu Raspberry OS wybierz Raspberry OS 64bit Lite (bez środowiska graficznego), a jako źródło na jakim chcesz zainstalować system, swój dysk Nvme (ten podłączony do RPi poprzez nakładkę). Po skończonej instalacji wyłącz Raspberry, usuń kartę SD i ponownie uruchom swoją malinkę. System powinien się już uruchomić z dysku nvme.

Zaloguj się po ssh, za pomocą programu Putty ze swojego komputera domowego/laptopa, do swojego Raspberry Pi, podając login i hasło ustalone przez ciebie podczas instalacji systemu operacyjnego Raspberry OS. Adres ip jaki został przydzielony malince przez twój router, możesz podejrzeć na swoim routerze internetowym lub też wysnifować używając do tego jakiegoś skanera ip. Jeśli logowanie przebiegło pomyślnie, od tego momentu możesz zająć się już instalacją potrzebnego oprogramowania.

Serwer www na Raspberry Pi5 z dostępem do internetu cz. 2

Serwer www na Raspberry Pi5 z dostępem do internetu cz. 3

Serwer www na Raspberry Pi5 z dostępem do internetu cz. 4

Serwer www na Raspberry Pi5 z dostępem do internetu cz. 5

Serwer www na Raspberry Pi5 z dostępem do internetu cz. 6

Autor

  • gielo

    Witam! Jestem pasjonatem technologii z wykształceniem matematycznym i informatycznym. W kręgu moich zainteresowań leży między innymi elektronika, linuks i technologie serwerowe.

    View all posts