Ładowanie

Nextcloud – prywatna chmura na pliki

🇬🇧 Go to english version of this post / Przejdź do angielskiej wersji tego wpisu

Dropbox, OneDrive, Google Drive, iCloud, MEGA, Backblaze to chyba wszystkie najpopularniejsze rozwiązania do przechowywania plików w, potocznie nazywanej, chmurze. Trzeba przyznać, że taka forma agregacji i dostępu do swoich danych jest bardzo wygodna i dodatkowo jest pewnego rodzaju kopią zapasową. Wszystkie z wymienionych usług oferują większą lub mniejszą przestrzeń dyskową w pakietach darmowych, natomiast do przechowywania większej ilości danych musimy już rozważyć wykupienie któregoś z płatnych planów, a to przy np. dużej ilości zdjęć nie wychodzi już tak przyjaźnie cenowo. Dodatkowym, dla mnie kluczowym, minusem takiego rozwiązania jest konieczność powierzenia swoich danych osobom trzecim, a co gorsza korporacjom. W takim razie co zrobić, jak żyć? Uruchomić swoją własną “chmurę” na dane, a najlepszym do tego rozwiązaniem jest Nextcloud! Jest to narzędzie, które teraz opisywane jest jako platforma do współpracy (po ang. Collaboration platform), bo składa się z nie jednej, a wielu narzędzi. Jako kilka przykładowych można wymienić:

  • Files – dysk sieciowy,
  • Photos – galeria zdjęć,
  • Talk – rozmowy wideo/audio,
  • Groupware – organizacja kalendarza, kontaktów i poczty,
  • Office – pakiet biurowy.

Jednak to wszystko zaczęło się od tego, że Nextcloud był po prostu otwarto-źródłowym (open-source) oprogramowaniem stworzonym do uruchamiania na swoim serwerze dysku sieciowego.

W tym wpisie pokażę jak uruchomić taką platformę dla siebie. Dam do wyboru dwie opcje:

  1. uruchomienie na serwerze z YunoHost,
  2. uruchomienie w oparciu o Dockera na dowolnym innym serwerze.

Uruchomienie w YunoHost

Instalacja będzie przebiegać podobnie do tej opisanej we wpisie o WriteFreely, jednakże w przypadku uruchamiania NC nie potrzebujemy oddzielnej domeny. Powiem więcej, w przypadku uruchamiania jedynie dla siebie nawet nie zalecane jest tworzenie specjalnej domeny, bo po pierwsze to tylko dodatkowy koszt, a po drugie lepiej nie odkrywać wszystkich swoich kart, a tym samym narażać swoich danych, poprzez korzystanie z subdomeny np. nextcloud.tomaszdunia.pl, co jednoznacznie oznaczałoby, że pod tym adresem znajdują się wszystkie nasze dane. Ja ogólnie jestem zwolennikiem trzymania tego typu usług w sieci lokalnej, do której dostęp ma się jedynie przez VPN np. WireGuard, ale o tym kiedy indziej w zupełnie innym wpisie.

Zaczynamy od zalogowania się do naszego panelu administratora YunoHost i od razu przechodzimy do Aplikacje. Następnie w prawym górnym rogu zielony przycisk + Instaluj, wyszukujemy aplikację Nextcloud i wybieramy ją z listy. Zjeżdżamy niżej do sekcji Ustawienia instalacji i rozpoczynamy konfigurację:

  1. W pole tekstowe Etykieta dla Nextcloud [1] wpisujemy to pod jaką nazwą chcemy widzieć tą aplikację na liście aplikacji w naszym YunoHost.
  2. Z rozwijanej listy poniżej [2] wybieramy na jakiej domenie ma zostać zainstalowany NC. Jak widać ja wybrałem domenę główną, na której uruchomiony jest mój YunoHost. Możesz zrobić tak samo lub wybrać inną domenę z listy.
  3. W następnym polu tekstowym [3] definiujemy dokładną ścieżkę pod jaką ma zostać zainstalowany NC. Podając tutaj wartość (jak domyślnie) /nextcloud NC zostanie zainstalowany na przykładowa.domena.pl/nextcloud, gdzie oczywiście przykładowa.domena.pl to wybrana przez Ciebie wyżej domena. Jeżeli zdecydowałeś/aś się na podpięcie domeny dedykowanej tylko do NC to w tym miejscu można podać jedynie / co będzie oznaczało instalację NC w katalogu nadrzędnym domeny.
  4. Kolejna lista rozwijana [4] służy do wskazania, który z użytkowników YunoHost ma być administratorem dla tej aplikacji, a tym samym pierwszym jej użytkownikiem.
  5. Dalej mamy dwa pola decyzji, z których pierwsze [5] to pytanie Czy ta aplikacja powinna być udostępniana anonimowym użytkownikom?. Tutaj proponuję wybrać Tak, gdyż w przeciwnym wypadku klienty Nextcloud (mowa tutaj o Nextcloud Desktop, który służy do korzystania z NC na urządzeniach końcowych) nie będą działały, bo pojawi się dodatkowy krok uwierzytelnienia, konieczność zalogowania do YunoHost, którego nie przewiduje.
  6. Drugie pole wyboru [6] to pytanie czy chcemy nadać Nextcloud możliwość dostępu do folderu /home na naszym serwerze. Osobiście nie widzę takiej potrzeby, a jest to na pewno ryzykowana sprawa, bo w przypadku zaznaczenia Tak, NC uzyska dostęp np. do pozostałych aplikacji działających na YunoHost. Każdy zdecyduje za siebie, bo wszystko zależy konkretnego zastosowania. Ja jednak pozostawiam wybraną opcję Nie.
  7. Powyższe ustawienia zatwierdzamy przyciskiem Instaluj [7] i tym samym rozpoczynamy proces instalacji, który niestety do najkrótszych nie należy, więc trzeba się uzbroić w cierpliwość.

Po zakończonej instalacji zostaniemy przeniesieni do listy z aplikacjami YunoHost, gdzie Nextcloud pojawił się jako nowa pozycja. Aby przejść do NC możemy wybrać ją z listy i skorzystać z przycisku Otwórz tę aplikację lub po prostu w pasek adresu przeglądarki wpisać ścieżkę jaka została zdefiniowana podczas powyższej konfiguracji.

Uruchomienie jako kontener Dockera

Nie masz serwera z YunoHost? Nic nie szkodzi! To samo da się zrobić przy użyciu Dockera! Polecam najpierw zapoznać się z moim wpisem Docker – jeden serwer wiele usług.

Rozpoczynamy od stworzenia folderu dla tego kontenera:

mkdir -p /home/$USER/docker/nextcloud

Następnie tworzymy plik konfiguracyjny dla tego kontenera:

nano /home/$USER/docker/nextcloud/docker-compose.yml

Nextcloud jako kontener Dockera może być skonfigurowany na wiele różnych sposobów, a mowa tu w szczególności o tym jaką bazę danych dla niego wybierzemy. Można tutaj wybrać np. MySQL/MariaDB czy PostgreSQL. Jednakże domyślnym rozwiązaniem jest skorzystanie z SQLite, z którego właśnie skorzystamy w tym wpisie, co w znacznym stopniu uprości nam proces konfiguracji i nadaje się idealnie do tego poradnika, którego rolą jest pokazać Nextcloud jedynie w zakresie podstawowej konfiguracji, bez wchodzenia w szczegóły. W takim przypadku stworzony przez nas plik konfiguracyjny docker_compose.yml należy wypełnić następującą treścią:

version: "3"

services:
  nextcloud:
    container_name: nextcloud
    image: nextcloud:latest
    ports:
      - "80:80"
      - "443:443"
    environment:
      PUID: '1000'
      PGID: '1000'
      TZ: 'Europe/Warsaw'
    volumes:
      - '/home/$USER/docker/nextcloud/volumes/var/www/html:/var/www/html'
    restart: unless-stopped

W powyższej treści jedyną nowością mogą być zmienne środowiskowego PUID i PGID. Są to zmienne, które informują kontener jak ma zapisywać swoje dane, a konkretnie kogo ma ustawiać jako właściciela tych plików. PUID odpowiada identyfikatorowi użytkownika, a PGID odpowiada identyfikatorowi grupy, do której ten użytkownik należy, a także do której mogą należeć inni użytkownicy, którzy mają mieć dostęp do tych plików. Te identyfikatory dla swojego użytkownika można ustalić korzystając z polecenia:

id $USER

W odpowiedzi uzyskamy coś podobnego do:

uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)

Wartość podana jako uid oraz gid to właśnie to co należy wpisać w pliku konfiguracyjnym docker_compose.yml jako odpowiednio PUID i PGID. Tak skonstruowany plik konfiguracyjny możemy już zapisać i z niego wyjść.

Na tym etapie pozostaje nam jeszcze utworzyć odpowiedni wolumen, który zadeklarowaliśmy jako miejsce do przechowywania danych kontenera:

mkdir -p /home/$USER/docker/nextcloud/volumes/var/www/html

Sprawdźmy jeszcze czy porty do obsługi tego kontenera zostały otwarte w naszym firewall’u:

sudo ufw allow 80
sudo ufw allow 443

Na koniec pozostaje nam już tylko kompilacja i uruchomienie kontenera Nextcloud:

docker-compose -f /home/$USER/docker/nextcloud/docker-compose.yml up -d

Poprawne uruchomienie kontenera można dodatkowo skontrolować korzystając z polecenia:

docker ps

Jeżeli wszystko jest w porządku to możemy teraz przejść do przeglądarki i wpisać adres IP naszego serwera, pod którym powinien działać świeżo uruchomiony Nextcloud. Na stronie powitalnej musimy jeszcze dokończyć konfigurację poprzez utworzenie konta administratora oraz wybrania typu bazy danych jako SQLite. To wszystko potwierdzamy przyciskiem Instaluj i gotowe.

Efekt prac

Po przejściu przez dowolną z powyższych instrukcji uzyskanym efektem będzie taki (lub podobny) ekran powitalny:

Jak widać już na pierwszy rzut oka, Nextcloud jest bardzo przyjaznym, schludnym i intuicyjnym interfejsem dla użytkownika. Nie będę się tutaj rozpisywał na temat możliwości tego środowiska, a jedynie polecę wejść w narzędzie do instalacji i zarządzania aplikacjami (ikona użytkownika w prawym górnym rogu [1] i z listy wybrać Aplikacje [2]). Proszę zwrócić uwagę ile możliwości jest teraz w bibliotece Nextcloud!

To co zawsze robię po pierwszym uruchomieniu Nextcloud to wejście do narzędzia Files [3] i wyczyszczenie wszystkiego co jest w środku. Jednakże są to materiały demonstracyjny pokazujące podstawowe funkcjonalności, które nowym użytkownikom mogą być przydatne, więc polecam do nich zajrzeć. Następnie oczywiście można je usunąć i rozplanować przestrzeń dyskową po swojemu.

Nie można zapomnieć także o włączeniu funkcji dwuskładnikowego uwierzytelniania podczas logowania. Przejrzysta instrukcja jak to zrobić znajduje się w dokumentacji Nextcloud, więc nie będę powielał tych informacji tutaj.

Aplikacje Nextcloud – podpięcie urządzeń

Aplikacje dedykowane Nextcloud są dostępne dla Windowsa, Linuxa, macOS, Androida i iOS. Wszystkie są dostępne po tym linkiem. Instalacja na każdym z systemów jest bliźniacza, więc pokażę cały proces na systemie macOS. Po zainstalowaniu adekwatnej aplikacji odpalamy ją i na start otrzymujemy okno, w którym wybieramy przycisk Zaloguj się do Nextcloud. W następnym oknie jesteśmy proszeni o wpisanie adresu serwera, więc podajemy go i potwierdzamy przyciskiem Dalej >.

Zostaniemy przeniesieni do przeglądarki, gdzie musimy uwierzytelnić nowego klienta.

Na koniec wracamy do świeżo zainstalowanej aplikacji Nextcloud, gdzie pozostaje nam jeszcze podstawowa konfiguracja klienta. Podajemy folder w pamięci lokalnej komputera, do którego ma zostać podpięty Nextcloud. Reszta do zmiany według uznania. Na koniec potwierdzamy przyciskiem Połącz i gotowe. Tak skonfigurowany klient będzie nam w czasie rzeczywistym aktualizował pliki, co oznacza, że gdy zmodyfikujemy, dodamy lub usuniemy plik na dowolnym urządzeniu to za moment te zmiany będą miały odzwierciedlenie na serwerze, a następnie na innych podpiętych urządzeniach.


Jeżeli podobał Ci się ten wpis to możesz mnie wesprzeć! 🙂

Tomasz Dunia

🇵🇱 Z wykształcenia Mechatronik. Z zawodu Główny Konstruktor w PAK-PCE Polski Autobus Wodorowy (Neso Bus). Po pracy Ojciec Roku. W nocy Wannabe Programista. Wszystko to daje przepis na zwykłego nerda :) 🇬🇧 Mechatronics by education. By profession Chief Constructor in PAK-PCE Polish Hydrogen Bus (Neso Bus). After work Father of the Year. At night Wannabe Programmer. All this gives a recipe for an ordinary nerd :)

svg

Co myślisz?

Pokaż komentarze / Napisz komentarz

5 komentarzy

Odpowiedz

svg
Szybka nawigacja
  • 01

    Nextcloud – prywatna chmura na pliki