Files
Portainer/nextcloud

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

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

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.