Saltar a contenido

Nextcloud

Almacenamiento en la nube propio. https://nextcloud.matias7235.com.ar

📁 Rutas y configs

Qué Dónde
Compose /opt/docker/nextcloud/docker-compose.yml
Config app /opt/docker/nextcloud/app/config/config.php
Datos usuarios /mnt/hdd_2tb/nextcloud_data (Disco WD Blue 1TB)
Base de datos /opt/docker/nextcloud/db (SSD Principal)
Redis /opt/docker/nextcloud/redis
Variables de entorno /opt/docker/nextcloud/.env

Contenedores: nextcloud-app, nextcloud-db, nextcloud-redis, nextcloud-cron Puerto: 8502

🧩 Apps integradas externas

App de Nextcloud Servicio externo Doc
Nextcloud Office Collabora standalone en office.matias7235.com.ar Collabora.md

🛠️ Comandos útiles

# Ver logs
docker logs -f nextcloud-app

# Reiniciar solo la app
docker restart nextcloud-app

# Reiniciar todo el stack
cd /opt/docker/nextcloud && docker compose restart

# Modo mantenimiento ON/OFF
docker exec -u www-data nextcloud-app php occ maintenance:mode --on
docker exec -u www-data nextcloud-app php occ maintenance:mode --off

# Ver usuarios y resetear contraseña
docker exec -u www-data nextcloud-app php occ user:list
docker exec -u www-data nextcloud-app php occ user:resetpassword <usuario>

# Ver/editar configs de apps específicas
docker exec -u www-data nextcloud-app php occ config:app:get <app> <key>
docker exec -u www-data nextcloud-app php occ config:app:set <app> <key> --value="<val>"

💾 Backups y Restauración

Extracción de Base de Datos (Volcado en caliente): Antes de hacer un backup al disco externo, SIEMPRE extraer la base de datos (para evitar corrupción):

docker exec nextcloud-db mysqldump \
  -u root -p"$(grep MYSQL_ROOT_PASSWORD /opt/docker/nextcloud/.env | cut -d= -f2)" \
  --all-databases > /opt/docker/nextcloud/nextcloud_dump.sql

⚙️ Tareas comunes

Agregar dominio de confianza / Proxy:

sudo nano /opt/docker/nextcloud/app/config/config.php
# Asegurarse de tener:
# 'overwriteprotocol' => 'https',
# 'overwrite.cli.url' => 'https://nextcloud.matias7235.com.ar',

Actualizar Nextcloud:

cd /opt/docker/nextcloud
docker compose pull
docker compose up -d

Configurar Office (Collabora externo):

  1. Apps → desactivar "Collabora Online - Built-in CODE Server"
  2. Apps → activar "Nextcloud Office"
  3. Settings (admin) → Office → "Use your own server" → https://office.matias7235.com.ar
  4. Setear WOPI allow-list para que Collabora pueda hacer callbacks:
docker exec -u www-data nextcloud-app php occ \
  config:app:set richdocuments wopi_allowlist \
  --value="127.0.0.1,172.16.0.0/12"

Detalles en Collabora.md.

Detalle del compose: volumen duplicado en cron

El servicio nextcloud-cron tenía dos volúmenes apuntando al mismo /var/www/html/data:

# ❌ MAL - el segundo pisa al primero
- /data/nextcloud:/var/www/html/data
- /mnt/hdd_2tb/nextcloud_data:/var/www/html/data

Dejar solo el de /mnt/hdd_2tb/nextcloud_data, que coincide con el del servicio app. Si no coinciden los data entre app y cron, los background jobs no ven los archivos reales.

🔥 Problemas comunes| Problema | Solución |

| --- | --- | | Error de permisos en datos | sudo chown -R 33:33 /mnt/hdd_2tb/nextcloud_data | | "Domain not allowed" | Agregar dominio a trusted_domains en config.php | | Office no abre documentos | Ver Collabora.md → sección Problemas comunes | | Banner "WOPI allow-list not configured" | Setear richdocuments wopi_allowlist (ver Tareas comunes) |