Nextcloud ti offre sincronizzazione dei file, calendari, contatti e modifica dei documenti su un server che controlli tu, invece di consegnare i tuoi file a un grande provider cloud. Ecco come eseguirlo su un VPS con Docker Compose.
Prima di iniziare
- Un VPS con 2 vCPU e 4 GB di RAM è un buon punto di partenza. Lo spazio di archiviazione è il vincolo principale, quindi scegli un disco adatto ai tuoi file.
- Un dominio che punta al server, trattato nella nostra guida al DNS.
- Docker installato, vedi installare Docker su Ubuntu.
1. Il file Compose
mkdir -p ~/nextcloud && cd ~/nextcloud
cat > compose.yaml <<'EOF'
services:
db:
image: mariadb:11
restart: unless-stopped
command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
environment:
MYSQL_ROOT_PASSWORD: change-me-root
MYSQL_PASSWORD: change-me-db
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
volumes:
- db:/var/lib/mysql
redis:
image: redis:7-alpine
restart: unless-stopped
app:
image: nextcloud:stable
restart: unless-stopped
depends_on: [db, redis]
ports:
- "127.0.0.1:8080:80"
environment:
MYSQL_HOST: db
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL_PASSWORD: change-me-db
REDIS_HOST: redis
volumes:
- nc:/var/www/html
volumes:
db:
nc:
EOF
docker compose up -d
Cambia tutte e tre le password prima di eseguirlo. Usa stringhe casuali lunghe.
2. Metti HTTPS davanti
Aggiungi un blocco server Nginx che fa da proxy verso 127.0.0.1:8080, poi esegui Certbot come nella nostra guida a Nginx. Il blocco proxy ha bisogno di queste righe perché Nextcloud veda il protocollo giusto e gli upload grandi funzionino:
client_max_body_size 2G;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
}
3. Completa la configurazione
Apri il tuo dominio e crea l'account amministratore. Poi aggiungi il tuo dominio all'elenco dei domini attendibili e imposta i dettagli del proxy:
docker compose exec -u www-data app php occ config:system:set trusted_domains 1 --value=cloud.example.com
docker compose exec -u www-data app php occ config:system:set overwriteprotocol --value=https
4. Mantienilo in salute
- Aggiornamenti:
docker compose pull && docker compose up -d, una versione maggiore alla volta. - Processi in background: passa a Cron nelle impostazioni di amministrazione e aggiungi una voce cron sull'host che esegua
cron.phpogni cinque minuti. - Backup: salva entrambi i volumi e un dump del database. Vedi come fare il backup di un VPS.
- Accesso a due fattori: abilita l'app TOTP per ogni account.