Learning Center
Piattaforma Docker

Come Installare Nextcloud con Docker

25 nov 2025
Hostman Team
Hostman Team

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:

  1. Accedi al tuo account Docker Hub o creane uno nuovo.

  2. Vai su Account settings → Personal access tokens.

  3. Clicca su Generate new token.

  4. Aggiungi una descrizione, imposta una data di scadenza e seleziona i permessi: Read, Write, Delete.

  5. Clicca su Generate e copia il token (sarà mostrato una sola volta).

  6. 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.