2026-03-09 12:47:44 +01:00
2026-03-09 12:47:44 +01:00
2026-03-09 12:24:25 +01:00
2026-03-09 12:47:44 +01:00

Nextcloud con Collabora Online - Docker Compose

Setup completo di Nextcloud con Collabora Online usando Docker Compose.

Componenti

  • Nextcloud: Piattaforma di cloud storage e collaboration
  • MariaDB: Database per Nextcloud
  • Redis: Cache per migliorare le performance
  • Collabora Online: Suite office online integrata
  • Cron: Job cron per task schedulati di Nextcloud

Installazione

1. Configura le variabili d'ambiente

Modifica il file .env con i tuoi valori:

# Cambia le password
MYSQL_ROOT_PASSWORD=<password-sicura>
MYSQL_PASSWORD=<password-nextcloud>
NEXTCLOUD_ADMIN_PASSWORD=<password-admin>
COLLABORA_PASSWORD=<password-collabora>

# Configura i domini (IMPORTANTE: separa con SPAZI, non virgole)
NEXTCLOUD_TRUSTED_DOMAINS=localhost 127.0.0.1 192.168.4.0/24 your-domain.com
OVERWRITEHOST=your-domain.com
OVERWRITEPROTOCOL=https
COLLABORA_DOMAIN=nextcloud\\.your-domain\\.com

Importante:

  • Nel campo COLLABORA_DOMAIN, i punti devono essere escaped con \\
  • NEXTCLOUD_TRUSTED_DOMAINS deve contenere domini separati da spazi (non virgole)
  • Includi: localhost, IP locali, subnet LAN (es. 192.168.4.0/24), e domini pubblici
  • Per accesso locale: usa OVERWRITEPROTOCOL=http e OVERWRITEHOST=localhost:8282
  • Per reverse proxy HTTPS: usa OVERWRITEPROTOCOL=https e OVERWRITEHOST=your-domain.com

2. Avvia i servizi

docker-compose up -d

3. Verifica lo stato

docker-compose ps
docker-compose logs -f nextcloud

4. Accedi a Nextcloud

Apri il browser e vai a: http://localhost:8282 (o la porta configurata nella variabile NEXTCLOUD_PORT)

  • Username: admin (o quello configurato in .env)
  • Password: quella impostata in NEXTCLOUD_ADMIN_PASSWORD

5. Configura Collabora in Nextcloud

  1. Accedi a Nextcloud come amministratore
  2. Installa l'app Nextcloud Office (ex Collabora Online):
    • Menu → App → Sezione "Office & text" → Installa "Nextcloud Office"
  3. Vai in ImpostazioniAmministrazioneCollabora Online
  4. Seleziona "Usa il tuo server"
  5. Inserisci l'URL: http://collabora:9980
  6. Salva

Porte utilizzate

  • 8282: Nextcloud Web UI (configurabile in .env con NEXTCLOUD_PORT)
  • 9980: Collabora Online

Volumi

I dati persistenti sono salvati nei volumi Docker:

  • db_data: Database MariaDB
  • nextcloud_data: File e configurazioni Nextcloud

Backup

Per fare il backup:

# Backup dei volumi
docker run --rm -v nextcloud_db_data:/data -v $(pwd):/backup alpine tar czf /backup/db_backup.tar.gz -C /data .
docker run --rm -v nextcloud_nextcloud_data:/data -v $(pwd):/backup alpine tar czf /backup/nextcloud_backup.tar.gz -C /data .

Comandi utili

# Avvia i servizi
docker-compose up -d

# Ferma i servizi
docker-compose down

# Visualizza i log
docker-compose logs -f

# Riavvia un servizio specifico
docker-compose restart nextcloud

# Aggiorna le immagini
docker-compose pull
docker-compose up -d

Troubleshooting

Collabora non si connette

  1. Verifica che il container sia attivo: docker-compose ps
  2. Controlla i log: docker-compose logs collabora
  3. Verifica che l'URL in Nextcloud sia: http://collabora:9980

Errore "Trusted domain" o "Password non funziona"

Questo errore può manifestarsi come:

  • "Access through untrusted domain"
  • "Unknown error while checking password" (anche con credenziali corrette)
  • Impossibilità di configurare storage esterni

Causa: trusted_domains non configurato correttamente nel config.php.

Soluzione rapida - Aggiungi i tuoi domini in .env (separa con spazi, non virgole):

NEXTCLOUD_TRUSTED_DOMAINS=localhost 127.0.0.1 192.168.4.0/24 your-domain.com

Poi riavvia:

docker compose restart nextcloud

Se il problema persiste (istanza già inizializzata prima della modifica .env), correggi manualmente con occ:

# Imposta ogni dominio come elemento separato dell'array
docker exec nextcloud-app php occ config:system:set trusted_domains 0 --value='localhost'
docker exec nextcloud-app php occ config:system:set trusted_domains 1 --value='192.168.4.0/24'
docker exec nextcloud-app php occ config:system:set trusted_domains 2 --value='your-domain.com'
docker exec nextcloud-app php occ config:system:set trusted_domains 3 --value='192.168.4.62'

# Verifica anche che overwrite.cli.url sia corretto
docker exec nextcloud-app php occ config:system:set overwrite.cli.url --value='https://your-domain.com'

Verifica la configurazione:

docker exec nextcloud-app cat /var/www/html/config/config.php | grep -A 6 'trusted_domains'

Il formato corretto nel config.php deve essere:

'trusted_domains' => 
  array (
    0 => 'localhost',
    1 => '192.168.4.0/24',
    2 => 'your-domain.com',
  ),

NON deve essere una stringa concatenata come:

1 => 'localhost,192.168.4.0/24,your-domain.com',  // ERRORE

Performance lente

Redis è già configurato per la cache. Puoi verificare che sia attivo:

docker-compose exec nextcloud php occ config:system:get redis host

Reverse Proxy (opzionale)

Se usi un reverse proxy (nginx, Traefik, etc.), configura:

  1. Imposta OVERWRITEPROTOCOL=https in .env
  2. Imposta OVERWRITEHOST=your-domain.com in .env
  3. Configura il reverse proxy per puntare a localhost:8282 (Nextcloud) e localhost:9980 (Collabora)
  4. Assicurati che il reverse proxy invii gli header corretti:
    X-Forwarded-For
    X-Forwarded-Proto
    X-Forwarded-Host
    

Comandi occ utili

Il comando occ (ownCloud Console) permette di gestire Nextcloud da CLI:

# Verifica configurazione sistema
docker exec nextcloud-app php occ config:system:get trusted_domains
docker exec nextcloud-app php occ config:system:get overwritehost

# Imposta trusted domains
docker exec nextcloud-app php occ config:system:set trusted_domains 0 --value='localhost'
docker exec nextcloud-app php occ config:system:set trusted_domains 1 --value='your-domain.com'

# Verifica stato sistema
docker exec nextcloud-app php occ status

# Manutenzione
docker exec nextcloud-app php occ maintenance:mode --on
docker exec nextcloud-app php occ maintenance:mode --off

# Esegui aggiornamenti
docker exec nextcloud-app php occ upgrade

# Verifica integrità file
docker exec nextcloud-app php occ integrity:check-core

# Gestione app
docker exec nextcloud-app php occ app:list
docker exec nextcloud-app php occ app:enable files_external

# Cache
docker exec nextcloud-app php occ files:scan --all
docker exec nextcloud-app php occ files:cleanup

Sicurezza

  • Cambia tutte le password nel file .env
  • Non esporre le porte direttamente su Internet senza un reverse proxy con HTTPS
  • Considera l'uso di certificati SSL/TLS (Let's Encrypt)
  • Mantieni aggiornate le immagini Docker

Licenza

Questo è un setup di esempio. Consulta le licenze dei singoli progetti:

  • Nextcloud: AGPLv3
  • Collabora Online: MPLv2 (versione CODE - Community)
Description
No description provided
Readme 40 KiB