Come Installare Nextcloud su un VPS
Scritto dal team ApexVPS • Ultimo aggiornamento: luglio 2026 • 9 min di lettura
Questa guida all'installazione di Nextcloud su VPS ti accompagna nella creazione del tuo cloud privato — file, calendari, contatti e foto — su un server che controlli completamente. Eseguire Nextcloud su un VPS ti offre risorse dedicate, accesso root completo e nessun abbonamento per utente, così i tuoi dati restano tuoi. Qui trovi i prerequisiti, due metodi di installazione collaudati (Docker Compose o stack LAMP manuale), come aggiungere HTTPS con Let's Encrypt, oltre ai passaggi di ottimizzazione e backup che mantengono il server veloce e sicuro. Ogni comando è pensato per un server Ubuntu o Debian fresco.
Perché auto-ospitare Nextcloud su un VPS?
Nextcloud è una piattaforma open-source che sostituisce Google Drive, Dropbox e gran parte di una suite di produttività con software che gestisci tu stesso. Un VPS è la sede naturale: a differenza dell'hosting condiviso, hai accesso root, un costo mensile fisso e prestazioni prevedibili. Su un VPS veramente dedicato non ci sono vicini rumorosi che competono per la CPU, il che conta quando più persone sincronizzano file contemporaneamente. Se stai valutando quali servizi vale la pena gestire da solo, la nostra panoramica su come scegliere un VPS per l'auto-hosting confronta i carichi di lavoro comuni e quanto margine richiede ciascuno.
Prerequisiti prima di iniziare
Ti servono tre cose: un VPS con Ubuntu 22.04/24.04 o Debian 12, un nome di dominio su cui modificare il DNS e accesso SSH al server come utente con sudo. Un dominio non è strettamente necessario per i test, ma senza non puoi emettere un certificato TLS affidabile, quindi trattalo come obbligatorio per un uso reale.
Scegliere la dimensione giusta del VPS
La dimensione dipende da quante persone usano il server e se archivi media. Per un singolo utente o una famiglia che sincronizza documenti, 2 vCPU e 4 GB di RAM sono comodi. Quando aggiungi le app Foto, Memories o media, o porti più di una manciata di account attivi, passa a un piano Business o superiore — la RAM extra, il NVMe più veloce e gli snapshot orari rendono la generazione di miniature e le anteprime molto più fluide. Puoi confrontare i piani sulla nostra pagina dei prezzi VPS; scalare in seguito è rapido, quindi è giusto iniziare in modo modesto e crescere.
Punta il tuo dominio al server
Crea un record A (e un record AAAA se usi IPv6) che punti un hostname come cloud.example.com all'IP pubblico del tuo server. Il DNS può richiedere un po' di tempo per propagarsi. Conferma che risolva prima di richiedere un certificato:
dig +short cloud.example.com
Percorso 1 — Nextcloud con Docker Compose
I container sono il modo più veloce per ottenere un'installazione pulita e ripetibile, e mantengono Nextcloud, il database e la cache isolati dal resto del sistema. Se i container sono nuovi per te, la nostra guida per principianti su Docker su un VPS copre le basi. Installa Docker usando lo script ufficiale di convenienza, poi aggiungi il tuo utente al gruppo docker:
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
# log out and back in so the group change takes effect
Crea una cartella di progetto e un compose.yaml che esegua Nextcloud con MariaDB e Redis. L'app è vincolata a 127.0.0.1:8080 quindi è raggiungibile solo tramite il proxy inverso che aggiungerai dopo, non direttamente da internet:
mkdir ~/nextcloud && cd ~/nextcloud
nano compose.yaml
services:
db:
image: mariadb:10.11
restart: always
command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
volumes:
- db:/var/lib/mysql
environment:
- MARIADB_ROOT_PASSWORD=change-this-root-password
- MYSQL_PASSWORD=change-this-db-password
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
redis:
image: redis:alpine
restart: always
app:
image: nextcloud:apache
restart: always
ports:
- "127.0.0.1:8080:80"
depends_on:
- db
- redis
volumes:
- nextcloud:/var/www/html
environment:
- MYSQL_HOST=db
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=change-this-db-password
- REDIS_HOST=redis
volumes:
db:
nextcloud:
Avvia lo stack e verifica che tutti e tre i container siano attivi:
docker compose up -d
docker compose ps
Nextcloud ora è in ascolto su localhost:8080. Vai alla sezione TLS per esporlo in modo sicuro via HTTPS.
Percorso 2 — Installazione manuale su stack LAMP
Se preferisci gestire i componenti da solo, un'installazione classica Linux, Apache, MariaDB e PHP (LAMP) ti dà il controllo totale. Aggiorna il sistema e installa il server web, il database e le estensioni PHP richieste da Nextcloud:
sudo apt update && sudo apt upgrade -y
sudo apt install -y apache2 mariadb-server libapache2-mod-php unzip \
php php-gd php-mysql php-curl php-mbstring php-intl php-xml \
php-zip php-bcmath php-gmp php-imagick
Blocca il database, quindi crea un database e un utente dedicati:
sudo mysql_secure_installation
sudo mysql -u root -p
CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'change-this-db-password';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Scarica l'ultima versione nella root del web e imposta i permessi perché Apache possa scrivere:
cd /var/www
sudo wget https://download.nextcloud.com/server/releases/latest.zip
sudo unzip latest.zip
sudo chown -R www-data:www-data /var/www/nextcloud
Crea un virtual host Apache per il tuo dominio, abilitalo insieme ai moduli necessari a Nextcloud e ricarica:
sudo a2enmod rewrite headers env dir mime
sudo a2ensite nextcloud.conf
sudo systemctl reload apache2
Proteggilo con TLS (Let's Encrypt)
Non eseguire mai Nextcloud su HTTP non crittografato: accessi e file viaggerebbero in chiaro. Certbot del progetto Let's Encrypt rilascia un certificato gratuito e affidabile e lo rinnova automaticamente. Per l'installazione manuale di Apache, usa il plug-in Apache:
sudo apt install -y certbot python3-certbot-apache
sudo certbot --apache -d cloud.example.com
Per il percorso Docker, metti Nginx davanti come proxy inverso che inoltra a 127.0.0.1:8080, poi lascia che Certbot lo protegga:
sudo apt install -y nginx certbot python3-certbot-nginx
sudo certbot --nginx -d cloud.example.com
Certbot installa un timer systemd che rinnova i certificati prima della scadenza. Puoi verificare che il rinnovo funzioni con una prova a secco:
sudo certbot renew --dry-run
Configurazione iniziale
Apri https://cloud.example.com in un browser. Nella schermata di configurazione, crea il tuo account amministratore e, per l'installazione manuale, inserisci il nome del database, l'utente e la password che hai creato prima (l'immagine Docker è già collegata al suo database, quindi salta questo passaggio). Completa la procedura guidata e Nextcloud si apre sulla vista File. Aggiungi subito il tuo dominio all'elenco dei trusted_domains se vedi un avviso — per Docker significa modificare la configurazione nel contenitore:
docker compose exec -u www-data app \
php occ config:system:set trusted_domains 1 --value=cloud.example.com
Nell'installazione manuale lo stesso comando viene eseguito dalla directory di installazione con sudo -u www-data php /var/www/nextcloud/occ .... Lo strumento a riga di comando occ è il tuo principale punto di accesso all'amministrazione da qui in poi.
Ottimizzazione e processi in background
Un'installazione predefinita funziona, ma alcune modifiche fanno la differenza. Passa i processi in background da AJAX a cron di sistema così le attività vengono eseguite in modo affidabile anche quando nessuno è connesso. Per l'installazione manuale, aggiungi una voce cron per l'utente web:
sudo crontab -u www-data -e
# add this line, then save:
*/5 * * * * php -f /var/www/nextcloud/cron.php
Poi imposta l'opzione "Cron" in Amministrazione → Impostazioni di base. Altre modifiche utili: aumenta memory_limit PHP ad almeno 512M, abilita Redis per il blocco dei file e la cache (già incluso nel file Compose sopra) e imposta una finestra di manutenzione per eseguire i processi pesanti durante la notte. Eseguire i controlli integrati ti aiuta a individuare eventuali mancanze:
sudo -u www-data php /var/www/nextcloud/occ status
sudo -u www-data php /var/www/nextcloud/occ setupchecks
Backup che puoi davvero ripristinare
Gli snapshot del tuo VPS sono la prima linea di difesa — backup giornalieri su Starter Pro, snapshot orari su Business ed Enterprise — ma una buona abitudine è un backup a livello di applicazione separato che puoi ripristinare file per file. Metti Nextcloud in modalità di manutenzione, esegui il dump del database, archivia la directory dati, poi disattiva la modalità di manutenzione:
sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --on
mysqldump --single-transaction -u nextcloud -p nextcloud > nextcloud-db.sql
sudo tar -czf nextcloud-data.tar.gz /var/www/nextcloud/data
sudo -u www-data php /var/www/nextcloud/occ maintenance:mode --off
Per l'installazione Docker, esegui le stesse chiamate occ tramite docker compose exec -u www-data app php occ ... e fai il backup dei volumi nominati. Conserva almeno una copia fuori dal server e testa il ripristino di tanto in tanto: un backup non testato è solo una speranza.
Mantenere il servizio attivo
Aggiorna Nextcloud tramite l'updater integrato o l'interfaccia web subito dopo ogni rilascio, mantieni il sistema operativo aggiornato con sudo apt upgrade e controlla il pannello degli avvisi di Sicurezza e configurazione nell'area di amministrazione. Con protezione DDoS, rete privata e monitoraggio 24/7 sul lato infrastruttura, e Let's Encrypt più aggiornamenti regolari sul lato applicazione, un Nextcloud self-hosted è un'alternativa davvero affidabile alle grandi suite cloud.
Domande frequenti
Quanta RAM serve per un VPS Nextcloud?
Per un solo utente o una famiglia che sincronizza documenti, 4 GB RAM e 2 vCPU sono comodi. Se aggiungi librerie di foto o video, generazione di anteprime o diversi utenti attivi, un piano Business con 8 GB RAM e NVMe più veloce è più adatto. Enterprise aggiunge 16 GB e RAID NVMe per team più grandi.
Dovrei scegliere Docker o l'installazione manuale LAMP?
Scegli Docker Compose se vuoi uno stack pulito e ripetibile, facile da spostare o ricostruire, e il percorso manuale LAMP se preferisci gestire Apache, PHP e MariaDB direttamente. Entrambi sono pienamente supportati su un VPS con accesso root; il risultato finale è lo stesso Nextcloud.
Un Nextcloud self-hosted è sicuro?
Sì, se configurato correttamente: servi tutto su HTTPS con un certificato Let's Encrypt, mantieni aggiornati il sistema operativo e Nextcloud, usa password robuste con autenticazione a due fattori e affidati ai backup del tuo VPS. Poiché lo ospiti tu stesso, nessun terzo ha accesso permanente ai tuoi file.
Mi serve un nome di dominio?
In pratica sì. Puoi fare test con un indirizzo IP grezzo, ma un certificato TLS affidabile richiede un dominio, e i client di sincronizzazione mobili e desktop si aspettano un hostname HTTPS valido. Basta un singolo dominio di basso costo con un record A che punta al tuo server.
Posso pagare senza carta di credito?
Sì. Il checkout di ApexVPS è solo crypto tramite OxaPay, accettando Bitcoin, Ethereum, USDT e oltre 30 monete — niente carta di credito o conto bancario. Per registrarti serve solo un'email per inviarti i dati di accesso, più note opzionali come una chiave SSH o il sistema operativo preferito. Non sono richiesti nome, indirizzo o KYC.