version: "3.7" services: nextcloud: image: nextcloud:latest depends_on: - mariadb secrets: - db_root_password - db_password environment: - MYSQL_HOST=mariadb - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud - MYSQL_ROOT_PASSWORD_FILE=/run/secrets/db_password - DOMAIN=${DOMAIN} volumes: - nextcloud:/var/www/html - nextapps:/var/www/html/custom_apps:cached - nextdata:/var/www/html/data:cached - nextconfig:/var/www/html/config:cached networks: - proxy - internal deploy: restart_policy: condition: on-failure labels: - "traefik.enable=true" - "traefik.docker.network=proxy" - "traefik.http.routers.nextcloud.tls=true" - "traefik.http.services.nextcloud.loadbalancer.server.port=80" - "traefik.http.routers.nextcloud.rule=Host(`${DOMAIN}`)" - "traefik.http.routers.nextcloud.tls.certresolver=${LETS_ENCRYPT_ENV}" #- "traefik.http.routers.nextcloud.tls.certresolver=staging" - "traefik.http.routers.nextcloud.entrypoints=web-secure" mariadb: image: "mariadb:10.5" environment: - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud - MYSQL_PASSWORD_FILE=/run/secrets/db_password - MYSQL_ROOT_PASSWORD_FILE=/run/secrets/db_root_password secrets: - db_root_password - db_password volumes: - "mariadb:/var/lib/mysql" networks: - internal secrets: db_root_password: external: true name: ${STACK_NAME}_db_root_passwd_${DB_ROOT_PASSWD_VERSION} db_password: external: true name: ${STACK_NAME}_db_passwd_${DB_ROOT_PASSWD_VERSION} volumes: nextcloud: nextapps: nextdata: nextconfig: mariadb: networks: proxy: external: true internal: