services: cronicle: volumes: - /var/run/docker.sock:/var/run/docker.sock:rw - /volume1/docker/cronicle/data:/opt/cronicle/data:rw - /volume1/docker/cronicle/logs:/opt/cronicle/logs:rw - /volume1/docker/cronicle/plugins:/opt/cronicle/plugins:rw - /volume1/docker/cronicle/app:/opt/cronicle/app:rw - /volume1/docker/cronicle/ssh_keys:/opt/cronicle/ssh_keys:rw # - /volume1/docker/cronicle/conf:/opt/cronicle/conf:rw hostname: schedule ports: - 3012:3012 # container_name: cronicle image: bluet/cronicle-docker:latest environment: - CRONICLE_base_app_url=https://schedule.${DOMAIN} # - CRONICLE_VERSION 0.9.59 - CRONICLE_WebServer__http_port=3012 - CRONICLE_WebServer__https_port=443 - CRONICLE_web_socket_use_hostnames=1 - CRONICLE_server_comm_use_hostnames=1 - CRONICLE_web_direct_connect=0 - CRONICLE_custom_live_log_socket_url=schedule.${DOMAIN} # - CRONICLE_socket_io_transports=polling networks: traefik_backend: aliases: - schedule deploy: labels: - traefik.enable=true - traefik.http.routers.cron.rule=Host(`schedule.${DOMAIN}`) - traefik.http.routers.cron.tls=true - traefik.http.routers.cron.tls.certresolver=letsencrypt - traefik.http.routers.cron.entrypoints=websecure - traefik.http.services.cron.loadbalancer.server.port=3012 - traefik.swarm.network=traefik_backend - traefik.http.routers.cron.middlewares=forwardAuth-authentik@file, crowdsec@file - traefik.http.routers.cron-ip.rule=Host(`schedule.${DOMAIN}`) && ClientIP(`10.0.0.0/8`) - traefik.http.routers.cron-ip.tls=true - traefik.http.routers.cron-ip.tls.certresolver=letsencrypt - traefik.http.routers.cron-ip.entrypoints=websecure resources: limits: cpus: '2' # Limit to 0.5 CPU core memory: 512M uptime-kuma: image: louislam/uptime-kuma:2 hostname: uptime-kuma # ports: # - "3001:3001" # This maps the container port "3001" to the host port "3001" volumes: - /volume1/docker/uptime-kuma/data:/app/data # Configuring persistent storage - /var/run/docker.sock:/var/run/docker.sock:ro environment: - TZ=PST # Set the timezone (change to your preferred local timezone so monitoring times are the same) - UMASK=0022 # Set your file permissions manually networks: - traefik_backend # add your own custom network config - postgresql_db-backend healthcheck: test: ["CMD", "curl", "-f", "http://localhost:3001"] interval: 30s retries: 3 start_period: 10s timeout: 5s logging: driver: "json-file" options: max-size: "10m" max-file: "3" deploy: labels: - traefik.enable=true - traefik.http.routers.uptime.rule=Host(`uptime.${DOMAIN}`) - traefik.http.routers.uptime.tls=true - traefik.http.routers.uptime.tls.certresolver=letsencrypt - traefik.http.routers.uptime.entrypoints=websecure - traefik.http.services.uptime.loadbalancer.server.port=3001 - traefik.http.services.uptime.loadbalancer.server.scheme=http - traefik.swarm.network=traefik_backend - traefik.http.routers.uptime.middlewares=forwardAuth-authentik@file, crowdsec@file networks: postgresql_db-backend: external: true traefik_backend: external: true