version: '2' services: db: image: mariadb:10.6 restart: always hostname: maria-db command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW networks: - db-con volumes: - db:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD} - MYSQL_PASSWORD=${MYSQL_ROOT_PASSWORD} - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud app: image: nextcloud:31.0.9 hostname: nextcloud restart: always networks: - proxy - db-con volumes: - nextcloud:/var/www/html - nextcloud_hooks:/docker-entrypoint-hooks.d - /etc/localtime:/etc/localtime:ro environment: - MYSQL_PASSWORD=${MYSQL_ROOT_PASSWORD} - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud - MYSQL_HOST=maria-db - PHP_MEMORY_LIMIT=4096M - PHP_UPLOAD_LIMIT=5120M labels: traefik.enable: true traefik.http.routers.nextcloud.rule: "Host(`nextcloud.urmel.de`)" traefik.http.routers.nextcloud.tls: true traefik.http.routers.nextcloud.tls.certResolver: hetzner traefik.http.services.nextcloud-https.loadbalancer.server.port: 80 traefik.http.routers.nextcloud.middlewares: nextcloud_redirectregex, nextcloud-header traefik.http.middlewares.nextcloud_redirectregex.redirectregex.permanent: "true" traefik.http.middlewares.nextcloud_redirectregex.redirectregex.regex: "https://(.*)/.well-known/(?:card|cal)dav" traefik.http.middlewares.nextcloud_redirectregex.redirectregex.replacement: "https://$${1}/remote.php/dav" traefik.http.middlewares.nextcloud-header.headers.stsSeconds: "15552000" collabora: image: collabora/code:25.04.6.1.1 hostname: collabora networks: - proxy environment: - domain=nextcloud\\.urmel\\.de - username=someAdmin - password=${COLLABORA_PASSWORD} - extra_params=--o:ssl.enable=false --o:ssl.termination=true cap_add: - MKNOD labels: traefik.enable: true traefik.http.routers.collabora.rule: "Host(`collabora.urmel.de`)" traefik.http.routers.collabora.tls: true traefik.http.routers.collabora.tls.certResolver: hetzner traefik.http.services.collabora-https.loadbalancer.server.port: 9980 drawio: image: jgraph/drawio:28.2.5 hostname: drawio networks: - proxy labels: traefik.enable: true traefik.http.routers.drawio.rule: "Host(`drawio.urmel.de`)" traefik.http.routers.drawio.tls: true traefik.http.routers.drawio.tls.certResolver: hetzner traefik.http.services.drawio-https.loadbalancer.server.port: 8080 volumes: nextcloud: driver_opts: type: nfs4 o: addr=217.100.0.2,rw,noatime,tcp device: ":/mnt/Main/nextcloudData" nextcloud_hooks: db: networks: proxy: name: traefik_exposed external: true db-con: internal: true