NextCloud
De la adresa https://download.nextcloud.com/server/releases descărcăm ultima versiune a lui NextCloud, la momentul scrierii ultima versiune este 28.0.1:
wget https://download.nextcloud.com/server/releases/latest.zip
După vom dezarhiva arhiva anterior descărcată în directorul /var/www/
folosind următoarea comandă, la care indicatorul -d
este folosit pentru a indica directorul de destinație:
unzip latest.zip -d /var/www/
După instalarea serviciului PostgreSQL descrisă în acestă arie se va crea baza de date nextcloud
și un utilizator nextcloud
ce va fi propietarul acestei baze date ca mai jos:
Ne conectăm la servicul bazei de date:
psql -h localhost -U postgres -W
apoi va apare un prompter ce ne solictă parola utilizatorului postgres.
După logarea cu succes vom crea baza de date nextcloud:
create database nextcloud;
Creăm utilizatorul nexcloud și în același timp stabilim și parola acestuia:
create user nextcloud with password 'nextcloud_pass;
Stabilim ca propietarul bazei de date nextcloud să fie utilizatorul nextcloud:
alter database nextcloud owner to nextcloud;
Atribuim toate privilegiile către utilizatorul nextcloud la baza de date nextcloud:
grant all privileges on database nextcloud to nextcloud;
Apoi închidem conexiunea la serverul PostgreSQL:
\q
Verificăm după comezile de mai dacă utilizatorul nextcloud are dreptul la baza de date nextcloud:
psql -h localhost -d nextcloud -U nextcloud
Instalăm serverul Apache și php pentru Apache cu PHP-FPM descrisă aici cât și unele module respectiv utilitare:
apt install imagemagick ffmpeg exiftool php8.2-imagick php8.2-common php8.2-pgsql php8.2-fpm php8.2-gd php8.2-curl php8.2-imagick php8.2-zip php8.2-xml php8.2-mbstring php8.2-bz2 php8.2-intl php8.2-bcmath php8.2-gmp php8.2-imap php8.2-smbclient php8.2-exif
Schimbam proprietarul și grupul directoarelor și fișierelor unde am dezarhivat anterior nextcloud /var/www/nextcloud
, conform cu propietarul și grupul din care face parte seviciul Apache:
chown -R www-data:www-data /var/www/nextcloud/
Din motive de securitate creăm directorul /var/www/data
unde nextcloud ne va păstra date:
mkdir /var/www/data
Modificăm proprietarul la directorul creat anterior:
chown www-data:www-data /var/www/data
Cream fișierul de configurare pentru site-ul virtual aferent nextcloud, în directorul /etc/apache2/sites-available/
:
nano /etc/apache2/sites-available/nextcloud.domeniu.com.conf
<VirtualHost *:80>
DocumentRoot /var/www/nextcloud/
ServerName nextcloud.domeniu.com
<Directory /var/www/nextcloud/>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
<IfModule mod_dav.c>
Dav off
</IfModule>
</Directory>
</VirtualHost>
Atenție - Numele de la ServerName trebuie să existe și să fie înregistrat la un serviciu DNS, de asemenea atentie la calea aferentă DocumentRoot.
Activăm site-ul creat anterior:
a2ensite nextcloud.domeniu.com.conf
Pentru ca Nextcloud să funcționeze corect, avem nevoie de modulul mod_rewrite
activat:
a2enmod rewrite
în acest caz a fost activat anterior:
Modulele suplimentare recomandate sunt: mod_headers
, mod_env
, mod_dir
și mod_mime
:
a2enmod headers && a2enmod env && a2enmod dir && a2enmod mime
În cazul meu 3 erau activate anterior.
Dacă rulăm mod_fcgi
în locul standardului mod_php
activăm și:
a2enmod setenvif
fiind de asemeni activat anterior în cazul meu.
Repornim servicul Apache:
systemctl restart apache2
Solicităm cheile pentru conexiunea ssl la site-ul virtual aferent nextcloud folosind comanda:
certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email emailul_tau@domeniu_email.com -d nextcloud.domeniu.com
în cazul în care anterior am solictat chei pentru un alt site virtual vom adăuga indicatorul --expand
:
certbot --expand --apache --agree-tos --redirect --hsts --staple-ocsp --email emailul_tau@domeniu_email.com -d domeniu.com,nextcloud.domeniu.com
Pentru a verifica, dacă am realizat un lucru bun, vom testa la https://www.ssllabs.com/ssltest/index.html site-ul nostru dacă ok, eu am obținut o notă bună:
După accesarea paginii web a site-ului https://nextcloud.domeniu.com
vom fi întânpinați, pentru prima dată, de pagina unde va trebui să raspundem prin introducerea datelor solictate:
După care apăsăm butonul Instalează
și dacă totul a fost introdus corect vom fi întâmpinați de o nouă fereastră:
După apăsarea butonului Instalați aplicațiile recomandate
și instalarea aplicațiilor recomandate ecranul următor va fi de forma:
După citirea și închiderea ferestrei de bun venit tablou de bord a alui nextcloud instalat pe severul nostru va fi de forma:
Astfel că în acest moemnt avem un nextcloud
cu servicii minime și suncțional.
Verificăm la pagina Administare -> Prezentare Generala
eventuale probleme sau lucruri care trebuiesc optimizate:
Dar cel mai bine îninate de realiza modificări să realizăm backupuri la fișierele originale:
Unul din lucruri este că trebuie să marim memoria la minim 512M:
nano /etc/php/8.2/fpm/php.ini
căutăm linia:
memory_limit = 128M
și schimbăm valoarea la minim 512M:
memory_limit = 512M
Instalare Collabora (Libreoffice utilizat în Nextcloud)
Collabora are un depozit oficial de pachete pentru Ubuntu 22.04. Rulăm următoarea comandă pentru a o adăuga la sistem.
echo 'deb https://www.collaboraoffice.com/repos/CollaboraOnline/CODE-ubuntu2204 ./' | tee /etc/apt/sources.list.d/collabora.list
Apoi rulăm următoarea comandă pentru a descărca și importa cheia publică pentru Collabora, care ve va permite ca managerului de pachete APT să verifice integritatea pachetelor descărcate din acest depozit.
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 0C54D189F4BA284D
Copiem cheia trusted.gpg din directorul /etc/apt/
în directorul /etc/apt/trusted.gpg.d/
:
cp /etc/apt/trusted.gpg /etc/apt/trusted.gpg.d
sau și mai bine exportăm cheia în directorul respectiv:
apt-key export F4BA284D | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/collabora.gpg
după care ștergem fisierul trusted.gpg creat anterior:
rm -f /etc/apt/tusted.gpg
și verificăm că totul este regulă cu cheile noastre:
apt-key list
Atenție - Verificăm anterior că nu sunt mai multe chei în trusted.gpg (nu ar trebuie să fie) pe lângă cele de la Collabora cu apt-key list
, dacă sunt trebuiesc exportate și acelea.
Actualizăm sistemul:
apt update && apt upgrade
Acum instalăm Collabora, vor fi necesare doua pachete:
apt install coolwsd code-brand
După instalare verificăm starea serviciului coolwsd
:
systemctl status coolwsd
După cum se poate observa sunt probleme cu pornirea servicului și verificăm jurnalul acestuia:
journalctl -eu coolwsd
vom analiza jurnalul și vom constată că nu este găsit un fișier cu chei:
Va trebui să edităm fișierul /etc/coolwsd/coolwsd.xml
dar fiind destul de complicat vom folosi comanda de configurare a acetsuia coolconfig
, dar înainte de editare o salvare a originalului pentru orice eventualitate nu strică:
cp /etc/coolwsd/coolwsd.xml /etc/coolwsd/coolwsd.xml.orig
dezactivăm TLS
:
coolconfig set ssl.enable false
activăm TLS termination
:
coolconfig set ssl.termination true
În mod implicit, coolwsd permite doar gazdelor cunoscute să-și acceseze serviciul. Pentru a permite serviciului nostru de Nextcloud să acceseze serviciul, rulăm următoarea comandă pentru a adăuga numele de gazdă a virtual host-ului nostru (realizat la pasul cu instalarea lui Nextcloud) cu servicul Nextcloud la lista sigură:
coolconfig set storage.wopi.host nextcloud.domeniu.com