Vai al contenuto principale

Dedicated Server: Installazione di Nextcloud

Questa guida è stata creata con i seguenti prodotti:

(I dettagli possono variare con prodotti di fornitori diversi ma i concetti principali rimangono gli stessi)

Introduzione

Nextcloud è una soluzione cloud open source e fork di Owncloud, fondata nel 2016 dall’ex fondatore di Owncloud Frank Kalitschek.

Per ottenere prestazioni, stabilità e funzionalità ottimali, si consiglia la seguente configurazione per ospitare un server Nextcloud. Il server Nextcloud non è compatibile con Windows e MacOS. Almeno non senza ulteriori virtualizzazioni o workaround simili.

Preparazione

I seguenti requisiti sono raccomandati dagli sviluppatori e basati sulla nostra esperienza. Potresti incontrare problemi se non rispetti questi prerequisiti.

Hardware

ComponentiMinimoConsigliato
CPU2x 1 GHz4x 2+ GHz
RAM512 MB4+ GB
Storage10 GB50+ GB
Banda100 mbit/s (up & down)500mbit/s (up & down) Consigliato se più utenti devono usare il cloud

Software

PiattaformaOpzioni
Sistema OperativoUbuntu (14.04, 16.04, 18.04), Debian(8,9,10), CentOS 6.5/7
DatabaseMySQL o MariaDB 5.5+ (consigliato), SQLite (solo per test e installazioni minime)
Web serverApache 2.4 con mod_php o php-fpm (consigliato)
PHP5.6, 7.0 (consigliato), 7.1 (consigliato), 7.2

Preparazione

Per installare il cloud su un server Linux, devi connetterti tramite un client SSH. Se non sai come usare SSH, ecco una guida: Accesso iniziale (SSH)

Una volta stabilita la connessione, puoi iniziare a installare i pacchetti necessari per l’installazione di Nextcloud. Questo include l’installazione di un web server e PHP.


Apache (Web server)

🗄️ Debian 8/9/10:

sudo apt update && sudo apt -y upgrade
sudo apt -y install apache2

PHP (Hypertext Preprocessor)

🗄️ Debian 8:

# Passo 1: Aggiungi il repository PPA PHP 7.3
sudo apt -y install lsb-release apt-transport-https ca-certificates
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php7.3.list

# Passo 2: Installa PHP 7.3
sudo apt -y install php7.3

# Passo 3: Installa le estensioni PHP 7.3
sudo apt install php7.3-cli php7.3-fpm php7.3-json php7.3-pdo php7.3-mysql php7.3-zip php7.3-gd php7.3-mbstring php7.3-curl php7.3-xml php7.3-bcmath php7.3-json

🗄️ Debian 9:

# Passo 1: Aggiungi il repository PPA PHP 7.3
sudo apt -y install lsb-release apt-transport-https ca-certificates
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php7.3.list

# Passo 2: Installa PHP 7.3
sudo apt -y install php7.3

# Passo 3: Installa le estensioni PHP 7.3
sudo apt install php7.3-cli php7.3-fpm php7.3-json php7.3-pdo php7.3-mysql php7.3-zip php7.3-gd php7.3-mbstring php7.3-curl php7.3-xml php7.3-bcmath php7.3-json

🗄️ Debian 10:

# Passo 1: Installa PHP 7.3
sudo apt -y install php php-common

# Passo 2: Installa le estensioni PHP 7.3
sudo apt -y install php-cli php-fpm php-json php-pdo php-mysql php-zip php-gd php-mbstring php-curl php-xml php-pear php-bcmath

Controlla la versione PHP per verificarne il funzionamento

php -v

Il passo successivo è definire il tipo di database per memorizzare le informazioni rilevanti. Ci sono diverse opzioni:


Se hai deciso di usare questo tipo di database, segui questi passaggi:

Installazione pacchetti:

sudo apt-get install mariadb-server php-mysql

Durante l’installazione ti verrà chiesto di impostare una password root. Se non viene richiesta, la password di default è vuota. Questo non è sicuro e va cambiato subito dopo!

Il passo successivo è connettersi al server database e creare il database richiesto:

mysql -u root -p
CREATE DATABASE nextcloud;

Poi devi creare un utente che abbia accesso al database Nextcloud.

CREATE USER 'nc_user'@'localhost' IDENTIFIED BY 'YOUR_PASSWORD_HERE';
informazioni

Non saltare questo passaggio usando l’utente root. Non è sicuro e può mettere a rischio i tuoi dati!

L’ultimo passo è assegnare i permessi al nuovo utente:

GRANT ALL PRIVILEGES ON nextcloud.* TO 'nc_user'@'localhost';
FLUSH PRIVILEGES;

Quando hai finito, premi Ctrl-D per uscire dal database e continua con i passaggi successivi.

Installazione

Ora puoi iniziare l’installazione vera e propria di Nextcloud. Il software va scaricato e scompattato:

cd /var/www/
wget https://download.nextcloud.com/server/releases/latest.zip
apt-get install unzip
unzip latest.zip
chown -R www-data:www-data nextcloud
rm latest.zip

Una volta completato questo passaggio, è il momento di eseguire lo script di installazione. L’accesso è possibile via browser tramite il seguente URL:

Apparirà la configurazione dello script di installazione, dove si crea un utente root e si definiscono le informazioni del database:

Sicurezza e protezione

Avvisi di configurazione

Cartella dati

È fortemente consigliato posizionare la cartella dati fuori dalla root web (cioè fuori da /var/www). Il modo più semplice è farlo durante una nuova installazione. La cartella può essere definita durante la configurazione. Però la cartella deve essere creata prima e avere i permessi corretti. I dati potrebbero essere ad esempio salvati in una cartella chiamata Cloud nella home directory.

mkdir /home/cloud/
chown -R www-data:www-data /home/cloud/

HTTPS tramite certificato SSL (Let's Encrypt)

Una buona soluzione cloud dovrebbe essere accessibile solo tramite connessione SSL. Senza crittografia SSL, dati e informazioni vengono trasmessi in chiaro. Queste info possono essere intercettate e lette facilmente senza crittografia.

<IfModule mod_ssl.c>
<VirtualHost *:443>
DocumentRoot "/var/www/nextcloud"
ServerName domain.tld

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

<Directory /var/www/nextcloud/>
Options +FollowSymlinks
AllowOverride All

<IfModule mod_dav.c>
Dav off
</IfModule>

SetEnv HOME /var/www/nextcloud
SetEnv HTTP_HOME /var/www/nextcloud
Satisfy Any

</Directory>

SSLCertificateFile /etc/letsencrypt/live/domain.tld/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/domain.tld/privkey.pem
</VirtualHost>
</IfModule>

<IfModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=15768000; preload"
</IfModule>

Inoltre, tutto il traffico HTTP dovrebbe essere reindirizzato a HTTPS usando un redirect permanente con codice 301. Questo si può fare con Apache usando una configurazione come questa:

<VirtualHost *:80>
ServerName domain.tld
Redirect permanent / https://domain.tld/
</VirtualHost>

Gestisci Nextcloud

L’accesso a Nextcloud è possibile via browser, smartphone e computer tramite l’app. Le fonti per il download sono qui: https://nextcloud.com/install/#install-clients

Nelle impostazioni puoi modificare altre opzioni anche dopo l’installazione e vedere info importanti come log, attività. Ci sono anche impostazioni di sicurezza aggiuntive (autenticazione a due fattori, crittografia, ...), personalizzazione grafica (logo, colori, slogan, header), impostazioni di accesso e molto altro.

App

In più, puoi installare app extra oltre a quelle di default. Le trovi nel menu App.

Con queste App puoi personalizzare Nextcloud ancora di più a tuo piacimento.