OffshoreVps
Tutorial10 ott 20269 min di letturaDi il team di OffshoreVps

Ospita Nextcloud in autonomia su un VPS con Docker Compose

Esegui il tuo cloud privato per file, calendari e contatti: file Compose, reverse proxy HTTPS, domini attendibili, cron job e backup.

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.

Finestra del terminale su un VPS che mostra i comandi usati per ospitare Nextcloud in autonomia, a partire da “mkdir -p ~/nextcloud && cd ~/nextcloud”
Il tipo di comandi che eseguirai sul tuo server in questa guida.

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.

I passaggi di questa guida in ordine: 1. Prima di iniziare; 2. 1. Il file Compose; 3. 2. Metti HTTPS davanti; 4. 3. Completa la configurazione; 5. 4. Mantienilo in salute
I passaggi di questa guida, in ordine.

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.php ogni 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.