Woodpecker CI plugins from the team at Kontango.
A growing collection of open-source Woodpecker CI
plugins for provisioning and managing infrastructure directly from your
pipelines. Each plugin is a small, self-contained container image driven
entirely by pipeline settings: — no agents, no state, just an action and its
inputs.
These plugins are built the same way we run our own infrastructure. If you use schmutz — our zero-trust device enrollment agent — these are the pipelines that stand up and maintain the machines behind it.
→ Looking for schmutz itself? It lives at KontangoOSS/schmutz.
| Plugin | What it does |
|---|---|
| schmutz-plugin-proxmox | Manage Proxmox VE from CI — LXC, QEMU, storage, networking, snapshots, backups, HA, Ceph, plus Ansible roles for end-to-end provisioning. |
| schmutz-plugin-template | Starting point for building your own bash Woodpecker plugin — core library (logging, HTTP+retry, auth, dispatch) and example actions. |
More plugins are on the way — we're reviewing and releasing them one at a time.
Every plugin follows the same shape (start from schmutz-plugin-template):
- A
plugin.shentrypoint that declares its settings and dispatches actions. - A shared
lib/plugin-core.sh— logging, validation, HTTP with retry, pluggable auth, and structured output. - A
plugin.jsondescribing the settings schema and actions. - A
Dockerfileproducing a small Alpine-based image. - A
.woodpecker.ymlthat builds and publishes the image.
Use one in a pipeline by referencing its image and passing settings:
steps:
- name: create-container
image: ghcr.io/kontangooss/schmutz-plugin-proxmox:latest
settings:
action: lxc-create
api_url: https://pve.example.com:8006
api_token:
from_secret: PROXMOX_API_TOKEN
node: pve
hostname: my-appFound a bug or want a new action? Open an issue or PR on the relevant plugin repo. New plugins are welcome — fork the template and follow its structure.
Each plugin is MIT-licensed. See the LICENSE file in each repo.
Built by the team at Kontango