Moja przygoda z domową "chmurą" Nextcloud
Już prawie rok temu postanowiłem, że spróbuję postawić własny serwer Nextcloud. Do czego miałby on służyć? Jest to osobista "chmura" (w cudzysłowach, bo jest to rozumienie potoczne), na której można przechowywać swoje pliki, ale ma też kilka innych bajerów, jak czat, klient poczty, czy kalendarz. Jaka była moja motywacja? Pomyślałem, że pewnie lepiej swoje dane przechowywać u siebie i dysponować dużą ilością pamięci. Miałem również nadzieję, że inwestycja się zwróci, w końcu zakładałem, że zapłacić będę musiał tylko raz - za sprzęt. Jak wyszło w "prawdziwym życiu"? Tego dowiecie się dalej w tym tekście.
Jakie były wstępne wymagania?
- Router powinien wspierać wystawienie komputera do zewnętrznej sieci internetowej i nadać mu adres IP
- Złożyć mały komputerek, który nie robiłby żadnego hałasu i pobierałby minimalną ilość prądu
- Komputerek powinien mieć dwa dyski (jeden na kopię zapasową)
- W miarę możliwości nie płacić
I to w zasadzie tyle, choć jak zobaczycie, niektóre rzeczy nie wyszły tak jak zamierzałem...
Specyfikacja złożonego mini komputera
- Obudowa Inter-Tech ITX A60
- Pamięć do laptopa GoodRam SODIMM, DDR3, 8 GB, 1600 MHz, CL11
- 2x Dysk WD Blue 1 TB 2.5" SATA III
- Płyta główna Biostar J3160NH v6.x z wbudowanym procesorem Intel Celeron J3160 Quad-core 2.24GHz
Z tego jak udało mi się złożyć ten komputer, byłem na początku całkiem zadowolony, potem wyszło kilka bolączek. Jest niewiele większy od routera a chłodzenie ma wyłącznie pasywne, bez żadnych wiatraków. Metalowa obudowa świetnie w tym pomaga, ponieważ jest gruba i dobrze oddaje ciepło do otoczenia całą swoją powierzchnią. Cenowo wyszło atrakcyjnie, bo tylko 1 165,93 zł (choć trzeba przypomnieć, że inflacja nie była wtedy jeszcze taka tragiczna).
To czego dowiedziałem się w praktyce, to to, że laptopowe dyski HDD są bardzo wolne... Z drugiej strony użycie SSD też nie byłoby zbyt mądre, ponieważ gdy taki się zepsuje, to na amen, a HDD nawet z dziurami jeszcze trochę popracuje.
Jestem usatysfakcjonowany z energooszczędności projektu, gdyż zawarty procesor zabiera tylko 6W. Można z tego wywnioskować, że całość zabiera około 10W, ale szczerze, to nie mierzyłem tego.
Tak to wygląda:
Zainstalowany system operacyjny
Muszę przyznać, że na początku postawiłem Windows Server, bodajże 2019 i emulowałem Nextcloud w dockerze. Jednak było to tak tragicznie wolne, że przesiadłem się na Ubuntu Server, z czego znowu przesiadłem się na zwykłego Linux Minta i na nim już pozostałem.
Instalacja Nextcloud
Tutaj zaczęła się droga przez cierniste bagno. Nie, nie wierzcie ludziom w internecie, że zainstalowanie Nextclouda jest banalne i zajmuje chwilę.
Na początku próbowałem pójść na łatwiznę i instalowałem Nextclouda jako pakiet snap, jednak później szybko zrozumiałem, że nie mam nad tym dużej kontroli i konfigurowanie tego jest zupełnie pod górkę. Nie raz odinstalowywałem całość, żeby zainstalować ją ponownie z innymi opcjami.
W końcu się wkurzyłem i zainstalowałem wszystko ręcznie, włącznie z serwerem Apache i wszystkimi innymi niezbędnymi bibliotekami. Czy było to łatwe? Nie, Linux rzucał mi nieustannie kłody pod nogi i tworzył problemy tam, gdzie ich być nie powinno, czyli po staremu 😅 Jednak w końcu miałem władzę nad tym co się dzieje i bezpośredni dostęp z odpowiednimi uprawnieniami do wnętrzności Nextclouda.
Doświadczenia, problemy, nauczki
Na początku, po pierwszym restarcie routera, dowiedziałem się, że mój publiczny adres IP jest dynamiczny, bo zmienił się na inny. I to był moment, w którym doszedłem do wniosku, że muszę skorzystać z serwisu, który będzie dawał mi prawdziwą domenę i sprawdzał co jakiś czas, czy nie zmienił się adres. Zacząłem korzystać z płatnej usługi noip.com, co jak widzicie trochę popsuło moje plany, by za nic nie płacić. Po tym jak dodatkowo zainstalowałem oficjalny programik działający w tle oraz sprawdzający, czy IP się zmieniło, uzyskałem stały dostęp do swojej usługi.
Sporo czasu spędziłem nad dodaniem certyfikatu SSL, dzięki któremu uzyskałem stronę pod protokołem HTTPS. Na początku kupiłem taki certyfikat i choć potem z niego zrezygnowałem, to nie uważam tego za zmarnowane pieniądze, ze względu na to, że wsparcie serwisu było naprawdę profesjonalne i sporo mi pomogło przez korespondencję. Później zacząłem korzystać z Let's Encrypt. Musiałem zmienić konfigurację serwera Apache, by ten przekierowywał cały ruch na port 443. W końcu udało się i strona otwierała się pod HTTPS, choć sporo zjadłem na tym nerwów.
Następnie zacząłem naprawiać różne ostrzeżenia, wyświetlane już w przeglądarce, w panelu kontrolnym Nextcloud. Głównym problemem było ustawienie CRON'a, czyli systemowego harmonogramu zadań, tak by systemowy użytkownik Nextclouda potrafił co jakiś czas wykonywać pewne zadania (jak na przykład generowanie miniaturek). I to też, w bólu, w końcu udało mi się zrobić... Jednak jak dzisiaj patrzę na ostrzeżenia, to CRON znowu nie działa. Czemu? Nie mam pojęcia, już nie będę w to wnikał.
Komputer ustawiłem w taki sposób w BIOS'ie, że nawet jeśli odcięte zostanie zasilanie, jak tylko będzie mógł, ponownie się włączy. W samym Linux Mincie dodałem niezbędne komendy do autostartu i byłem zabezpieczony.
Do całego zestawu sprawiłem sobie bezprzewodową klawiaturę razem z touch padem oraz kompatybilny z linuxem adapter Bluetooth na USB, dzięki czemu przez jakiś czas mogłem się do niego dostać przez zwykłe przełączenie źródła monitora. Linux Mint tym razem nie zawiódł i klawiatura zadziałała bez potrzeby uprawiania linuxowej magii.
Ustawiłem automatyczną kopię tak, by kopiowała zawartość z jednego dysku na drugi, choć na szczęście nie miałem okazji jej przywracać.
W ramach poprawiania Nextclouda, dodałem kilka własnych stylów CSS.
Wnioski po roku używania
Z jednej strony cieszę się, ponieważ zrealizowałem swoje marzenie, którym było wystawienie własnego serwera do publicznego internetu. Przy okazji bardzo dużo się nauczyłem. Jednak pozwolę sobie stwierdzić, że jeśli dla kogoś nabranie doświadczenia nie jest priorytetem, to cała ta zabawa nie jest warta zachodu. O wiele prościej kupić gotową chmurę. Są serwisy, które oferują szyfrację hasłem, które zna tylko użytkownik. Takie coś powinno zadowolić nawet wymagające osoby (krótki wpis na ten temat tutaj). Przy czym są bardzo tanie i nie trzeba się przy nich zachetać 😉
Inna rzecz to to, że moja usługa działała dość wolno jak na normalne standardy, szczególnie podglądy zdjęć wczytywały się ciągnącymi się sekundami. Zapewne specyfikacja komputera powinna być lepsza. Tylko czy nie szkoda na to pieniędzy, prądu i czasu poświęconego na naprawianie? Chyba jednak lepiej jak ktoś robi to za nas.
Oryginalny artykuł:
https://nerd0w0.wordpress.com/2022/03/07/moja-przygoda-z-domowa-chmura-nextcloud/