Come Installare Nextcloud con Docker
Per chi desidera avere il pieno controllo sui propri dati, Nextcloud offre una potente soluzione open-source per creare un sistema di archiviazione cloud privato. La piattaforma non solo consente la sincronizzazione sicura dei file tra dispositivi diversi, ma permette anche di ospitare l’archiviazione sul proprio server, evitando la dipendenza da provider terzi.
In questa guida vedremo come installare Nextcloud utilizzando container Docker isolati, semplificando notevolmente il processo di deployment e gestione. Inoltre, configureremo la cifratura automatica del traffico tramite certificati SSL di Let’s Encrypt, per garantire una trasmissione sicura dei dati.
Prerequisiti Copia link
Avrai bisogno di:
-
Un server cloud Hostman con Linux Ubuntu 24.04 preinstallato.
-
Un nome di dominio.
-
Docker e Docker Compose installati.
Per il server si consiglia una configurazione con 1 core CPU, 2 GB di RAM e un indirizzo IPv4 pubblico, che puoi richiedere durante la creazione del server o successivamente nella sezione “Network”.
Il server sarà pronto in pochi minuti. L’indirizzo IPv4 e le credenziali SSH saranno disponibili nel Dashboard.
Installare ed eseguire Nextcloud Copia link
Nextcloud richiede diversi componenti chiave:
-
Database: in questo caso MariaDB, un sistema di gestione database veloce e affidabile.
-
Certificato SSL: utilizzeremo certificati SSL gratuiti rilasciati da Let’s Encrypt.
-
Reverse proxy: aggiungeremo Nginx Proxy Manager, che instraderà il traffico HTTP e HTTPS verso i container appropriati.
Passo 1: Creare la directory di configurazione Copia link
Crea una cartella per i file di configurazione e accedi al suo interno:
mkdir nextcloud && cd nextcloud
Passo 2: Creare il file .env Copia link
Questo file nascosto conterrà variabili con password:
nano .env
Contenuto del file:
NEXTCLOUD_ROOT_PASSWORD=secure_root_password_123
NEXTCLOUD_DB_PASSWORD=secure_nextcloud_db_password_456
NPM_ROOT_PASSWORD=secure_npm_root_password_789
NPM_DB_PASSWORD=secure_npm_db_password_012
Ricorda di sostituire questi valori con le tue password personali.
Passo 3: Creare il file docker-compose.yml Copia link
Crea il file con:
nano docker-compose.yml
Aggiungi la configurazione seguente (non tradotta su tua richiesta):
volumes:
nextcloud-data:
nextcloud-db:
npm-data:
npm-ssl:
npm-db:
networks:
frontend:
backend:
services:
nextcloud-app:
image: nextcloud:31.0.8
restart: always
volumes:
- nextcloud-data:/var/www/html
environment:
- MYSQL_PASSWORD=${NEXTCLOUD_DB_PASSWORD}
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_HOST=nextcloud-db
- MYSQL_PORT=3306
networks:
- frontend
- backend
nextcloud-db:
image: mariadb:12.0.2
restart: always
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
volumes:
- nextcloud-db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=${NEXTCLOUD_ROOT_PASSWORD}
- MYSQL_PASSWORD=${NEXTCLOUD_DB_PASSWORD}
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
networks:
- backend
npm-app:
image: jc21/nginx-proxy-manager:2.12.6
restart: always
ports:
- "80:80"
- "81:81"
- "443:443"
environment:
- DB_MYSQL_HOST=npm-db
- DB_MYSQL_PORT=3306
- DB_MYSQL_USER=npm
- DB_MYSQL_PASSWORD=${NPM_DB_PASSWORD}
- DB_MYSQL_NAME=npm
volumes:
- npm-data:/data
- npm-ssl:/etc/letsencrypt
networks:
- frontend
- backend
npm-db:
image: jc21/mariadb-aria:10.11.5
restart: always
environment:
- MYSQL_ROOT_PASSWORD=${NPM_ROOT_PASSWORD}
- MYSQL_DATABASE=npm
- MYSQL_USER=npm
- MYSQL_PASSWORD=${NPM_DB_PASSWORD}
volumes:
- npm-db:/var/lib/mysql
networks:
- backend
Passo 4: Avviare i container Copia link
Avvia i container con:
docker compose up -d
Se compare un errore riguardante i limiti di pull di Docker Hub:
-
Accedi al tuo account Docker Hub o creane uno nuovo.
-
Vai su Account settings → Personal access tokens.
-
Clicca su Generate new token.
-
Aggiungi una descrizione, imposta una data di scadenza e seleziona i permessi: Read, Write, Delete.
-
Clicca su Generate e copia il token (sarà mostrato una sola volta).
-
Sul server, accedi con:
docker login -u dockeruser
Sostituisci dockeruser con il tuo nome utente e inserisci il token come password.
Riavvia quindi i container:
docker compose up -d
Controlla lo stato:
docker ps
Tutti i container dovranno mostrare lo stato Up.
Passo 5: Configurare HTTPS con Let’s Encrypt Copia link
Apri nel browser:
http://<server-IP>:81
Accedi con le credenziali predefinite:
-
Login: admin@example.com
-
Password: changeme
Al primo accesso:
-
Aggiorna nome completo, nickname ed email.
-
Modifica la password:
-
Current Password: changeme
-
New Password: nuova password
-
Confirm Password: ripeti la password
Passo 6: Aggiungere un Proxy Host Copia link
Vai su Hosts → Proxy Hosts.
Clicca su Add Proxy Host e compila:
-
Domain Names: il dominio della tua istanza Nextcloud
-
Scheme: http
-
Forward Hostname/IP: nextcloud-app
-
Forward Port: 80
Nella scheda SSL:
-
Seleziona Request a new SSL Certificate
-
Attiva:
-
Force SSL
-
HTTP/2 Support
-
HSTS Enabled
Inserisci la tua email per Let’s Encrypt e accetta i termini. Salva le modifiche.
Passo 7: Accedere a Nextcloud Copia link
Ora visita il tuo dominio. Se tutto è configurato correttamente, l’interfaccia web di Nextcloud si aprirà e verrà emesso automaticamente un certificato SSL Let’s Encrypt.
-
Crea un nuovo account amministratore.
-
Facoltativamente installa le app consigliate.
L’installazione e la configurazione di base sono concluse.
Conclusione Copia link
In questo articolo abbiamo mostrato come distribuire Nextcloud con Docker e ottenere un certificato SSL gratuito tramite Let’s Encrypt.
Questo metodo è tra i più affidabili, sicuri e facilmente scalabili. Docker garantisce un isolamento corretto delle applicazioni, semplifica gli aggiornamenti e facilita le migrazioni. Utilizzare un certificato SSL non è solo consigliato, ma essenziale per proteggere dati sensibili e garantire traffico crittografato.