Blog (7)
Komentarze (236)
Recenzje (1)
@vera109DS416j — baza dla alternatywnych rozwiązań na przykładzie wdrożenia Nextcloud

DS416j — baza dla alternatywnych rozwiązań na przykładzie wdrożenia Nextcloud

13.07.2017 03:05, aktualizacja: 13.07.2017 11:31

626103

Po co mi Nextcloud?

W dobie coraz częściej spotykanych incydentów związanych z wyciekami danych klientów, samych treści i/lub powszechnie stosowanej już przez różnej maści boty próbkowania treści sprawiają, że ze skanami ważnych lub mniej ważnych, aczkolwiek poufnych w stosunku do zewnętrznego otoczenia dokumentów, czy choćby ze zdjęciami z wakacji chciałoby się uciekać gdzieś indziej. Tylko dokąd? Oferty internetowych schowków prezentowane były na łamach portalu dość często i regularnie. Ostatnio jest jakiś zastój w tym temacie. Wcale mnie to nie dziwi. Średnio już jest co omawiać. Korporacje przez pewien czas stosowały politykę "na wabik" oferując pojemności rzędu kilkudziesięciu lub kilkuset gigabajtów za darmo, tylko po to, aby po uzależnieniu od siebie użytkowników (którzy zdążyli przesłać już ponad nowy darmowy plan) przykręcić kurek do pięciu czy piętnastu gigabajtów. W mojej ocenie uważam to za chamską politykę stawiania użytkownika pod ścianą w myśl zasady płać albo płacz, a najlepiej jedno i drugie oraz robienia z użytkownika klienta-idioty. Pozostaje jeszcze temat (o ile zdecydujemy się płacić) uzewnętrzniania się z numerami kart płatniczych celem dokonania zakupu usługi. Nie ma miesiąca, aby na skutek luk, włamań nie dochodziło do istotnych ilościowo wycieku wrażliwych danych (w tym numerów kart, które potem walają się po torowych czarnych i szarych, bitcoin'owo rozliczanych, internetowych marketach). Myślę, że rankingów, w których biją się chmury od Microsoft'u czy Google jest coraz mniej bo i NASów coraz więcej. Obecnie schowki typu 5GB w darmowych planach chyba już tylko wykorzystywane są do przerzucania danych z urządzeń mobilnych na komputery czy serwery domowe. No ewentualnie do skrupulatnego przechowywania pdf'ów i doc'ów ... i niczego innego. (chyba) A jeśli można znajdować sensowne rozwiązanie tak tego typu pojemności to chętnie o tym poczytam.

No i właśnie po to mi Nextcloud. Otwarte oprogramowanie do samodzielnego utworzenia chmury na kształt OneDrive, czy Mega. Dostępne są: klient mobilnej synchronizacji jak i tej desktopowej,a co ważniejsze strona serwerowa. Darmowa, do pobrania i rozwijana stale przez otaczającą twór sporą społeczność (ta na zgłaszane problemy reaguje nawet przez facebook'owy komunikator). Konfiguracja i personalizacja na obecnym poziomie pozwalają dosłownie zrobić sobie taką chmurkę, na kształt takiej, jaką chce się żeby była. Najlepiej taką, która zawieszona jest wewnątrz bezpiecznego domu, gdzie siedząc w fotelu możemy rzucić na nią okiem (małe czarne pudełko, w którym wszystko jest i jest schowane przed światem, a łatwo dostępne dla nas).

Co chciałem uzyskać?

Po pierwsze - serwer Nextcloud znajdujący się na Synology NAS DS416j bez limitu przechowywanych danych. Po drugie - automatyczne wysłanie do NASa, a konkretnie do Nextcloud'a właśnie zrobionych zdjęć na zasadzie "cyk i .... wysyła". W założeniu tuż po zrobieniu zdjęcia z każdego urządzenia mobilnego wykonane fotografie czy filmy niezwłocznie wysyłane mają być na serwer do katalogu podlegającego obróbce zdjęciowej. W ten sposób zaoszczędza się mnóstwo czasu na ręczne przekopiowywanie plików i zastanawianie się czy "ten plik już mam, czy może nie". Po trzecie - łatwe porządkowanie obrobionych fotografii, dokumentów, plików kopii zapasowych. Po czwarte - dostęp do lekkiej galerii, przeglądarki plików i samych dokumentów z każdej lokalizacji, w której jest internet. Po piąte - i chyba najważniejsze - niezależność. Wiem, że istnieją gotowe rozwiązania, takie jak PhotoStation i FileStation. Ale nie podoba mi się kiedy muszę korzystać z tego co mi ktoś narzuca. Nie mówię, że one są złe - po prostu lubię mieć wybór. Jeżeli serwer NAS taki wybór mi daje to jest to dobry serwer...

Jak zainstalowałem? Od czego trzeba zacząć?

Na dobrym początku logując się do serwera NAS musimy włączyć sobie dostęp przez SSH. Robimy z poziomu DSM w przeglądarce, klikając w Panel Sterowania i dalej Terminal i SNMP. Po czym zafiszkować należy włącz usługę SSH i wybrać port. Domyślnie jest to 22 i taki też zostawiam dla potrzeb lokalnych. "Zdalnie" ustawiłem inny z przekierowaniem ze względów bezpieczeństwa, ale do tego co w tym wpisie uzyskać chcemy jest nam to niepotrzebne. Zakładamy, że robimy wszystko lokalnie.

DSM z właczonym dostępem przez SSH
DSM z właczonym dostępem przez SSH
626112

Następnie zaopatrujemy się w jeden z klientów SSH np.puTTY. Należy zalogować się do serwera przez SSH (sprawdzić czy działa), spróbować podnieść sobie uprawnienia komendą sudo su - jeśli działa to zamiast bash'a zgłosi się ash - gdyby nie to znaczy, że koniecznie musimy dodać sobie użytkownika (useradd<nazwa>, a następnie passwd<nazwa usera> i nadać hasło) konsolowego, a jego dodać do /etc/sudoers zaraz pod wpisem root = ALL(ALL:ALL) (identyczny wpis dla nowego usera np. user = ALL(ALL:ALL) - nadmienić jeszcze należy, że w DSM po zalogowaniu się do konsoli nie uświadczymy edytorów pico czy nano, a poczciwego VIM'a, | Link to prostego manuala komend podstawowyh edytora | Ewentualnie pozostaje nam edytor wbudowany w Midnight Commander'a, którego od razu polecam doinstalować. Następnie należy otworzyć przeglądarkę i udać się na stronę instalacyjną Nextcloud, aby pobrać najnowszą wersję serwerowego oprogramowania chmury. Użyć można wget'a pod konsolą SSH serwera NAS lub rozpakować archiwum w Windows i metodą na żywca wgrać zawartość przez FileStation do naszego Synology i tę metodę polecam, bo jest po prostu wygodniejsza. Warto też utworzyć sobie kopię wszystkich wgrywanych plików na NASie w katalogu (np. /instalki/nextcloud.bkf/), który to będzie stanowił punkt odniesienia do stanu surowego (zerowego) instalki - od tak, gdybyśmy coś popsuli, to żeby było z czego przywrócić. DSM nie oferuje bzip'a ale tar'a już tak. Jest ograniczony więc z wget'owanym plikiem tgz czy bzip2 możemy mieć pod górę działając tu konsolą. Dlatego ja rozpakowywałem pod Windows i skopiowałem do /Volume1/Instalki/Nextcloud.bkf/ oraz do katalogu serwera www. W przypadku DSM na 416j ścieżka to /var/services/web/. Po rozpakowaniu instalki Nextcloud i omawianą metodą na żywca wrzuceniu jej przez File Station, należy utworzyć przez DSM folder współdzielony (to będzie magazyn danych naszej chmury).

tworzenie folderu współdzielonego
tworzenie folderu współdzielonego
struktura moich folderów współdzielonych
struktura moich folderów współdzielonych

Danych nie umieszczamy tam, gdzie stoi strona z samą chmurą, gdyż jest to po prostu niebezpieczne i godzi w wydajność. W tym celu klikamy pod DSM w Panel sterowania i dodaj folder współdzielony. Nazywamy go Nextcloud i również należy w tym miejscu dodać host wirtualny.

dodawanie wirtualnego hosta do serwera web
dodawanie wirtualnego hosta do serwera web

Jako serwer lepiej ustawić Apache i to w wersji 2.4 a także PHP jeżeli jest to w wersji 7.0 (wszystkie te potrzebne pakiety znajdziecie w centrum pakietów i po prostu jeśli ich nie ma w systemie to trzeba je zainstalować). W DSM upewnić się należy, że mamy zainstalowany serwer www (WebStation) i następnie w nim ustawić należy host wirtualny np. o nazwie Nextcloud i wskazać ścieżkę do dokumentu jako web/nextcloud. Musimy też mieć pewność, że porty w naszym routerze są odpowiednio skonfigurowane. Tak aby można było się dostać po porcie 80 do naszego NASa z zewnątrz - inaczej na nic się zda cała zabawa. Na tym etapie pod DSM kończy się przygotowanie samo w sobie. Podsumowując: 1 - wgrać rozpakowaną instancję Nextcloud(nalepiej do katalogu /var/services/web/nextcloud) - ogólnie rzecz ujmując do katalogu, który jest katalogiem instancji serwera web, a wirtualnego hosta, głównym dla instancji Nextcloud. 2 - zapewnić dostęp przez SSH

3 - zadbać o właściwe przekierowanie portów do serwera, aby działało jak należy. 4 - fajnie też doinstalować sobie Midnight Commandera, aby było łatwiej poruszać się na plikach pod terminalem. Dokonujemy tego dodając źródło pakietów w Centrum Pakietów, ustawienia i dalej klikając zakładkę źródła pakietów i dodać repozytorium społeczności Synology tak jak na zrzucie poniżej.

takie źródła naeży dodać w ustawienia aby pobrać Midnight Commandera
takie źródła naeży dodać w ustawienia aby pobrać Midnight Commandera

Powinniśmy uzyskać możliwość instalacji Midnight Commander'a i ma to być widoczne w repozytorium pakietów w następujący sposób. (u mnie jest już zainstalowane )

zainstalowany Midnight Commander
zainstalowany Midnight Commander

Przed zainstalowaniem należy szukać go w zbiorze pakietów od społeczności. Po doinstalowaniu ma wyglądać to tak, jak na prezentowanym zrzucie. 5 - dobrze się zaopatrzyć w jakieś konto typu no-ip.org albo inny dynamic-dns. No chyba, że ktoś ma już stały, publiczny IP wraz z nadaną domeną i mu się to nie zmieni.

Przystępujemy do montażu...

W tym celu logujemy się przez SSH i wydajemy kilka prostych komend. Ma to wyglądać tak:

626126

Mówiąc krótko - potrzebujemy dostępu do SSH, praw root'a, instalki nextcloud'a, utworzonego folderu współdzielonego na dane, dodanego repozytorium synology community, midnight commander'a, instalki Nextcloud'a załadowanej do serwera i utworzonego wirtualnego host'a.

Kolejną czynnością, którą należy wykonać jest zainstalowanie bazy danych mariaDB (nextcloud będzie też działał na sqlite czy posql, ale proponuję mariaDB ze względów wydajnościowych). W DS416j (tudzież w DSM samym sobie) znajdziemy pakiety instalacyjne mariaDB5 oraz 10. Ja zainstalowałem obydwa w celach testowych. Musimy skonfigurować naszą bazę danych aby podłączyć do niej instancję nextcloud'a. Przed skonfigurowaniem z głównego menu DSM odpalamy MariaDB i resetujemy hasło - to będzie hasło root dla naszej bazy danych. Następnie spod konsoli wydajemy serię następujących komend:

mysql - u root -p

i w celu utworzenia bazy danych dla nextcloud'a:

create database nextcloud;

utworzyć też musimy użytkownika tejże bazy:

create user nextclouduser@localhost identified by 'twoje-wybrane-hasło';

dodajemy dostęp:

grant all privileges on nextcloud.* to nextclouduser@localhost identified by twoje-wybrane-hasło';

flush privileges; exit;

przy czym należy zapamiętać tutaj dwie rzeczy - hasło root dla mariaDB czy też wybranej bazy danych, hasło użytkownika nextclouduser - które posłuży za moment do podłączenia bazy danych. zapamiętać samą nazwę użytkownika nextclouduser - jest to user dla bazy danych o nazwie nextloud. Po wpisaniu w pasku adresu przeglądarki

http://adres-ip-serwera-nas/nextcloud i/lub (po domenie np. typu no‑ip.org)

http://moja-domena.no-ip.org/nextcloud

- naszym oczom ma ukazać się następujący widok. (o ile wszystkie uprawnienia dostępu do katalogów serwera web są nadane właściwie). W przypadku błędu 404 - źle coś skopiowaliśmy (nie tam gdzie trzeba), błędu 500 lub 503 - źle ustawione są uprawnienia lub sam serwer nie jest skonfigurowany prawidłowo. Należy powtórzyć konfigurację przeinstalowując od początku. Od początku bo czasowo bardziej się to opłaci, niż śledzić ręcznie każdy plik konfiguracyjny osobno.

inicjacja połączania bazy danych
inicjacja połączania bazy danych

Do pól tekstowych odnosimy się w następujący sposób: username - nazwa pierwszego, utworzonego użytkownika administracyjnego dla instancji nextcloud - to za pomocą tego konta będziemy tworzyć kolejne.

password - żądane hasło dla w/w konta. W tym miejscu polecam sobie gdzieś to wszystko zapisać bo można się zakręcić i pomylić konta i hasła.

data folder - to nic innego jak wcześniej utworzony folder współdzielony na naszym NAS'ie, który będzie służył jako magazyn danych. W naszym przypadku było to: /volume1/nextcloud/

database user - użytkownik bazy danych. Czyli użytkownik utworzony powyzej na potrzeby instancji chury - w naszym przypadku nextclouduser

database password - wybrane przy tworzeniu bazy danych i użytkownika nextclouduser hasło bazy danych.

database name - wybrana podczas konfiguracji bazy danych - nazwa bazy danych. W naszym przypadku nextcloud.

locahost - pozostawiamy bez zmian.

oczekiwanie na wykonanie
oczekiwanie na wykonanie

W tym miejscu muszę zaznaczyć, że podczas testowania DS416j napotkałem uwagę grożącą mi niepoprawnością plików w przypadku, gdy te będą większe niż 4GB. Miałoby tak być ponieważ użyta wersja php5.6 czy 7.0 - są 32‑bitowe. Ostrzeżenie było, a pliki powyżej 4GB mają się świetnie. Myślę, że to po prostu wariacja DSM. W każdym razie gdyby w tym miejscu pojawiła się informacja o brakujących modułach php, to doinstalować je można zafiszkowując stosowne moduły w zaawansowanych ustawieniach php dla wybranego wirtualnego hosta. Dla ułatwienia wklejam zrzut.

tu zaznaczamy ewentualnie brakujące moduły
tu zaznaczamy ewentualnie brakujące moduły

Należy również dodać do parametru open_basedir; :/dev/urandom:/volume1/nextcloud/

gdzie volume1 to wolumen, który ma zostać przeznaczony na dane. Nie jest to konieczne, ale ze względów wydajnościowych zalecane. W DS416j miałem możliwość pracy na php5.6 oraz siódmą wersją. Każdą konfigurujemy podobnie, ale różnicy w działaniu nie zauważyłem. Brakujące moduły będą "wywalane" przy próbie logowania przez przeglądarkę. Sukcesywnie spiszcie je na kartce i zafiszkujcie w sekcji rozszerzeń dla ustawień konkretnej, wybranej wersji PHP. Po pozbyciu się ewentualnych konfliktów powinna nas przywitać strona pytająca o nadanie nazwy konta administracyjnego i hasła.Samo poruszanie się po nextcloud oraz zagadnienia takie jak montowanie katalogów lokalnych czy zewnętrznych onedrive'ów czy Google-dysków omówię w osobnym wpisie. Istnieje też możliwość podpinania przez FTP co stanowi pewien miły myk w przechowywaniu znacznych gabarytowo danych na darmowych lub czterozłotowyh VPS'ach od np. Aruby - ale o tym osobny wpis. Po utworzeniu konta administratora oraz popranym na nie zalogowaniu wita nas kilka przykładowych katalogów i plików.

tak zgłasza gotowość pierwsze uruchomienie
tak zgłasza gotowość pierwsze uruchomienie
widok zarządzania aplikacjami dla nextcloud - jest bogato
widok zarządzania aplikacjami dla nextcloud - jest bogato

Podsumowując udaną akcję...

Uważam, że serwer Synology DS416j świetnie radzi sobie z hostowaniem takiej usługi. Mimo perturbacji z 32‑bitowością php całość skatowana pod kątem wielu mniejszych i większych plików wypada ok i nie spowodowała żadnych problemów. Konsolowe pomiary obciążenia nie wykazały "nie wiadomo" jakiego zmęczenia. Myślę, że tu procesor powiedział ostatnie zdanie, choć nadal uważam, że w tym przedziale cenowym (przypomnijmy - ok 1250,00 zł + dyski) to 1GB RAM powinien być już standardem. Do synchronizacji oraz automatycznego upload'u zdjęć wykorzystałem oficjalne klienty aplikacji Netcloud na Androida. W intuicyjnych ustawieniach możemy wskazać katalog, do którego automatycznie będą wysyłane fotki lub filmy. Do dyspozycji dostajemy również php'ową wersję passman'a (menedżera haseł specjalnie dla nextcloud), pakiety biurowe, menedżera kontaktów, a także klienta poczty do którego możemy podłączyć zewnętrzne skrzynki, agregując swoje pliki i swoje maile, swoją pracę i kolaborację w jednym miejscu. W Ajax'ie (trybie pracy chmury) przy pięcio-użytkownikowym obciążeniu nextcloud (czyli php) nie laguje. Więcej userów nie dodałem bo przyznajmy szczerze ile razy zdarza się sytuacja, w której więcej niż pięć osób pracuje nad jednym i tym samym dokumentem, czy kalendarzem, a dodać muszę, że nextcloud ma bardzo elegancki i intuicyjny kalendarz rozszerzalny o funkcjonalności protokołu calDAV i tworzenie nieskończonej liczby kalendarzy, w pełni synchronizowalnych i udostępnialnych. Ale o tym kiedy indziej. Warto się pobawić i docenić alternatywę otwartego źródła. W czasach kiedy wszystko jest "AS" As Service (w tym miejscu aby zrozumieć lepiej moją irytację podlinkuję do wpisu Oksara o Microsoft365 ). Może fajnie znów było by coś po prostu kupić, albo stworzyć i mieć, a co najważniejsze móc zrobić z tym co się chce. Bez presji, że już niedługo pozdrowienia z Banku tytułem rozliczenia transakcji z karty za kolejny abonament na e‑usługi. Osobiście SAS mnie męczy. Im bardziej ten model sprzedaży się rozrasta, tym bardziej kombinuję i szukam alternatywy. Taki rocznik widocznie. Pozdrawiam.

Wybrane dla Ciebie
Komentarze (23)