# Nextcloud Plataforma de archivos y colaboración con MariaDB, Redis, tareas cron y OnlyOffice Document Server. ## Arquitectura y propósito MariaDB guarda metadatos, Redis aporta bloqueo y caché, `nextcloud` sirve la web y `nextcloud-cron` ejecuta tareas en segundo plano sobre los mismos volúmenes. OnlyOffice es un servicio independiente para editar documentos y se integra mediante JWT. ## Configuración - `NC_DOMAIN`, `TRUSTED_PROXIES` y las variables `OVERWRITE*` hacen que Nextcloud genere HTTPS correctamente detrás de Traefik. - `MYSQL_*` debe coincidir en Nextcloud, cron y MariaDB. - `NEXTCLOUD_ADMIN_*` sólo inicializa la primera instalación; después administra usuarios desde Nextcloud. - `SMTP_*` configura notificaciones a través de `mail_internal`. - `OO_DOMAIN`, `OO_JWT_SECRET` y `OO_SECURE_LINK_SECRET` protegen la comunicación con OnlyOffice; el JWT configurado en la app de Nextcloud debe ser idéntico. - `/opt/nextcloud/html`, `config`, `data`, `custom_apps` y `themes` se comparten con cron para ejecutar el mismo código y configuración. Redis no sustituye una copia de seguridad. Respalda MariaDB, configuración y datos de forma consistente, preferiblemente activando antes el modo mantenimiento. ## Requisitos - Docker Compose - Redes externas `proxy` y `mail_internal` - Un archivo `.env` local con dominios, credenciales, secretos de OnlyOffice, proxy de confianza y correo SMTP - Almacenamiento persistente bajo `/opt/nextcloud` y `/opt/onlyoffice` ## Despliegue ```bash cd nextcloud docker compose --env-file .env config docker compose --env-file .env up -d ``` Traefik expone Nextcloud y OnlyOffice en los dominios configurados por `NC_DOMAIN` y `OO_DOMAIN`. ## Operación ```bash docker compose --env-file .env ps docker compose --env-file .env logs -f nextcloud nextcloud-cron onlyoffice-documentserver ``` El montaje `/opt/paperless/media` es opcional y se presenta a Nextcloud en modo de sólo lectura.