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:
Configurar Office (Collabora externo):
- Apps → desactivar "Collabora Online - Built-in CODE Server"
- Apps → activar "Nextcloud Office"
- Settings (admin) → Office → "Use your own server" →
https://office.matias7235.com.ar - 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) |