Hoy quiero traerte mi docker-compose de Nextcloud 30, lo más completo que tengo, espero que te sirva. (no es para usar en local, aunque puedes modificarlo para ello)
¿Que incluye?
- Mysql
- Redis
- Cron
- Collabora server
- AppApi (Necesario para instalar las aplicaciones docker de la tienda)
services:
nextcloud-db:
image: mariadb:11.4
container_name: nextcloud-mariadb
restart: always
command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW --log_bin_trust_function_creators=true
volumes:
- tu-ruta/db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=contraseñaFuerte
- MYSQL_PASSWORD=tuContraseña
- MYSQL_DATABASE=nombreDeTuBaseDeDatos
- MYSQL_USER=usuarioDeBaseDeDatos
nextcloud-app:
image: nextcloud:30.0.2
container_name: nextcloud-nextcloud
restart: always
ports:
- 8081:80 # Puedes cambiar el 8081 por uno de tu elección, desde aquí se accede a Nextcloud
volumes:
- tu-ruta/nextcloud:/var/www/html
environment:
- MYSQL_PASSWORD=tuContraseña
- MYSQL_DATABASE=nombreDeTuBaseDeDatos
- MYSQL_USER=usuarioDeBaseDeDatos
- MYSQL_HOST=nextcloud-db:3306
- REDIS_HOST=nextcloud-redis
- PHP_MEMORY_LIMIT=2G
- PHP_UPLOAD_LIMIT=100G # Límite de tamaño de subida de archivo
- OVERWRITEPROTOCOL=https
- OVERWRITEHOST=tu.dominio.com
- OVERWRITECLIURL=https://tu.dominio.com
- NEXTCLOUD_TRUSTED_DOMAINS=tu.dominio.com
- VIRTUAL_HOST=tu.dominio.com
- TRUSTED_PROXIES=172.17.0.0/16 #Si usas Nginx Proxy Manager - Aquí NO debes poner la IP de Nginx Proxy Manager sino de su red padre (por ejemplo, la ip de "Bridge"). Si no utilizas esto, puedes borrar la línea.
depends_on:
- nextcloud-collabora
- nextcloud-db
- nextcloud-redis
- nextcloud-appapi
# Descomenta las siguientes dos líneas si tienes una i-GPU de Intel (i-GPU = GPU integrada)
# devices:
# - "/dev/dri:/dev/dri"
nextcloud-cron:
image: nextcloud:30.0.2
container_name: nextcloud-cron
restart: always
volumes:
- tu-ruta/nextcloud:/var/www/html # Debe coincidir con la ruta de nextcloud-app
entrypoint: /cron.sh
depends_on:
- nextcloud-collabora
- nextcloud-db
- nextcloud-redis
- nextcloud-appapi
nextcloud-collabora:
image: collabora/code
container_name: nextcloud-collabora
restart: always
environment:
- domain=subdominio\\.dominio\\.com # Respeta la estructura, es importante.
- extra_params=--o:ssl.enable=false --o:ssl.termination=true
- username=mismoUsuarioDeNextcloud
- password=mismaContraseñaDeNextcloud
- dictionaries=es_ES es_AR es_MX en_US
ports:
- 9981:9980
nextcloud-redis:
image: redis:alpine
container_name: nextcloud-redis
restart: always
volumes:
- tu-ruta/redis:/data
nextcloud-appapi:
image: ghcr.io/cloud-py-api/nextcloud-appapi-dsp:v1.3.2
container_name: nextcloud-appapi-dsp
hostname: nextcloud-appapi-dsp
restart: unless-stopped
privileged: true
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
- NC_HAPROXY_PASSWORD=tuContraseña
- TIMEOUT_SERVER=1800s