Nextcloud – instalacja domowej chmury w sieci lokalnej

| | | Czas czytania: 6 min
Nextcloud w domu
Nextcloud w domu

Co to Nextcloud?

Najlepsze jak dotąd oprogramowanie typu open-source przetestowane przeze mnie, które przeznaczone jest do zastosowań chmurowych. Główne cechy to:

  • Przechowywanie i synchronizacja plików. (Opcja na której skupimy się w dalszej części artykułu.)
  • Zarządzanie użytkownikami. (Wiele osób może korzystać z chmury.)
  • Możliwość rozszerzenia o dodatkowe aplikacje. (Kalendarz, komunikator, klient email.)

Narzędzie to jest „self hosted”, co oznacza, że należy je samodzielnie zainstalować na swoim serwerze. W tym artykule pokażę jak to zrobić.

Wymagania serwera.

Podobnie jak w poprzednim arcie z instalacji Pydio Cells, będę korzystał z domowego serwera, który uruchomiony jest na starym laptopie. Zainstalowany na nim jest Proxmox, a w nim utworzona wirtualna maszyna z Ubuntu 24.04 Server. Najważniejsze rzeczy w konfiguracji VM:

zrzut ekranu

Z takimi parametrami można pozwolić sobie na instalacje dodatkowych aplikacji. Jeżeli potrzebujesz chmury tylko do synchronizacji plików, ewentualnie do wykorzystania jako dysk sieciowy, słabsza maszyna wystarczy. Np Procesor 2 rdzenie i 4GB pamięci RAM. Film z procesu tworzenia wirtualnej maszyny, dostępny jest również we wpisie z Pydio. Jeżeli dysponujesz tylko bardzo leciwym laptopem, który fizycznie ma słabe parametry, to rozważ instalację Ubuntu 24.04 Server bezpośrednio na nim.

To są moje subiektywne spostrzeżenia, jakie miałem podczas instalacji i pracy z tą chmurą. Oficjalne wymagania można zobaczyć w dokumentacji Nextcloud tutaj.

Połączenie SSH bez hasła.(Opcjonalnie)

W filmie do tego artykułu wspomniałem, że zamieszczę komendy dzięki którym łatwiej łączyć się z serwerem za pomocą SSH.

Generowanie klucza, zamiast maila możesz wpisać inny komentarz.

Bash
ssh-keygen -t rsa -b 4096 -C "twó[email protected]"

Dodaj klucz do serwera. Po komendzie, należy wpisać hasło.

Bash
ssh-copy-id użytkownik@ip_serwera

Połącz się z serwerem. Teraz powinno połączyć Cię bez podawania hasła.

Bash
ssh użytkownik@ip_serwera

Instalacja Nextcloud

Aktualizacja systemu.

Bash
sudo apt update && sudo apt upgrade -y

Utwórz katalog na pliki

Bash
mkdir pliki

Nadaj mu odpowiednie uprawnienia.

Bash
sudo chown -R www-data:www-data /home/konrad/pliki && sudo chmod -R 750 /home/konrad/pliki && sudo chmod +x /home && sudo chmod +x /home/konrad

Sprawdź nazwę interfejsu sieciowego.

zrzut ekranu
Bash
ip a

Uzyskaj statyczny adres IP.

Bash
sudo nano /etc/netplan/00-installer-config.yaml

Zmodyfikuj poniższy wpis, zmieniając nazwę swojego interfejsu sieciowego[3 linijka], oraz ip routera [9 linijka]

Bash
network:
  ethernets:
    ens18:
      dhcp4: no
      addresses:
        - 192.168.0.120/24
      routes:
        - to: default
          via: 192.168.0.1
      nameservers:
        addresses:
          - 8.8.8.8
          - 8.8.4.4
  version: 2

Ustaw odpowiednie uprawnienia pliku, oraz zastosuj zmiany.

Bash
sudo chmod 600 /etc/netplan/00-installer-config.yaml
sudo netplan apply

Instalacja potrzebnego oprogramowania.

Bash
sudo apt install apache2 unzip wget curl mariadb-client mariadb-server nano openssl ca-certificates apt-transport-https software-properties-common gnupg gnupg2 gnupg1 php8.3 -y
 
sudo apt install libapache2-mod-php8.3 php8.3-{zip,xml,mbstring,gd,curl,imagick,intl,bcmath,gmp,cli,mysql,apcu,redis} -y

Modyfikacja ustawień php

Bash
sudo nano /etc/php/8.3/apache2/php.ini

Zmień wartości w tych liniach.

Bash
memory_limit = 1024M
upload_max_filesize = 16G 
post_max_size = 16G 
date.timezone = Europe/Warsaw

Zaloguj się do MySQL

Bash
sudo mysql -u root -p

Utwórz bazę danych, użytkownika i hasło.

Bash
CREATE DATABASE chmura;
GRANT ALL PRIVILEGES ON chmura.* TO 'chmura'@'localhost' IDENTIFIED BY 'DoBrzeMiećMocN3Hasło!';
FLUSH PRIVILEGES;
EXIT;

Pobierz najnowszą paczę z Nextcloud-em.

Bash
cd /tmp && sudo wget https://download.nextcloud.com/server/releases/latest.zip

Rozpakuj, przenieś i skasuj pobranego zip-a

Bash
sudo unzip latest.zip
sudo mv nextcloud /var/www
sudo rm latest.zip

Włącz moduły Apache i zresetuj.

Bash
sudo a2enmod rewrite headers env dir mime
sudo systemctl restart apache2

Utwórz wirtualny host.

Bash
sudo nano /etc/apache2/sites-available/nextcloud.conf

Upewnij się, że w poniższej konfiguracji jest adres IP twojego serwera.

Bash
<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /var/www/nextcloud
    ServerName 192.168.0.120
 
    Alias /nextcloud "/var/www/nextcloud/"
    <Directory /var/www/nextcloud/>
        Options +FollowSymlinks
        AllowOverride All
        Require all granted
 
        <IfModule mod_dav.c>
            Dav off
        </IfModule>
 
        SetEnv HOME /var/www/nextcloud
        SetEnv HTTP_HOME /var/www/nextcloud
    </Directory>
 
    ErrorLog ${APACHE_LOG_DIR}/nextcloud_error.log
    CustomLog ${APACHE_LOG_DIR}/nextcloud_access.log combined
</VirtualHost>
 
<VirtualHost *:443>
    ServerAdmin [email protected]
    DocumentRoot /var/www/nextcloud
    ServerName 192.168.0.120
 
    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/selfsigned.crt
    SSLCertificateKeyFile /etc/ssl/private/selfsigned.key
 
    Alias /nextcloud "/var/www/nextcloud/"
    <Directory /var/www/nextcloud/>
        Options +FollowSymlinks
        AllowOverride All
        Require all granted
 
        <IfModule mod_dav.c>
            Dav off
        </IfModule>
 
        SetEnv HOME /var/www/nextcloud
        SetEnv HTTP_HOME /var/www/nextcloud
    </Directory>
 
    ErrorLog ${APACHE_LOG_DIR}/nextcloud_ssl_error.log
    CustomLog ${APACHE_LOG_DIR}/nextcloud_ssl_access.log combined
</VirtualHost>

Wygeneruj samopodpisany certyfikat SSL

Bash
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/selfsigned.key -out /etc/ssl/certs/selfsigned.crt

Włącz ssl, ustaw i przeładuj konfigurację.

Bash
sudo a2enmod ssl
sudo a2ensite nextcloud.conf
sudo systemctl restart apache2

Ustaw właściciela katalogu z Nextcloud-em.

Bash
sudo chown -R www-data:www-data /var/www/nextcloud/

Kończenie instalacji przez przeglądarkę.

Z poleceń wydawanych przez SSH to tyle, teraz trzeba dokończyć instalację przez przeglądarkę. Przejdź pod adres:

Bash
https://ip_serwera

Wyświetli się informacja, że coś jest nie tak z certyfikatem SSL.

zrzut ekranu

To normalne przy certyfikacie, który sami podpisaliśmy. Trzeba kliknąć 'Zaawansowane’ i 'Otwórz…’, w zależności od przeglądarki, może to wyglądać trochę inaczej.

Teraz trzeba wpisać dane logowania nowego administratora, katalog na pliki, oraz dane do połączenia z bazą danych, które utworzyliśmy wcześniej.

Pamiętaj aby poprawnie wpisać ścieżkę do katalogu z plikami. Ten katalog był tworzony na samym początku. W moim przypadku to:

Bash
/home/konrad/pliki
zrzut ekranu

Sama instalacja może potrwać kilka-kilkanaście minut. Trzeba cierpliwie poczekać.

Polecam obejrzenie filmiku z całego procesu. Pamiętaj, że powyższy opis, tyczy się instalacji Nextcloud na serwerze lokalnym, a nie np na VPS-ie dostępnym z Internetu.

Chcesz skomentować artykuł? Napisz na naszym forum