Traefik
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.
Global Arguments
| Argument | Type | Description |
|---|---|---|
| sshHost | string | Host running the Traefik container, reached over SSH (hostname, alias or IP). |
| sshUser? | string | SSH user. Needs `docker inspect/exec/logs` on the container, nothing more. |
| strictHostKeyChecking? | enum | OpenSSH StrictHostKeyChecking. `no` is never the default. |
| knownHostsFile? | string | Optional UserKnownHostsFile override. |
| container? | string | Name of the Traefik container on the host. |
| apiUrl? | string | Traefik API root reachable from where swamp runs, e.g. http://proxy:8080. |
| apiPort? | number | Port of the API inside the container. Defaults to the `traefik` entrypoint's |
| logFile? | string | Log file inside the container, when Traefik logs to a file. Defaults to |
| repo? | string | GitHub repository the deployment's configuration is deployed from. Required by `check` and `bump`. |
| ref? | string | Branch `check` reads and `bump` targets. |
| composeFiles? | array | Compose files in the repository, relative to its root. The first one that |
| staticConfig? | string | Static configuration file in the repository (traefik.toml / traefik.yml). |
| pluginsLocalDir? | string | Repository path that is mounted at /plugins-local. Defaults to `plugins-local` |
| vendorRecord? | string | File that records each vendored plugin's version and provenance. Defaults to |
| localPluginVersions? | record | Explicit versions for vendored plugins, by plugin name, when the record cannot be parsed. |
| trackImages? | record | Images to track, mapped to the GitHub repository whose releases define their |
| allowPrerelease? | boolean | Offer release candidates as upgrade targets. Never set this on an edge proxy. |
| githubApiUrl? | string | |
| githubToken? | string | Token for the deployment repository only (contents + pull requests). Never |
| upstreamToken? | string | Optional token used ONLY to read public upstream projects (releases, |
| timeoutMs? | number | Abort each HTTP call after this long; SSH gets four times this. |
| Argument | Type | Description |
|---|---|---|
| live? | boolean | Read the live proxy too. false compares the repository with upstream only. |
| Argument | Type | Description |
|---|---|---|
| component? | string | `all` (every component that is behind), or one id from `check`: `image:traefik`, `image:crowdsecurity/crowdsec`, `plugin:<name>`. |
| toVersion? | string | Target version for a single component; must be an upstream release. Defaults to the newest stable release in its major. |
| dryRun? | boolean | true (default) plans and reports the exact edits; false opens the pull requests. |
| allowMajor? | boolean | Permit a toVersion in a new major. Read the migration guide first. |
| allowRemotePlugins? | boolean | Open PRs even though this deployment downloads plugins at startup, so every merge risks a plugin-download outage. |
Resources
- 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
Spawns a subprocess with Deno.Command().
- models/traefik.ts:2529 — no reason given