{ "slug": "homer-swarm", "kind": "swarm", "metadata": { "name": "Homer", "description": "Simple static homepage for your server to keep your services on hand, configured through a single YAML file.", "tags": [ "traefik", "authentik" ], "icon": { "provider": "selfhst", "id": "homer" }, "draft": false, "version": { "name": "v26.4.2", "source_dep_name": "docker.io/b4bz/homer", "source_dep_version": "v26.4.2" } }, "variables": [ { "title": "General", "name": "general", "items": [ { "name": "service_name", "type": "str", "title": "Service Name", "required": false, "default": "homer", "config": { "placeholder": "homer" } }, { "name": "container_timezone", "type": "str", "title": "Container Timezone", "required": false, "config": { "placeholder": "Europe/Berlin" } }, { "name": "homer_title", "type": "str", "title": "Dashboard title", "required": false, "default": "Dashboard", "config": { "placeholder": "Dashboard" } }, { "name": "homer_subtitle", "type": "str", "title": "Dashboard subtitle", "required": false, "default": "Dashboard", "config": { "placeholder": "Dashboard" } }, { "name": "homer_logo", "type": "str", "title": "Logo Path", "required": false, "default": "logo-file.png", "description": "Logo file path (relative to assets/)", "config": { "placeholder": "logo-file.png" } } ] }, { "title": "Ports", "name": "ports", "items": [ { "name": "ports_http", "type": "int", "title": "HTTP Port", "required": false, "default": 8080, "config": { "placeholder": "8080" } } ] }, { "title": "Traefik", "name": "traefik", "toggle": "traefik_enabled", "items": [ { "name": "traefik_enabled", "type": "bool", "title": "Traefik", "required": false, "default": false }, { "name": "traefik_entrypoint", "type": "str", "title": "Entrypoint", "required": true, "default": "web", "config": { "placeholder": "web" } }, { "name": "traefik_host", "type": "str", "title": "Host", "required": true, "config": { "placeholder": "dashboard" } }, { "name": "traefik_network", "type": "str", "title": "Network", "required": true, "default": "traefik", "config": { "placeholder": "traefik" } }, { "name": "traefik_domain", "type": "str", "title": "Domain", "required": true, "config": { "placeholder": "home.arpa" } } ] }, { "title": "Traefik Tls", "name": "traefik-tls", "toggle": "traefik_tls_enabled", "items": [ { "name": "traefik_tls_enabled", "type": "bool", "title": "TLS", "required": false, "default": false }, { "name": "traefik_tls_entrypoint", "type": "str", "title": "TLS Entrypoint", "required": true, "default": "websecure", "config": { "placeholder": "websecure" } }, { "name": "traefik_tls_certresolver", "type": "str", "title": "Cert Resolver", "required": true, "default": "cloudflare", "config": { "placeholder": "cloudflare" } } ] }, { "title": "Docker Swarm", "name": "swarm", "items": [ { "name": "swarm_placement_mode", "type": "enum", "title": "Swarm Placement Mode", "required": true, "default": "replicated", "config": { "options": [ "replicated", "global" ] } }, { "name": "swarm_replicas", "type": "int", "title": "Swarm Replicas", "required": true, "default": 1, "needs": [ "swarm_placement_mode=replicated" ], "config": { "slider": true, "min": 1, "max": 10, "step": 1, "placeholder": "1", "unit": "replicas" } }, { "name": "swarm_placement_host", "type": "str", "title": "Swarm Placement Host", "required": false, "default": "", "needs": [ "swarm_placement_mode=replicated" ], "config": { "placeholder": "swarm-node-1" } } ] }, { "title": "Authentik SSO", "name": "authentik", "toggle": "authentik_enabled", "items": [ { "name": "authentik_traefik_middleware", "type": "str", "title": "Authentik Traefik Middleware", "required": true, "default": "middleware@file", "needs": [ "traefik_enabled=true" ], "config": { "placeholder": "middleware@file" } }, { "name": "authentik_enabled", "type": "bool", "title": "Authentik SSO", "required": false, "default": false } ] } ] }