version: "3.8" services: nextcloud_app: image: "nextcloud:31.0.5" container_name: "nextcloud_app" depends_on: - "nextcloud_db" - "nextcloud_redis" environment: - "MYSQL_HOST=nextcloud_db:3306" - "MYSQL_DATABASE=${MYSQL_DATABASE}" - "MYSQL_USER=${MYSQL_USER}" - "MYSQL_PASSWORD=${MYSQL_PASSWORD}" - "REDIS_HOST=nextcloud_redis" - "REDIS_HOST_PORT=6379" - "REDIS_HOST_PASSWORD=${REDIS_PASSWORD}" - "PHP_MEMORY_LIMIT=${PHP_MEMORY_LIMIT}" - "PHP_UPLOAD_LIMIT=${PHP_UPLOAD_LIMIT}" - "APACHE_DISABLE_REWRITE_IP=${APACHE_DISABLE_REWRITE_IP}" volumes: - "${CONFIG_PATH}:/var/www/html" - "${DATA_PATH}:/var/www/html/data" - "${HDD_PATH}:/hdd" ports: - "${APP_PORT}:80" restart: "unless-stopped" nextcloud_cron: image: "nextcloud:31.0.5" container_name: "nextcloud_cron" depends_on: - "nextcloud_app" entrypoint: /cron.sh environment: - "MYSQL_HOST=nextcloud_db:3306" - "MYSQL_DATABASE=${MYSQL_DATABASE}" - "MYSQL_USER=${MYSQL_USER}" - "MYSQL_PASSWORD=${MYSQL_PASSWORD}" - "REDIS_HOST=nextcloud_redis" - "REDIS_HOST_PORT=6379" - "REDIS_HOST_PASSWORD=${REDIS_PASSWORD}" - "PHP_MEMORY_LIMIT=${PHP_MEMORY_LIMIT}" - "PHP_UPLOAD_LIMIT=${PHP_UPLOAD_LIMIT}" - "APACHE_DISABLE_REWRITE_IP=${APACHE_DISABLE_REWRITE_IP}" volumes: - "${CONFIG_PATH}:/var/www/html" - "${DATA_PATH}:/var/www/html/data" - "${HDD_PATH}:/hdd" restart: "unless-stopped" nextcloud_db: image: "mariadb:11.7.2" container_name: "nextcloud_db" command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-file-per-table=1 --skip-innodb-read-only-compressed environment: - "MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}" - "MYSQL_DATABASE=${MYSQL_DATABASE}" - "MYSQL_USER=${MYSQL_USER}" - "MYSQL_PASSWORD=${MYSQL_PASSWORD}" volumes: - "${DB_PATH}:/var/lib/mysql" ports: - "${DB_PORT}:3306" restart: "unless-stopped" nextcloud_redis: image: "redis:8.0.2" container_name: "nextcloud_redis" command: "redis-server --requirepass ${REDIS_PASSWORD}" volumes: - "${REDIS_PATH}:/data" ports: - "${REDIS_PORT}:6379" restart: "unless-stopped"