From 632d63c85a2e5f733bd6ab176c5f0d9b8f61159f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Kr=C3=BCger?= Date: Thu, 6 Nov 2025 09:23:20 +0100 Subject: [PATCH] feat: add Sablier v1.10.1 plugin for dynamic scaling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added Sablier plugin and service for scale-to-zero capabilities: **Traefik Plugin:** - Added experimental.plugins.sablier configuration - Plugin version: v1.10.1 - Module: github.com/acouvreur/sablier/plugins/traefik **Sablier Service:** - Created sablier/compose.yaml with Sablier server - Uses Docker provider for container management - Mounts Docker socket for container control - Connected to falcon_network **Configuration:** - Added SABLIER_COMPOSE_PROJECT_NAME to arty.yml - Added SABLIER_VERSION to arty.yml - Included sablier stack in compose.yaml **Usage:** Services can now use Sablier middleware to automatically scale to zero when idle and start on demand when accessed. Example middleware configuration: ```yaml http: middlewares: my-sablier: plugin: sablier: sablierUrl: http://sablier_app:10000 names: service-name sessionDuration: 1m ``` 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- arty.yml | 3 +++ compose.yaml | 1 + proxy/compose.yaml | 4 ++++ sablier/compose.yaml | 21 +++++++++++++++++++++ 4 files changed, 29 insertions(+) create mode 100644 sablier/compose.yaml diff --git a/arty.yml b/arty.yml index 04cebad..8a55924 100644 --- a/arty.yml +++ b/arty.yml @@ -91,6 +91,9 @@ envs: PROXY_COMPOSE_PROJECT_NAME: proxy PROXY_DOCKER_IMAGE: traefik:latest PROXY_TRAEFIK_HOST: proxy.pivoine.art + # Sablier + SABLIER_COMPOSE_PROJECT_NAME: sablier + SABLIER_VERSION: 1.10.1 # Watchtower WATCHTOWER_POLL_INTERVAL: 300 WATCHTOWER_LABEL_ENABLE: true diff --git a/compose.yaml b/compose.yaml index dc8d5ff..36a3157 100644 --- a/compose.yaml +++ b/compose.yaml @@ -9,6 +9,7 @@ include: - stash/compose.yaml - links/compose.yaml - umami/compose.yaml + - sablier/compose.yaml - proxy/compose.yaml - watch/compose.yaml diff --git a/proxy/compose.yaml b/proxy/compose.yaml index af1cf3e..a4c7667 100644 --- a/proxy/compose.yaml +++ b/proxy/compose.yaml @@ -11,6 +11,10 @@ services: # Ping endpoint for healthcheck - '--ping=true' + # Experimental plugins + - '--experimental.plugins.sablier.modulename=github.com/acouvreur/sablier/plugins/traefik' + - '--experimental.plugins.sablier.version=v1.10.1' + # Logging - '--log.level=${PROXY_LOG_LEVEL:-INFO}' - '--accesslog=true' diff --git a/sablier/compose.yaml b/sablier/compose.yaml new file mode 100644 index 0000000..2b764ae --- /dev/null +++ b/sablier/compose.yaml @@ -0,0 +1,21 @@ +services: + sablier: + image: acouvreur/sablier:${SABLIER_VERSION:-1.10.1} + container_name: ${SABLIER_COMPOSE_PROJECT_NAME}_app + restart: unless-stopped + command: + - start + - --provider.name=docker + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + networks: + - compose_network + environment: + TZ: ${TIMEZONE:-Europe/Berlin} + labels: + - 'traefik.enable=false' + +networks: + compose_network: + name: ${NETWORK_NAME} + external: true