# Nextcloud configuration. # This is a revised version of the original work here: # https://hub.docker.com/_/nextcloud # Changelog: # 2023-07-16 # Change from mariadb:10.5 to 10.6. # 2023-08-20 # Add Redis. (https://markontech.com/docker/setup-nextcloud-with-redis-using-docker/) # 2023-08-21 # Got NC to work with OO after specifying the Advanced parameters! # 2023-08-26 # Try combining OnlyOffice to here again. It has been on its own since # 2023-07-25 but isn't being used for anything else. OO is slow to respond # and upgrades can no longer be done separately but this keeps it all easier # to maintain and may allow the internal address to be based on container # name instead of the docker hosts's IP. services: ## MariaDB ## nc-db: container_name: nc-db image: mariadb:10.6 restart: always command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW volumes: - ../../Volumes/Nextcloud/mariadb:/var/lib/mysql environment: - MYSQL_DATABASE=$MYSQL_DATABASE - MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD - MYSQL_USER=$MYSQL_USER - MYSQL_PASSWORD=$MYSQL_PASSWORD deploy: mode: global resources: limits: cpus: '0.50' memory: 1G reservations: cpus: '0.25' memory: 256M ## Redis ## nc-redis: container_name: nc-redis image: redis restart: always command: redis-server --requirepass $REDIS_HOST_PASSWORD deploy: mode: global resources: limits: cpus: '0.25' memory: 128M ## OnlyOffice ## nc-oo: container_name: nc-oo image: onlyoffice/documentserver restart: always ports: - 8081:80 environment: - JWT_SECRET=$JWT_SECRET deploy: mode: global resources: limits: cpus: '0.75' memory: 1G ## Nextcloud ## nc-app: container_name: nc-app image: nextcloud:stable restart: always ports: - 8080:80 links: - nc-db - nc-redis - nc-oo volumes: - ../../Volumes/Nextcloud/nextcloud:/var/www/html environment: - NEXTCLOUD_ADMIN_USER=$NEXTCLOUD_ADMIN_USER - NEXTCLOUD_ADMIN_PASSWORD=$NEXTCLOUD_ADMIN_PASSWORD - PHP_MEMORY_LIMIT=$PHP_MEMORY_LIMIT - PHP_UPLOAD_LIMIT=$PHP_UPLOAD_LIMIT - MYSQL_HOST=$MYSQL_HOST - MYSQL_DATABASE=$MYSQL_DATABASE - MYSQL_USER=$MYSQL_USER - MYSQL_PASSWORD=$MYSQL_PASSWORD - REDIS_HOST=$REDIS_HOST - REDIS_HOST_PASSWORD=$REDIS_HOST_PASSWORD deploy: mode: global resources: limits: cpus: '2.00' # No memory limit. reservations: cpus: '0.50' memory: 512M