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:
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.
ssh-keygen -t rsa -b 4096 -C "twó[email protected]"
Dodaj klucz do serwera. Po komendzie, należy wpisać hasło.
ssh-copy-id użytkownik@ip_serwera
Połącz się z serwerem. Teraz powinno połączyć Cię bez podawania hasła.
ssh użytkownik@ip_serwera
Instalacja Nextcloud
Aktualizacja systemu.
sudo apt update && sudo apt upgrade -y
Utwórz katalog na pliki
mkdir pliki
Nadaj mu odpowiednie uprawnienia.
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.
ip a
Uzyskaj statyczny adres IP.
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]
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.
sudo chmod 600 /etc/netplan/00-installer-config.yaml
sudo netplan apply
Instalacja potrzebnego oprogramowania.
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
sudo nano /etc/php/8.3/apache2/php.ini
Zmień wartości w tych liniach.
memory_limit = 1024M
upload_max_filesize = 16G
post_max_size = 16G
date.timezone = Europe/Warsaw
Zaloguj się do MySQL
sudo mysql -u root -p
Utwórz bazę danych, użytkownika i hasło.
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.
cd /tmp && sudo wget https://download.nextcloud.com/server/releases/latest.zip
Rozpakuj, przenieś i skasuj pobranego zip-a
sudo unzip latest.zip
sudo mv nextcloud /var/www
sudo rm latest.zip
Włącz moduły Apache i zresetuj.
sudo a2enmod rewrite headers env dir mime
sudo systemctl restart apache2
Utwórz wirtualny host.
sudo nano /etc/apache2/sites-available/nextcloud.conf
Upewnij się, że w poniższej konfiguracji jest adres IP twojego serwera.
<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
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ę.
sudo a2enmod ssl
sudo a2ensite nextcloud.conf
sudo systemctl restart apache2
Ustaw właściciela katalogu z Nextcloud-em.
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:
https://ip_serwera
Wyświetli się informacja, że coś jest nie tak z certyfikatem SSL.
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:
/home/konrad/pliki
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.