From b471a125a06029f259050f2c5c7d60e66572fb67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Kr=C3=BCger?= Date: Sun, 9 Nov 2025 13:35:15 +0100 Subject: [PATCH] feat: add figlet tool to kit stack MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added figlet-ui service to kit stack: - Image: ghcr.io/valknarness/figlet-ui:latest - Host: figlet.kit.pivoine.art - Traefik routing with HTTPS and compression - Watchtower auto-update enabled 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- arty.yml | 2 ++ kit/compose.yaml | 27 +++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/arty.yml b/arty.yml index 4268887..ab2f0fd 100644 --- a/arty.yml +++ b/arty.yml @@ -142,6 +142,8 @@ envs: KIT_UNITS_TRAEFIK_HOST: units.kit.pivoine.art KIT_DRAW_IMAGE: excalidraw/excalidraw:latest KIT_DRAW_TRAEFIK_HOST: draw.kit.pivoine.art + KIT_FIGLET_IMAGE: ghcr.io/valknarness/figlet-ui:latest + KIT_FIGLET_TRAEFIK_HOST: figlet.kit.pivoine.art # Jellyfin JELLY_TRAEFIK_ENABLED: true JELLY_COMPOSE_PROJECT_NAME: jelly diff --git a/kit/compose.yaml b/kit/compose.yaml index 8c80dab..fb6d174 100644 --- a/kit/compose.yaml +++ b/kit/compose.yaml @@ -201,6 +201,33 @@ services: # Watchtower - 'com.centurylinklabs.watchtower.enable=${WATCHTOWER_LABEL_ENABLE}' + figlet: + image: ${KIT_FIGLET_IMAGE:-ghcr.io/valknarness/figlet-ui:latest} + container_name: ${KIT_COMPOSE_PROJECT_NAME}_figlet + restart: unless-stopped + healthcheck: + disable: true + networks: + - compose_network + labels: + - 'traefik.enable=${KIT_TRAEFIK_ENABLED}' + # HTTP to HTTPS redirect + - 'traefik.http.middlewares.${KIT_COMPOSE_PROJECT_NAME}-figlet-redirect-web-secure.redirectscheme.scheme=https' + - 'traefik.http.routers.${KIT_COMPOSE_PROJECT_NAME}-figlet-web.middlewares=${KIT_COMPOSE_PROJECT_NAME}-figlet-redirect-web-secure' + - 'traefik.http.routers.${KIT_COMPOSE_PROJECT_NAME}-figlet-web.rule=Host(`${KIT_FIGLET_TRAEFIK_HOST}`)' + - 'traefik.http.routers.${KIT_COMPOSE_PROJECT_NAME}-figlet-web.entrypoints=web' + # HTTPS router + - 'traefik.http.routers.${KIT_COMPOSE_PROJECT_NAME}-figlet-web-secure.rule=Host(`${KIT_FIGLET_TRAEFIK_HOST}`)' + - 'traefik.http.routers.${KIT_COMPOSE_PROJECT_NAME}-figlet-web-secure.tls.certresolver=resolver' + - 'traefik.http.routers.${KIT_COMPOSE_PROJECT_NAME}-figlet-web-secure.entrypoints=web-secure' + - 'traefik.http.middlewares.${KIT_COMPOSE_PROJECT_NAME}-figlet-compress.compress=true' + - 'traefik.http.routers.${KIT_COMPOSE_PROJECT_NAME}-figlet-web-secure.middlewares=${KIT_COMPOSE_PROJECT_NAME}-figlet-compress,security-headers@file' + # Service + - 'traefik.http.services.${KIT_COMPOSE_PROJECT_NAME}-figlet.loadbalancer.server.port=80' + - 'traefik.docker.network=${NETWORK_NAME}' + # Watchtower + - 'com.centurylinklabs.watchtower.enable=${WATCHTOWER_LABEL_ENABLE}' + networks: compose_network: name: ${NETWORK_NAME}