“NextCloud” – własna chmura

10 miesięcy temu

W wielu domach potrafią kurzyć się nieużywane, chociaż nadal posiadające całkiem niezłe parametry komputery, nie nadające się za bardzo do pracy w systemie Windows 10, a już na pewno nie w najnowszym systemie Windows 11. Zamiast zawalać miejsce, takie nieco starsze maszyny można wykorzystać do stworzenia własnej, prywatnej chmury. Jest to na pewno tańsze rozwiązanie, niż kupowanie dość drogich urządzeń klasy NAS, które oprócz hostowania zasobów w zasadzie do niczego innego się nie nadają. Natomiast nasza własna chmura zainstalowana w darmowym systemie klasy Linux, pozwoli nie tylko na pracę komputera w charakterze odpowiednika urządzenia NAS, ale jeszcze będziemy mogli zapoznać się z systemem jednak zupełnie innym, niż systemy klasy Windows. To chyba też jest warte uwagi.

Poniższa instrukcja dotyczy instalacji chmury “NextCloud” w systemie CentOS 8, ze względu na bardzo dużą stabilność pracy tego systemu i, co też nie jest bez znaczenia, wsparcie aktualizacyjne ze strony korporacji Red Hat, właściciela chyba najpopularniejszej komercyjnej dystrybucji systemu Linux, którego darmową wersją jest właśnie CentOS.

Instalacja systemu CentOS 8

Aby rozpocząć instalację systemu należy uprzednio przygotować odpowiedni nośnik instalacyjny. W tym celu otwieramy w przeglądarce stronę:

https://www.centos.org/

Na stronie tej wybieramy “CentOS Linux”, po czym wybieramy w kolumnie “Architectures” wersję x86_64:

Pojawi się wtedy lista serwerów do wyboru, z których można pobrać obrazy płyt instalacyjnych systemu CentOS – otwieramy ten, który nam odpowiada (na wszystkich jest ta sama zawartość), po czym pobieramy plik o nazwie kończącej się “x86_64-dvd1.iso” – to będzie właściwy plik nośnika instalacyjnego. Ponieważ plik ten jest bardzo duży (rzędu 10 GB), nie da się go raczej wypalić na płycie, dlatego najwłaściwsze będzie utworzenie nośnika instalacyjnego na pendrive USB. Do tego celu będzie nam potrzebny pendrive o pojemności 16 GB lub większej. Aby utworzyć na pendrive nośnik instalacyjny z obrazu “*.iso” należy posłużyć się odpowiednim programem (większość z nich jest bardzo prosta w obsłudze, więc nie będą tu omawiane). Poniżej podajemy kilka stron, na których udstępniane są tego typu programy:

https://www.osforensics.com/tools/write-usb-images.html

https://www.pendrivelinux.com/universal-usb-installer-easy-as-1-2-3/

https://www.pendrivelinux.com/yumi-multiboot-usb-creator/

można użyć dowolnego z nich.

Po uruchomieniu komputera z wykonanego uprzednio nośnika instalacyjnego pojawi się okno startowe instalatora systemu:

gdzie wybieramy opcję “Install CentOS Linux 8”.

Po przejściu etapu wyboru języka znajdziemy się w oknie dokładnej konfiguracji instalowanego systemu – tu warto wybrać instalację systemu w wersji “Workstation”, ze względu na łatwość dostępu do różnorakich narzędzi czy aplikacji, co pozwoli na korzystanie z tego systemu nie tylko jako serwera dla chmury “NextCloud”, ale także jako zupełnie normalnego komputera:

Nie będzie tu omawiana dokładna procedura ustawiania parametrów instalacji systemu CentOS, gdyż najlepszym poligonem doświadczalnym jest samodzielne eksperymentowanie, a ze względu na brak konieczności aktywacji systemu przez internet (jak to jest w przypadku systemów Windows), procedurę instalacji można powtarzać w nieskończoność, aż zainstalujemy system zgodnie z naszymi oczekiwaniami i upodobaniami.

Po zakończeniu instalacji systemu CentOS i zalogowaniu się do niego można przejść do właściwej procedury instalacji chmury “NextCloud”. Procedura ta jest opisana dokładnie krok po kroku i jeżeli tylko wykonamy ją dokładnie wg przedstawionej instrukcji, bez pomijania któregokolwiek kroku czy zmiany kolejności wykonania, wszystko na pewno się powiedzie. A więc do dzieła!

Instalacja serwera “NextCloud” w CentOS 8

Instalacja komponentów niezbędnych do pracy chmury “NextCloud”

Po uruchomieniu terminala przełączamy się w tryb “root” (jako hasło wpisujemy ustawione w czasie instalacji systemu CentOS hasło “root”):

su -

Wszystkie kolejne polecenia wykonujemy wpisując je w oknie terminala.

Przed rozpoczęciem instalacji chmury “NextCloud” oraz dodatkowych komponentów z których korzysta, odświeżamy repozytoria aktualizacyjne CentOS:

dnf update

Instalujemy serwer “httpd”, niezbędny do działania chmury “NextCloud”:

dnf install httpd httpd-tools

przy instalacji odpowiadamy twierdząco (“y” lub “t”) na wszystkie pytania.

Ustawiamy autostart dla serwera “httpd”:

systemctl enable httpd

systemctl start httpd

Otwieramy w zaporze systemowej dostęp do sieci dla usług serwera “httpd”:

firewall-cmd --permanent --zone=public --add-service=http

firewall-cmd --permanent --zone=public --add-service=https

firewall-cmd --reload

Instalujemy serwer bazodanowy, niezbędny do działania chmury “NextCloud” (można korzystać z dowolnego serwera SQL, tutaj wybieramy standardowego następcę serwera MySQL o nazwie MariaDB):

dnf install mariadb-server mariadb

przy instalacji odpowiadamy twierdząco (“y” lub “t”) na wszystkie pytania.

Ustawiamy autostart dla serwera bazodanowego:

systemctl enable mariadb

systemctl start mariadb

Konfigurujemy wstępnie serwer bazodanowy:

mysql_secure_installation

przy konfiguracji odpowiadamy twierdząco (“y” lub “t”) na wszystkie pytania konfiguracyjne – na początku jest pytanie o hasło “root” dla serwera bazodanowego, można je ustawić lub pozostawić puste, lecz zalecane jest ustawienie jakiegoś hasła.

Instalujemy dodatkowe repozytoria dla instalacji komponentu “php” niezbędnego do działania chmury “NextCloud”:

dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm

dnf module list php

dnf module reset php

dnf module enable php:remi-7.4

przy instalacji wszystkich odpowiadamy twierdząco (“y” lub “t”) na wszystkie pytania.

Instalujemy komponenty “php”, niezbędne do działania chmury “NextCloud”:

dnf install php php-opcache php-gd php-curl php-mysqlnd

przy instalacji odpowiadamy twierdząco (“y” lub “t”) na wszystkie pytania.

Ustawiamy autostart dla komponentu “php-fpm”:

systemctl enable php-fpm

systemctl start php-fpm

Zezwalamy serwerowi “httpd” na wykonywanie i modyfikowanie w pamięci uruchamianych komponentów:

setsebool -P httpd_execmem 1

systemctl restart httpd

Instalacja komponentów “php” do współpracy z serwerem bazodanowym:

dnf install php-mysqlnd php-xml php-zip php-curl php-gd php-intl php-json php-ldap php-mbstring php-opcache

przy instalacji odpowiadamy twierdząco (“y” lub “t”) na wszystkie pytania.

Konfiguracja bazy danych używanej przy pracy chmury “NextCloud”:

mysql -u root -p

Po pojawieniu się znaku zachęty rozpoczynamy tworzenie bazy danych wykonując po kolei polecenia:

– utworzenie bazy danych (nazwa może być dowolna):

CREATE DATABASE nextcloud_database;

– nadanie uprawnień do korzystania z utworzonej bazy danych przez użytkownika “nextclouduser” (nazwę ustalamy samodzielnie, podana w tym artykule jest tylko przykładem), którego hasłem dostępowym jest “nextclouduserpassword” (i tu podobnie jak dla użytkownika bazodanowego samodzielnie ustalamy to hasło, które powinno być trudne do odgadnięcia) – nazwę użytkownika i hasło podajemy w apostrofach:

GRANT ALL ON nextcloud_database.* TO 'nextclouduser'@'localhost' IDENTIFIED BY 'nextclouduserpassword';

– przeładowanie tabeli uprawnień, by zaczęły one działać dla zdefiniowanej bazy danych:

FLUSH PRIVILEGES;

– wyjście z bazy danych:

EXIT;

Instalacja właściwej chmury “NextCloud”

Pobieramy spakowaną kompletną strukturę chmury – coś w rodzaju instalatora:

wget https://download.nextcloud.com/server/releases/latest.zip

Rozpakowujemy pobrany plik do folderu docelowego:

unzip latest.zip -d /var/www/html/

Tworzymy folder na dane chmury:

mkdir -p /var/www/html/nextcloud/data

Nadanie praw dostępowych do folderów i plików danych dla serwera “httpd”:

chown -R apache:apache /var/www/html/nextcloud/

semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/data'

semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/config(/.*)?'

semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/apps(/.*)?'

semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/3rdparty(/.*)?'

semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/.htaccess'

semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/nextcloud/.user.ini'

restorecon -Rv '/var/www/html/nextcloud/'

Otwarcie w zaporze systemowej portu “80” dla komunikacji po protokole “TCP”:

firewall-cmd --add-port=80/tcp --zone=public --permanent

firewall-cmd --reload

Po tym wszystkim zamykamy okno terminala.

Wstępna konfiguracja zainstalowanej chmury “NextCloud”

– otwieramy w przeglądarce adres (ważne jest by podać adres IP komputera, na którym zainstalowalismy uprzednio system CentOS, dzięki czemu zostanie on dodany do zaufanych domen):

http://server-IP/nextcloud

i wpisujemy dane tworzonego konta administracyjnego pozwalającego na zarządzanie chmurą “NextCloud” wpisując w pierwszych dwóch polach wymyślone przez siebie nazwę użytkownika i hasło – ważne by tych danych nie zapomnieć, będą niezbędne dla ew. administrowania chmurą:

– rozwijamy “Magazyn i baza danych” i wybieramy “MySQL/MariaDB” i wpisujemy w kolejne pola zdefiniowane uprzednio przy konfiguracji bazy danych dla chmury “NextCloud” dane:

użytkownika (w przykładzie jest to “nextclouduser”)

hasło (w przykładzie jest to “nextclouduserpassword”)

nazwę bazy danych (w przykładzie jest to “nextcloud_database”)

adres i port dostępowy – w tym przypadku należy podać “localhost:3306”

kończymy konfigurację wybierając na dole “Zakończ konfigurację”:

Po dokładnym wykonaniu powyższych kroków można już cieszyć się działającą własną chmurą.

Tworzenie użytkowników w chmurze “NextCloud”

Po zalogowaniu się w przeglądarce do chmury “NextCloud” na adres:

http://server-IP/nextcloud

za pomocą użytkownika administracyjnego, rozwijamy menu użytkownika i wybieramy opcję “Użytkownicy”:

Wybieramy opcję “+ Nowy użytkownik”:

i wypełniamy odpowiednie pola, z których najważniejsze to “Nazwa użytkownika” i “Hasło”:

po czym klikamy “Dodaj użytkownika”:

I to w zasadzie wszystko, każdego nowego użytkownika tworzy się w ten sposób. Oczywiście można dokładniej skonfigurować parametry tak utworzonego użytkownika (np. ustawić limit dostępnego miejsca w chmurze), ale to już pozostawiamy samodzielnej inwencji.

Instalacja klienta “NextCloud” w systemach Windows

Aby wygodnie korzystać z własnej chmury “NextCloud” warto zainstalować odpowiedniego, dedykowanego klienta. Żeby go zainstalować, należy:

– otworzyć w przeglądarce stronę:

https://nextcloud.com/

– na tej stronie należy kliknąć “Get Nextcloud”, po czym wybrać “Desktop & mobile apps”:

– tam wybieramy opcję “Windows 8.1+”:

i zapisujemy plik instalacyjny na dysku

po pobraniu pliku możemy zamknąć przeglądarkę, po czym sam plik uruchamiamy – pojawi się instalator, w którym wystarczy wybierać “Next” lub “Install” (w zależności od zawartości okienka):

Po zakończeniu instalacji pojawi się komunikat o konieczności restartu (ponownego uruchomienia) komputera – należy się na to zgodzić, zaś po restarcie komputera uruchamiamy klienta “NextCloud” za pomocą skrótu na pulpicie – pojawi się wtedy okno pozwalające na jego konfigurację:

Wybieramy “Zaloguj się do Nextcloud”, po czym w kolejnym okienku wpisujemy adres naszej chmury “NextCloud”:

http://server-IP/nextcloud

po czym klikamy “Dalej”.

Otworzy się przeglądarka, gdzie należy zautoryzować klienta “NextCloud” logując się na odpowiednie, wcześniej zdefiniowane, konto w chmurze:

po wybraniu “Zaloguj” otworzy się formularz, w którym wpisujemy nazwę swojego użytkownika chmury “NextCloud” oraz jego hasło:

co kończymy ponownym wybraniem “Zaloguj”, a jeśli wpisano poprawne dane logowanie zakończy się sukcesem:

Wybranie “Grant access” kończy logowanie klienta do chmury “NextCloud”. Zamykamy więc przeglądarkę i wracamy do okienka konfigurującego pierwsze użycie klienta chmury “NextCloud”:

gdzie wybieramy odpowiednią opcję, przy czym ten pierwszy wybór można zawsze zmodyfikowac później, już w czasie normalnej pracy. Wybranie “Połącz” rozpoczyna synchronizację danych między chmurą “NextCloud” na naszym komputerem, co kończy konfigurację:

Praca z chmurą “NextCloud” w zasadzie nie różni się co do zasady działania od pracy z chmurami “Google Drive”, “One Drive”, “Dropbox” itp., więc każdy kto kiedykolwiek pracował z jakąkolwiek publiczną chmurą, nie powien mieć problemów. Podstawową różnicą jest to, że w przypadku korzystania z własnoręcznie zainstalowanej chmury “NextCloud” ilość dostępnego miejsca jest zależna od pojemności dostępnych w komputerze dysków twardych, a nie od wykupionego planu abonamentowego, jak to jest w przypadku korzystania z chmur komercyjnych.

Kliknij, żeby otworzyć powyższą instrukcję w formacie pliku PDF