Come installare e configurare Nextcloud

Data:
Novembre 26, 2023

Nextcloud è una piattaforma software client-server che permette la creazione e l’utilizzo di servizi di file hosting, di cloud storage, di memorizzazione e sincronizzazione online di dati.
Essendo un software libero e open-source chiunque può installarlo e utilizzarlo sui propri server.
Inoltre grazie all’integrazione con OnlyOffice o Collabora Online, è funzionalmente simile a Dropbox, Office 365 o Google Drive.
Poiché il software è modulare, può essere esteso con plug-in per aggiungere funzionalità come calendari, video-conference e molto altro ancora, il che lo rende a tutti gli effetti un ottimo sistema collaborativo sia per imprese private che pubbliche.

In questa breve guida cercherò che indicarvi come installare Nextcloud AIO (All In One).
Nextcloud All-in-One è un progetto basato su Docker che permette di installare un solo container che crea e gestisce tutti i container necessari per un’installazione completa di Nextcloud.
Nextcloud AIO non solo offre una facile implementazione e manutenzione di molte delle funzioni Nextcloud incluse, ma è anche dotato di un’interfaccia facile da usare, una semplice gestione degli aggiornamenti e un approccio più semplicistico per far funzionare la maggior parte delle funzioni out-of-the-box.

Nel pacchetto Nextcloud AIO sono compresi se seguenti plug-in:

  • Office
  • Files
  • Talk
  • Soluzione di backup (basata su BorgBackup)
  • Imaginary (per le anteprime di heic, tiff e webp)
  • ClamAV (backend antivirus per Nextcloud)
  • Fulltextsearch

Le seguenti istruzioni sono state utilizzate su un server con sistema operativo Ubuntu 22.04 LTS con una CPU x64 con almeno 4GB di RAM e 2 core.

Per essere installato inoltre Nextcloud necessiterebbe della configurazione di un server web o reverse proxy (come Apache, Nginx, ecc.) che però nel in questo caso specifico non considereremo perchè integrato in un container di Docker.

Per prima cosa, una volta entrati nel nostro server, è opportuno creare un nuovo utente ed aggiungerlo al gruppo sudo (super user do) in maniera tale da evitare di lavorare direttamente con l’utente root.

Creiamo un utente

~$ adduser pippo

Aggiungiamo l’utente pippo al gruppo sudo

~$ usermod -aG sudo pippo

A questo punto sarà necessario disconnettersi dall’account root e ricollegarsi al server con l’account pippo.

Una volta loggati con l’account corretto aggiorniamo il nostro server col seguente comando:

~$ sudo apt update && sudo apt upgrade

Se possiedi un dominio, potresti configurare un suo terzo livello nel seguente modo: nextcloud.ilmiodominio.it e quindi farlo puntare direttamente all’indirizzo IP pubblico del server in cui stati effettuando l’istallazione di Nextcloud AIO.

In questo caso ti conviene anche modificare l’ hostname del tuo server nel seguente modo:

~$ sudo nano /etc/hostname

ad esempio sostituisci il contenuto che trovi all’interno del file hostename con nextcloud.ilmiodominio.it

Interroghiamo l’orologio di sistema per regolarlo secondo la nostra zona:

~$ timedatectl

per verificare la lista delle zone inserire il seguente comando:

~$ timedatectl list-timezones

Per modificare l’orologio di sistema secondo la nostra zona eseguire il seguente comando:

~$ sudo timedatectl set-timezone Europe/Rome

a questo punto eseguire il riavvio del server per avviare le nuove impostazioni:

~$ sudo reboot

Adesso possiamo loggarci al nostro server in ssh utilizzando l’user creato seguito dall’hostname

~$ ssh pippo@nextcloud.ilmiodominio.it

Per ragioni di sicurezza è sempre opportuno bloccare l’accesso root del nostro server modificando la configurazione che trovate nel file sshd_config. Nello specifico all’interno del file è necessario modificare la riga PermitRootLogin yes a PermitRootLogin no col seguente comando:

~$ sudo nano /etc/ssh/sshd_config

Per rendere operative queste modifiche sarà necessario resettare il servizio col seguente comando:

~$ sudo systemctl restart sshd

Adesso è opportuno attivare il firewall sul server facendo molta attenzione a lasciare abilitate le porte utilizzate da Nextcloud AIO. Eseguire quindi i seguenti comandi:

~$ sudo ufw enable
~$ sudo ufw allow 80/tcp
~$ sudo ufw allow 443/tcp
~$ sudo ufw allow 8080/tcp
~$ sudo ufw allow 8443/tcp
~$ sudo ufw allow 3478

Fatte queste azioni preliminari adesso è necessario installare Docker utilizzando il seguente script:

~$ curl -fsSL get.docker.com | sudo sh

Installato Docker possiamo procedere con l’istallazione di nextcloud AIO lanciando il seguente comando:

#For x64 CPUs and without a web server or reverse proxy (like Apache, Nginx and else) already in place:
~$ sudo docker run \
--sig-proxy=false \
--name nextcloud-aio-mastercontainer \
--restart always \
--publish 80:80 \
--publish 8080:8080 \
--publish 8443:8443 \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
nextcloud/all-in-one:latest

Questo comando farà in modo che i dati che via via andrai a creare con Nextcloud risiedano all’interno del contenitore.
Puoi configurare il contenitore Nextcloud per utilizzare una directory specifica sul tuo host come directory dei dati. Puoi farlo aggiungendo la variabile ambientale NEXTCLOUD_DATADIR al comando docker run del mastercontainer (ma prima dell’ultima riga nextcloud/all-in-one:latest)
Se vuoi che i dati stiano su una specifico volume occorre modificare leggermente il comando nel seguente modo:

~$ sudo docker run \
--sig-proxy=false \
--name nextcloud-aio-mastercontainer \
--restart always \
--publish 80:80 \
--publish 8080:8080 \
--publish 8443:8443 \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config \
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
--env NEXTCLOUD_DATADIR="/mnt/ncdata"
nextcloud/all-in-one:latest

Al termine di questa operazione che potrebbe durare qualche minuto sei pronto per configurare il tuo Nextcloud AIO.

Apri l’interfaccia AIO su https://localhost:8080 o https://(IP del server):8080
Se, come fatto in precedenza, le porte 80 e 8443 sono aperte sul firewall/router e un dominio è configurato per puntare al tuo server, puoi raggiungere l’interfaccia AIO con un certificato valido utilizzando https://nextcloud.ilmiodominio.it:8443
Accettare il certificato autofirmato, e la schermata ti mostrerà al password per terminare la configurazione.
La password è costituita da un insieme di parole, pertanto ti conviene prenderne nota e salvarla in un luogo sicuro perchè non sarà più possibile recuperarla e ti darà accesso al sistema ogni qualvolta avrai la necessità di modificare la configurazione di Nextcloud AIO

Clicca su “Apri il login di Nextcloud AIO” e incolla la tua password:

A questo punto, dovresti vedere l’interfaccia AIO:

Dopo averla configurata correttamente, dovrebbe permetterti di passare alla fase successiva in cui potrai configurare i componenti aggiuntivi opzionali desiderati e il fuso orario e cliccare su Avvia contenitori per scaricarli e avviarli.

A questo punto, dovresti vedere uno spinner che richiederà un po’ di tempo a seconda della tua velocità di internet ~ circa 10 minuti o più.

Quando tutti i container sono stati scaricati e avviati, vedrai questa schermata che mostra i container ancora in fase di avvio che eseguiranno la prima installazione per te:

Quando tutto è pronto, dovresti vedere questa schermata:

Adesso puoi aprire la tua nuova istanza Nextcloud e accedere con le credenziali di amministrazione fornite.

Una volta completata l’installazione potrebbe tornarti utile installare sul tuo PC il Client di Nextcloud.

Puoi usare i client desktop disponibili sulla pagine ufficiale di nextcloud per mantenere la sincronizzazione dei tuoi file tra il server Nextcloud e il tuo desktop.

Di seguito una breve guida per effettuare l’installazione del clinet su una macchina con sistema operativo Linux Mint

Per installare il client di Nextcloud su Linux Mint, puoi seguire questi passaggi:

1. Aggiungi il repository di Nextcloud Client

Il client di Nextcloud non è sempre disponibile nei repository ufficiali di Linux Mint, quindi è consigliabile aggiungere il repository ufficiale di Nextcloud.

Apri il terminale e digita il seguente comando per aggiungere il repository PPA di Nextcloud Client:

sudo add-apt-repository ppa:nextcloud-devs/client
2. Aggiorna i pacchetti del sistema

Aggiorna l’elenco dei pacchetti con:

sudo apt update
3. Installa il client Nextcloud

Ora puoi installare il client con il seguente comando:

sudo apt install nextcloud-client
4. Avvia il client di Nextcloud

Dopo l’installazione, puoi avviare il client Nextcloud cercandolo nel menu di applicazioni di Linux Mint o eseguendolo direttamente dal terminale:

nextcloud
5. Configura il client

Quando apri il client, ti verrà chiesto di inserire l’URL del tuo server Nextcloud, come ad esempio https://nextcloud.miodominio.it. Successivamente, effettuerai l’accesso con le tue credenziali e potrai configurare quali cartelle sincronizzare.

Verifica dell’installazione

Per verificare che il client sia correttamente installato, puoi anche controllare la versione con:

nextcloud --version

Questo è tutto! Ora hai il client di Nextcloud installato e pronto all’uso su Linux Mint.