Hello,
I am using Pangolin as my reverse proxy, which allows defining resources using docker labels, similar to traefik. I'd like to set up a snippet to reuse existing label values, but struggling to access the array items in bracket notation.
Example labels of a pangolin resource:
- pangolin.proxy-resources.uptime-kuma.name=uptime-kuma
- pangolin.proxy-resources.uptime-kuma.full-domain=uptime-kuma.domain.com
- pangolin.proxy-resources.uptime-kuma.protocol=http
- pangolin.proxy-resources.uptime-kuma.targets[0].method=http
- pangolin.proxy-resources.uptime-kuma.targets[0].port=3001
- pangolin.proxy-resources.uptime-kuma.targets[0].healthcheck.hostname=uptime-kuma
- pangolin.proxy-resources.uptime-kuma.targets[0].healthcheck.port=3001
I've tried accessing the 'port' property using the below snippet:
{% set label = container.Labels %}
{% set port = label["pangolin.proxy-resources.uptime-kuma.targets[0].port"] %}
{% set domain = label["pangolin.proxy-resources.uptime-kuma.full-domain"] %}
{{ container_name }}_http.http.name: {{ container_name }}
{{ container_name }}_http.http.url: https://{{ domain }}:{{ port }}
But receive the error:
autokuma | 2026-02-10 00:23:36.491 [autokuma::entity] WARN: Error while parsing snippet: Error while trying to parse labels:
autokuma | Caused by: Failed to render '{% set label = container.Labels %}
autokuma | {% set port = label["pangolin.proxy-resources.uptime-kuma.targets[0].port"] %}
autokuma | {% set domain = label["pangolin.proxy-resources.uptime-kuma.full-domain"] %}
autokuma | {{ container_name }}_http.http.name: {{ container_name }}
autokuma | {{ container_name }}_http.http.url: https://{{ domain }}:{{ port }}'
autokuma | Caused by: Variable `label["pangolin.proxy-resources.uptime-kuma.targets[0].port"]` not found in context while rendering '{% set label = container.Labels %}
autokuma | {% set port = label["pangolin.proxy-resources.uptime-kuma.targets[0].port"] %}
autokuma | {% set domain = label["pangolin.proxy-resources.uptime-kuma.full-domain"] %}
autokuma | {{ container_name }}_http.http.name: {{ container_name }}
autokuma | {{ container_name }}_http.http.url: https://{{ domain }}:{{ port }}': the evaluated version was `label."pangolin.proxy-resources.uptime-kuma.targets.0.port"`. Maybe the index is out of bounds?
I also tried the below formats, with the same error:
{% set port = label["pangolin.proxy-resources.uptime-kuma.targets.0.port"] %}
{% set port = label["pangolin.proxy-resources.uptime-kuma.targets.port"] %}
Any guidance would be appreciated.
Hello,
I am using Pangolin as my reverse proxy, which allows defining resources using docker labels, similar to traefik. I'd like to set up a snippet to reuse existing label values, but struggling to access the array items in bracket notation.
Example labels of a pangolin resource:
I've tried accessing the 'port' property using the below snippet:
But receive the error:
I also tried the below formats, with the same error:
Any guidance would be appreciated.