version: '3' services: nc_db: image: mariadb restart: always command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW environment: - MYSQL_ROOT_PASSWORD=nextcloud - MYSQL_PASSWORD=nextcloud - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud volumes: - ./database:/var/lib/mysql networks: backend: app: image: nextcloud restart: always environment: - MYSQL_PASSWORD=nextcloud - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud - MYSQL_HOST=nc_db - OVERWRITEPROTOCOL=https - OVERWRITEHOST=cloud.cttue.de - PHP_UPLOAD_LIMIT=50M - VIRTUAL_HOST=cloud.cttue.de - VIRTUAL_PORT=80 - LETSENCRYPT_HOST=cloud.cttue.de volumes: - ./nextcloud-data:/var/www/html:z labels: - traefik.enable=true - traefik.docker.network=traefik - traefik.http.routers.cloud.entrypoints=web-secure - traefik.http.routers.cloud.service=cloud - traefik.http.routers.cloud.rule=Host(`cloud.cttue.de`) - traefik.http.routers.cloud.tls=true - traefik.http.routers.cloud.tls.certResolver=default - traefik.http.routers.cloud.tls.domains[0]=cttue.de - traefik.http.routers.cloud.tls.domains[0].sans=cloud.cttue.de - traefik.http.services.cloud.loadbalancer.server.port=80 networks: cttue_web_services: backend: traefik: depends_on: - nc_db networks: cttue_web_services: external: true # Internal network for communication with MySQL backend: traefik: external: true