From 597d449666ffdabe611a36d399d500842af03610 Mon Sep 17 00:00:00 2001 From: admin Date: Tue, 30 Jun 2026 23:34:13 -0700 Subject: [PATCH] refactor(maintenance): move to folder-based layout --- maintenance/maintenance.yaml | 84 ++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 maintenance/maintenance.yaml diff --git a/maintenance/maintenance.yaml b/maintenance/maintenance.yaml new file mode 100644 index 0000000..05955d4 --- /dev/null +++ b/maintenance/maintenance.yaml @@ -0,0 +1,84 @@ +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 + hostname: schedule + ports: + - 3012:3012 + image: bluet/cronicle-docker:latest + environment: + - CRONICLE_base_app_url=https://schedule.${DOMAIN} + - 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} + 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 + volumes: + - /volume1/docker/uptime-kuma/data:/app/data + - /var/run/docker.sock:/var/run/docker.sock:ro + environment: + - TZ=PST + - UMASK=0022 + networks: + - traefik_backend + - 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