AutoKuma is a utility that automates the creation of Uptime Kuma monitors based on Docker container labels. With AutoKuma, you can eliminate the need for manual monitor creation in the Uptime Kuma UI.
| Source | Description | Support |
|---|---|---|
| Docker | Monitors are sourced from container labels | ✅ |
| Files | Monitors are sourced from .json/.toml files |
✅ |
| Docker Swarm | Monitors can be sourced from service and/or container labels | |
| Kubernetes | Monitors are sourced from CR, see the CRDs in autokuma/kubernetes/crds-autokuma.yml. Additionally the Files and Docker provider might be used depending on your setup |
*These sources are supported on an as-is basis as I'm currently not running any of them (they are basically looking for a maintainer, please get in contact if you'd like to adopt one or add support for another source).
The fastest way to get going is with Docker Compose:
version: '3'
services:
autokuma:
image: ghcr.io/bigboot/autokuma:latest
restart: unless-stopped
environment:
AUTOKUMA__KUMA__URL: http://uptime-kuma:3001
AUTOKUMA__KUMA__USERNAME: <username>
AUTOKUMA__KUMA__PASSWORD: <password>
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- autokuma-data:/data
volumes:
autokuma-data:Then add labels to any container you want to monitor:
labels:
kuma.my-app.http.name: "My App"
kuma.my-app.http.url: "https://my-app.example.com"AutoKuma picks up the labels and creates the monitor in Uptime Kuma automatically.
For full installation options (prebuilt binaries, platforms, dev builds) see the Installation docs.
Labels follow this format:
<prefix>.<id>.<type>.<setting>: <value>
<prefix>- Default iskuma, configurable viaAUTOKUMA__DOCKER__LABEL_PREFIX.<id>- A unique identifier for the monitor.<type>- The monitor type (e.g.http,ping,dns).<setting>- The property to set.
The docs cover everything else: groups, notifications, tags, templating, snippets, static monitors, and all entity types.
At minimum you need to point AutoKuma at your Uptime Kuma instance:
AUTOKUMA__KUMA__URL=http://localhost:3001
AUTOKUMA__KUMA__USERNAME=<username>
AUTOKUMA__KUMA__PASSWORD=<password>See the Configuration docs for the full reference, including TLS, Docker host options, secret files, and config file locations.
Kuma CLI is a command-line tool for managing Uptime Kuma directly from the terminal.
| Resource | Subcommands |
|---|---|
monitor |
add, delete, edit, list, get, pause, resume |
tag |
add, delete, edit, ls, get |
notification |
add, delete, edit, ls, get |
maintenance |
add, delete, edit, ls, get, pause, resume |
status-page |
add, delete, edit, ls, get |
docker-host |
add, delete, edit, ls, get, test |
Binaries for Windows, Linux and macOS are available on GitHub Releases. You can also install via Snap or Cargo:
sudo snap install kuma
# or
cargo install --git https://github.com/BigBoot/AutoKuma.git kuma-cliSee the Kuma CLI docs for usage, all options, and configuration.
kuma-client is a Rust crate that provides a client library for interacting with the Uptime Kuma SocketIO API.
Please take a look at the examples and the documentation for further details.
Contributions to AutoKuma are welcome! Feel free to open issues, submit pull requests, or provide feedback.
AutoKuma is released under the MIT License.