From 03dc657cdc120fd70aa17a173eb649a4471ef77a Mon Sep 17 00:00:00 2001 From: R4di04kt1v3 Date: Tue, 9 Jun 2026 14:50:24 +0200 Subject: [PATCH] =?UTF-8?q?A=C3=B1adido=20Nextcloud?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Almacenamiento/Nextcloud/.env | 25 ++++ Almacenamiento/Nextcloud/docker-compose.yml | 127 ++++++++++++++++++++ 2 files changed, 152 insertions(+) create mode 100644 Almacenamiento/Nextcloud/.env create mode 100644 Almacenamiento/Nextcloud/docker-compose.yml diff --git a/Almacenamiento/Nextcloud/.env b/Almacenamiento/Nextcloud/.env new file mode 100644 index 0000000..4d21976 --- /dev/null +++ b/Almacenamiento/Nextcloud/.env @@ -0,0 +1,25 @@ +# Imagen de Nextcloud +# Elegir una versión concreta desde Docker Hub. (https://hub.docker.com/_/nextcloud/) +NEXT_VERSION=33.0.5-apache + +# Dominio público de la instancia +NEXTCLOUD_DOMAIN=cloud.example.com + +# Reverse proxy que publica Nextcloud +TRUSTED_PROXIES=192.168.1.10 + +# Base de datos +MYSQL_DATABASE=nextcloud +MYSQL_USER=nextcloud +MYSQL_PASSWORD=cambiar_esta_password +MYSQL_ROOT_PASSWORD=cambiar_esta_password_root + +# Redis +REDIS_PASSWORD=cambiar_esta_password_redis + +# PHP +PHP_MEMORY_LIMIT=2G +PHP_UPLOAD_LIMIT=100G + +# Zona horaria +TZ=Europe/Madrid \ No newline at end of file diff --git a/Almacenamiento/Nextcloud/docker-compose.yml b/Almacenamiento/Nextcloud/docker-compose.yml new file mode 100644 index 0000000..d05a346 --- /dev/null +++ b/Almacenamiento/Nextcloud/docker-compose.yml @@ -0,0 +1,127 @@ +services: + nextcloud: + image: nextcloud:${NEXT_VERSION} + container_name: Nextcloud + restart: unless-stopped + + ports: + - "8040:80" + + environment: + MYSQL_HOST: db + MYSQL_DATABASE: ${MYSQL_DATABASE} + MYSQL_USER: ${MYSQL_USER} + MYSQL_PASSWORD: ${MYSQL_PASSWORD} + + REDIS_HOST: redis + REDIS_HOST_PORT: 6379 + REDIS_HOST_PASSWORD: ${REDIS_PASSWORD} + + NEXTCLOUD_TRUSTED_DOMAINS: ${NEXTCLOUD_DOMAIN} + OVERWRITEHOST: ${NEXTCLOUD_DOMAIN} + OVERWRITEPROTOCOL: https + TRUSTED_PROXIES: ${TRUSTED_PROXIES} + + PHP_MEMORY_LIMIT: ${PHP_MEMORY_LIMIT} + PHP_UPLOAD_LIMIT: ${PHP_UPLOAD_LIMIT} + + TZ: ${TZ} + + volumes: + - ./html:/var/www/html + - ./data:/var/www/html/data + + # Montajes externos opcionales. + # Ajustar rutas según el almacenamiento real del host. + - /ruta/datos-externos-01:/mnt/datos-externos-01 + - /ruta/datos-externos-02:/mnt/datos-externos-02 + + depends_on: + - db + - redis + + networks: + - Nextcloud_NET + + cron: + image: nextcloud:${NEXT_VERSION} + container_name: NextcloudCron + restart: unless-stopped + + entrypoint: /cron.sh + + environment: + MYSQL_HOST: db + MYSQL_DATABASE: ${MYSQL_DATABASE} + MYSQL_USER: ${MYSQL_USER} + MYSQL_PASSWORD: ${MYSQL_PASSWORD} + + REDIS_HOST: redis + REDIS_HOST_PORT: 6379 + REDIS_HOST_PASSWORD: ${REDIS_PASSWORD} + + TZ: ${TZ} + + volumes: + - ./html:/var/www/html + - ./data:/var/www/html/data + + # Deben coincidir con los montajes del contenedor principal. + - /ruta/datos-externos-01:/mnt/datos-externos-01 + - /ruta/datos-externos-02:/mnt/datos-externos-02 + + depends_on: + - nextcloud + - db + - redis + + networks: + - Nextcloud_NET + + db: + image: mariadb:10.11 + container_name: NextcloudDB + restart: unless-stopped + + command: + - --transaction-isolation=READ-COMMITTED + - --log-bin=binlog + - --binlog-format=ROW + + environment: + MARIADB_DATABASE: ${MYSQL_DATABASE} + MARIADB_USER: ${MYSQL_USER} + MARIADB_PASSWORD: ${MYSQL_PASSWORD} + MARIADB_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} + MARIADB_AUTO_UPGRADE: "1" + + TZ: ${TZ} + + volumes: + - ./db:/var/lib/mysql + + networks: + - Nextcloud_NET + + redis: + image: redis:7-alpine + container_name: NextcloudRedis + restart: unless-stopped + + command: + - redis-server + - --requirepass + - ${REDIS_PASSWORD} + - --appendonly + - "yes" + + volumes: + - ./redis:/data + + networks: + - Nextcloud_NET + +networks: + Nextcloud_NET: + name: Nextcloud_NET +