750b7abcd5
- .claude/CLAUDE.md - .claude/agents/fn-recopilador/SKILL.md - .claude/rules/INDEX.md - .claude/rules/cpp_apps.md - bash/functions/infra/build_cpp_windows.sh - cpp/CMakeLists.txt - cpp/PATTERNS.md - cpp/framework/app_base.cpp - cpp/framework/app_base.h - dev/issues/README.md - ... Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2.1 KiB
2.1 KiB
name, kind, lang, domain, version, purity, signature, description, tags, uses_functions, uses_types, returns, returns_optional, error_type, imports, params, output, tested, tests, test_file_path, file_path
| name | kind | lang | domain | version | purity | signature | description | tags | uses_functions | uses_types | returns | returns_optional | error_type | imports | params | output | tested | tests | test_file_path | file_path | ||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| generate_traefik_dynamic | function | go | infra | 1.0.0 | pure | func GenerateTraefikDynamic(cfg TraefikDynamicConfig) string | Genera el texto YAML de un traefik-dynamic.yml para el file provider de Traefik (Coolify). Replica el patron de apps/registry_api/traefik-dynamic.yml con routers HTTP/HTTPS, redirect, basicAuth opcional y gzip opcional. |
|
|
false |
|
|
texto YAML completo del traefik-dynamic.yml listo para escribir a disco y recargar en Traefik | true |
|
functions/infra/generate_traefik_dynamic_test.go | functions/infra/generate_traefik_dynamic.go |
Ejemplo
line, _ := BcryptHtpasswd("lucas", "s3cr3t", 10)
cfg := TraefikDynamicConfig{
Name: "kanban",
Domain: "kanban.organic-machine.com",
UpstreamURL: "http://kanban:8421",
BasicAuthLine: line,
EnableGzip: true,
CertResolver: "letsencrypt",
}
yaml := GenerateTraefikDynamic(cfg)
os.WriteFile("apps/kanban/traefik-dynamic.yml", []byte(yaml), 0644)
Notas
Funcion pura: dado el mismo TraefikDynamicConfig siempre produce el mismo YAML. Si BasicAuthLine es vacio se omite el router middleware <name>-auth y la seccion basicAuth. Si EnableGzip es false se omite el middleware <name>-gzip. El redirect HTTP→HTTPS siempre esta presente. CertResolver por defecto es "letsencrypt". El output usa $ simple (file provider), no $$ (Docker labels). Combinar con BcryptHtpasswd para generar la linea de auth.