🧩 v0.19.0: Configure Everything From Environment Variables
This one's all about the config layer. Traefik instances — all of them — can now be configured straight from environment variables, which makes container-only setups a lot less YAML-heavy. Under the hood the whole environment parsing path got centralized too, so this is less a one-off patch and more of a foundation for what comes next.
What's New
- Multi-instance env vars — Traefik instances can now be configured with indexed variables of the form
TRAEFIK_INSTANCES_<n>_<OPTION>(for exampleTRAEFIK_INSTANCES_1_API_HOSTandTRAEFIK_INSTANCES_2_NAME). They merge with theinstanceslist from your config file by position, so you can tweak a single field on a file-configured instance, or spin up a whole fleet without touching a file — extra indexes simply append new instances. Any indexed variable switches TraLa into multi-instance mode. - Centralized env parsing — Every option under
environment.*in the config file now gets an environment variable automatically, following the same uppercase-dots-to-underscores rule (environment.grouping.columns→GROUPING_COLUMNS). No more wiring each one up by hand. - Renamed grouping variable —
GROUPED_COLUMNSis nowGROUPING_COLUMNS, matching the rest of theGROUPING_*family. The old name still works as a deprecated alias, so nothing breaks, but you'll see it mentioned in the docs as on its way out. - Safer debug logs — Password values are now redacted in the environment override debug logs, and a duplicate log line for env overrides was removed. Turn on
LOG_LEVEL=debugwithout worrying about what ends up in your terminal history. - Dependency refresh — Go toolchain, Node,
go-i18n,go.yaml.in/yaml/v4,golang.org/x/textupdated to latest version. - Website updates — The docs site moved to the latest Astro version.
How to Use
Pull the latest image:
docker pull ghcr.io/dannybouwers/trala:0.19.0
# or
# docker pull dannybouwers/trala:0.19.0To configure two Traefik instances entirely from environment variables — no config file needed:
# docker-compose.yml
services:
trala:
image: ghcr.io/dannybouwers/trala:0.19.0
environment:
- TRAEFIK_INSTANCES_1_NAME=public
- TRAEFIK_INSTANCES_1_API_HOST=http://traefik:8080
- TRAEFIK_INSTANCES_2_NAME=arr
- TRAEFIK_INSTANCES_2_API_HOST=http://traefik-arr:8080The indexed variables merge with any instances list from your config file by position — set TRAEFIK_INSTANCES_2_NAME and only that instance's name changes. The legacy TRAEFIK_* variables still apply to the first instance in single-instance mode. Full merge rules live in the Multi-Host docs.
As always, if you run into anything weird, drop a note in the discussions — I read everything.
What's Changed
- Update module golang.org/x/text to v0.43.0 by @renovate[bot] in #197
- Update astro monorepo by @renovate[bot] in #198
- fix(config): redact password values in env debug logs by @dannybouwers in #200
- ✨ feat(config): add multi-instance Traefik env vars and centralize env parsing by @dannybouwers in #199
- Update astro monorepo by @renovate[bot] in #201
- Update Go Toolchain to v1.27.3 by @renovate[bot] in #202
- Update module github.com/nicksnyder/go-i18n/v2 to v2.7.0 by @renovate[bot] in #203
- Update Node.js to v26 by @renovate[bot] in #204
- Update module go.yaml.in/yaml/v4 to v4.0.0-rc.7 by @renovate[bot] in #205
- Update module github.com/go-playground/validator/v10 to v10.30.6 by @renovate[bot] in #208
- Update astro monorepo by @renovate[bot] in #207
- Update module go.yaml.in/yaml/v4 to v4.0.0 by @renovate[bot] in #206
Full Changelog: v0.18.2...v0.19.0