Skip to main content

Traefik

@sntxrr/traefikv2026.10.25.1· MIT· 1d agoBEHAVIORSACCEPTED WARNINGS
01README

Keep Traefik reverse proxies, the images beside them (CrowdSec and others) and every plugin they load current, through pull requests to the repository each proxy is deployed from -- never by touching a running proxy. inspect reads the live proxy over SSH or its API: running version, router and middleware status, and whether plugins failed to load since this start. check compares the repository's pins with what is running and with upstream releases, and reports what is behind plus how the deployment is exposed: plugins downloaded from the catalog at every start (a failed download disables every plugin, and with them every router that uses one), pins that never deployed, an insecure API published on a host port, routers that are down. bump, dry-run by default, opens one pull request per component: an image tag, a remote plugin's version, or a re-vendored local plugin with its commit and tarball checksum recorded. It defers to an open Dependabot PR that already reaches the target, names one that falls short as superseded, refuses major upgrades unless asked, and refuses deployments that still download plugins at startup unless asked. Plugin middleware configuration, which can carry a CrowdSec LAPI key, is never read into a resource, and neither is a plugin middleware's error text or a partial API response; the container's environment is never read. Unknown is never current: health is null while routers or the plugin-failure log could not be read, and an uncomparable version is a finding.

02Behaviors1
@sntxrr/traefik/instancev2026.10.25.1traefik.ts

Global Arguments

ArgumentTypeDescription
sshHoststringHost running the Traefik container, reached over SSH (hostname, alias or IP).
sshUser?stringSSH user. Needs `docker inspect/exec/logs` on the container, nothing more.
strictHostKeyChecking?enumOpenSSH StrictHostKeyChecking. `no` is never the default.
knownHostsFile?stringOptional UserKnownHostsFile override.
container?stringName of the Traefik container on the host.
apiUrl?stringTraefik API root reachable from where swamp runs, e.g. http://proxy:8080.
apiPort?numberPort of the API inside the container. Defaults to the `traefik` entrypoint's
logFile?stringLog file inside the container, when Traefik logs to a file. Defaults to
repo?stringGitHub repository the deployment's configuration is deployed from. Required by `check` and `bump`.
ref?stringBranch `check` reads and `bump` targets.
composeFiles?arrayCompose files in the repository, relative to its root. The first one that
staticConfig?stringStatic configuration file in the repository (traefik.toml / traefik.yml).
pluginsLocalDir?stringRepository path that is mounted at /plugins-local. Defaults to `plugins-local`
vendorRecord?stringFile that records each vendored plugin's version and provenance. Defaults to
localPluginVersions?recordExplicit versions for vendored plugins, by plugin name, when the record cannot be parsed.
trackImages?recordImages to track, mapped to the GitHub repository whose releases define their
allowPrerelease?booleanOffer release candidates as upgrade targets. Never set this on an edge proxy.
githubApiUrl?string
githubToken?stringToken for the deployment repository only (contents + pull requests). Never
upstreamToken?stringOptional token used ONLY to read public upstream projects (releases,
timeoutMs?numberAbort each HTTP call after this long; SSH gets four times this.
fn inspect()
Read-only. The live proxy: running version, start time, HTTP/TCP/UDP router and middleware status, and whether plugins failed to load since this start. Uses apiUrl when reachable, else the API from inside the container over SSH. healthy is null, not true, when router health or the plugin-failure log could not be read.
fn check(live?: boolean)
Read-only. Compare the repository's pins (Traefik, tracked images, every plugin) with what is running and with upstream releases; flag remote plugins, undeployed pins, a published insecure API, disabled routers or plugin middlewares, and anything that could not be determined. Notes open PRs (Dependabot's or bump's) that already move a component.
ArgumentTypeDescription
live?booleanRead the live proxy too. false compares the repository with upstream only.
fn bump(component?: string, toVersion?: string, dryRun?: boolean, allowMajor?: boolean, allowRemotePlugins?: boolean)
Open one pull request per component that is behind, in the deployment's repository: an image tag, a remote plugin version, or a re-vendored local plugin with its provenance recorded. DRY-RUN BY DEFAULT. Never merges and never touches the host. Skips components with an open PR already; refuses major upgrades unless allowMajor, target versions that do not exist upstream, and instances that download plugins at startup unless allowRemotePlugins. Each component is independent: one failing is recorded
ArgumentTypeDescription
component?string`all` (every component that is behind), or one id from `check`: `image:traefik`, `image:crowdsecurity/crowdsec`, `plugin:<name>`.
toVersion?stringTarget version for a single component; must be an upstream release. Defaults to the newest stable release in its major.
dryRun?booleantrue (default) plans and reports the exact edits; false opens the pull requests.
allowMajor?booleanPermit a toVersion in a new major. Read the migration guide first.
allowRemotePlugins?booleanOpen PRs even though this deployment downloads plugins at startup, so every merge risks a plugin-download outage.

Resources

runtime(infinite)— What the proxy is doing right now: version, routers, middlewares, plugin load.
check(infinite)— Pinned vs running vs upstream for Traefik, tracked images and every plugin, with findings.
bump(infinite)— What `bump` planned or opened, per component.
03Stats
A
100 / 100
Downloads
3
Archive size
90.7 KB
  • Has README or module doc2/2earned
  • README has a code example1/1earned
  • README is substantive1/1earned
  • Most symbols documented1/1earned
  • No slow types (deprecated)1/1earned
  • Dependencies pass trust audit2/2earned
  • Docs keep secrets in a vault1/1earned
  • Has description1/1earned
  • Platform support declared (or universal)2/2earned
  • License2/2earned
  • Verified public repository2/2earned

05Platforms
06Labels