
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
Zmiana koloru użytkownik@host w terminalu. (Opcjonalnie)
nano ~/.bashrc
Na końcu pliku dodaj:
if [ -n "$SSH_CONNECTION" ]; then PS1='\[\e[1;33m\]\u@\h:\w\$ \[\e[0m\]' fi
Przeładuj konfiguracje.
source ~/.bashrc
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.