All apps · 0 apps
traefik-manager-agent
Docker app from xyzlab.dev's Repository
Overview
Readme
View on GitHubUnraid templates
Unraid container templates for Traefik Manager, a web UI for managing Traefik routes, services, middlewares and certificates.
| Template | App |
|---|---|
templates/traefik-manager.xml |
Traefik Manager |
templates/traefik-manager-agent.xml |
Traefik Manager agent, to manage this server from a Traefik Manager running elsewhere |
Install
Run this on your Unraid server:
wget -O /boot/config/plugins/dockerMan/templates-user/my-traefik-manager.xml \
https://raw.githubusercontent.com/chr0nzz/unraid-templates/main/templates/traefik-manager.xml
For the agent instead:
wget -O /boot/config/plugins/dockerMan/templates-user/my-traefik-manager-agent.xml \
https://raw.githubusercontent.com/chr0nzz/unraid-templates/main/templates/traefik-manager-agent.xml
Then open the Docker tab, click Add Container, and pick the template from the Template dropdown under User templates.
Run the same command again to pick up new fields added to a template.
Which one do I want?
Traefik Manager is the app itself, with the web UI. Install this if Traefik runs on this Unraid server and you want to manage it here.
Traefik Manager agent has no UI. Install it when Traefik runs on this server but you manage it from a Traefik Manager on another machine. Add the server in that Traefik Manager under Settings - Agents to generate an API key, then paste the key into the template.
Configuration
Every field maps to an environment variable. The Unraid guide covers what to set, which paths to mount for the optional tabs, and how to reach the Traefik API. The environment variable reference lists them all with defaults.
Support
Issues and questions belong on the Traefik Manager tracker.
License
GPL-3.0, see LICENSE.
Install traefik-manager-agent on Unraid in a few clicks.
Find traefik-manager-agent in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.
Requirements
Categories
Related apps
Explore more like this
Explore allDetails
ghcr.io/chr0nzz/traefik-manager-agent:latestRuntime arguments
- Web UI
http://[IP]:[PORT:8090]/health- Network
bridge- Shell
sh- Privileged
- false
- Extra Params
--restart=unless-stopped
Template configuration
Port the Traefik Manager hub connects to. Publish it only on a network the hub can reach.
- Target
- 8090
- Default
- 8090
- Value
- 8090
Your Traefik dynamic config on this server. Point it at the directory Traefik loads, or at a single .yml file. The agent writes here, so it cannot be read only.
- Target
- /app/config
- Default
- /mnt/user/appdata/traefik/config
- Value
- /mnt/user/appdata/traefik/config
Timestamped backups taken before every change, and the git clone when backups go to a repository. Without this mapping everything here is lost each time the container is updated.
- Target
- /app/backups
- Default
- /mnt/user/appdata/traefik-manager-agent/backups
- Value
- /mnt/user/appdata/traefik-manager-agent/backups
Key the hub authenticates with. Generate it in Traefik Manager under Settings, Agents, then paste the same value here.
- Target
- TMA_API_KEY
URL of the Traefik API on this server. Usually http://traefik:8080 when both containers share a Docker network.
- Target
- TRAEFIK_API_URL
- Default
- http://traefik:8080
- Value
- http://traefik:8080
Optional: this server traefik.yml, for the Static Config editor and the Plugins tab. Must be the same file Traefik itself reads, and read-write to allow saving. Also set the Static Config Path variable to match.
- Target
- /etc/traefik/traefik.yml
Optional: this server acme.json, for certificate expiry and for spotting certificates nothing uses. Also set the acme.json Path variable to /app/acme.json. Read-only is enough to view them; set it read-write, with a Restart Method, to remove certificates from this server.
- Target
- /app/acme.json
Optional: this server Traefik access log, for the Logs tab. Also set the Access Log Path variable to /app/logs/access.log.
- Target
- /app/logs/access.log
Optional: only for Restart Method socket. A socket proxy is the safer choice. Host path: /var/run/docker.sock
- Target
- /var/run/docker.sock
Optional: only for Restart Method poison-pill. Map a shared path here and at the same target in your watcher container, then point Signal File Path inside it. Leave blank for the other restart methods.
- Target
- /signals
Path inside the container to the config mapped above. Change it only if you mapped the config somewhere other than /app/config.
- Target
- CONFIG_PATH
- Default
- /app/config
- Value
- /app/config
Path inside the container to traefik.yml, for example /etc/traefik/traefik.yml. Leave blank unless you mapped it above.
- Target
- STATIC_CONFIG_PATH
Path inside the container to acme.json. Accepts several files comma-separated, or a directory, for one storage file per resolver.
- Target
- ACME_JSON_PATH
Path inside the container to the Traefik access log.
- Target
- ACCESS_LOG_PATH
Path inside the container to Traefik local plugins directory, for the Plugins tab.
- Target
- PLUGINS_DIR
Optional: basic-auth username, when the Traefik API sits behind a basicAuth middleware.
- Target
- TRAEFIK_API_USER
Optional: basic-auth password for the Traefik API.
- Target
- TRAEFIK_API_PASSWORD
Set true when the Traefik API URL is https with a self-signed or Origin certificate.
- Target
- TRAEFIK_INSECURE_SKIP_VERIFY
- Default
- false
- Value
- false
How this agent restarts Traefik after a static config change. proxy for a Docker socket proxy, socket for the Docker socket directly, poison-pill for a signal file read by a watcher. Leave blank to disable restarts.
- Target
- RESTART_METHOD
Name of the Traefik container to restart, used by the proxy and socket methods.
- Target
- TRAEFIK_CONTAINER
- Default
- traefik
- Value
- traefik
Socket proxy address for Restart Method proxy, for example tcp://socket-proxy:2375.
- Target
- DOCKER_HOST
File the agent touches to ask a watcher sidecar to restart Traefik, for example /signals/restart.sig. Map the same volume into both containers.
- Target
- SIGNAL_FILE_PATH
Path inside the container for backups. Change it only if you mapped backups somewhere other than /app/backups.
- Target
- BACKUP_DIR
- Default
- /app/backups
- Value
- /app/backups
Keep only the last N backups per config file. 0 keeps every backup.
- Target
- BACKUP_KEEP_COUNT
- Default
- 0
- Value
- 0
Port the agent listens on inside the container. Change the port mapping above to match if you change this.
- Target
- TMA_PORT
- Default
- 8090
- Value
- 8090
Requests per minute accepted from the hub.
- Target
- TMA_RATE_LIMIT
- Default
- 300
- Value
- 300
Set true to log every request the agent handles.
- Target
- TMA_DEBUG
- Default
- false
- Value
- false
Optional: CrowdSec Local API on this server, for example http://crowdsec:8080. Enables the CrowdSec tab for this server.
- Target
- CROWDSEC_LAPI_URL
Optional: CrowdSec bouncer key, used to read decisions. Generate with: cscli bouncers add traefik-manager
- Target
- CROWDSEC_API_KEY
Optional: CrowdSec machine login, needed to view alerts and to unban. Create with: cscli machines add traefik-manager --auto
- Target
- CROWDSEC_MACHINE_ID
Optional: password for the CrowdSec machine login above.
- Target
- CROWDSEC_MACHINE_PASSWORD
Optional: path inside the container to a TLS client certificate, when the LAPI requires mTLS instead of a key.
- Target
- CROWDSEC_CLIENT_CERT
Optional: path inside the container to the private key for the client certificate above.
- Target
- CROWDSEC_CLIENT_KEY
Optional: path inside the container to the CA that signed the LAPI certificate.
- Target
- CROWDSEC_CA_CERT
How many alerts to read at once, 0 to 100000.
- Target
- CROWDSEC_ALERT_LIMIT
- Default
- 500
- Value
- 500
Seconds to wait for a CrowdSec LAPI response, 1 to 120.
- Target
- CROWDSEC_READ_TIMEOUT
- Default
- 20
- Value
- 20
Leave false unless this agent pushes to git on its own. The usual setup is Use Host Repository in Traefik Manager under Backups, Git, where the hub pushes this server config to its own repository on a separate branch and nothing is configured here.
- Target
- GIT_BACKUP_ENABLED
- Default
- false
- Value
- false
Only for a standalone agent: HTTPS URL of the repository to push to.
- Target
- GIT_BACKUP_REPO
Only for a standalone agent: branch to push to. Give every server its own branch, or they overwrite each other.
- Target
- GIT_BACKUP_BRANCH
- Default
- main
- Value
- main
Only for a standalone agent: username the token belongs to.
- Target
- GIT_BACKUP_USERNAME
Only for a standalone agent: personal access token with write access to the repository.
- Target
- GIT_BACKUP_TOKEN
Only for a standalone agent: push after every change instead of committing locally.
- Target
- GIT_BACKUP_AUTO_PUSH
- Default
- true
- Value
- true
Only for a standalone agent: commit message template. {action} and {timestamp} are replaced.
- Target
- GIT_BACKUP_COMMIT_MESSAGE
- Default
- traefik-manager: {action} at {timestamp}
- Value
- traefik-manager: {action} at {timestamp}