uptime-kuma-self-host
Skill1 starsChanged 3 months agoMITView on GitHub
Use when the user wants to self-host uptime monitoring for their services (HTTP, TCP, DNS, ping) with alerting to Discord/Slack/email/webhook, or wants a public status page, or says "set up uptime monitoring" / "I want to know when my site goes down".
In this repository58 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- api-test-suiteSkill
- ascii-artSkill
- caddy-reverse-proxySkill
- changelog-generatorSkill
- color-palette-generatorSkill
- cron-taskSkill
- csv-toolkitSkill
- discord-bot-buildSkill
- docker-umbrellaSkill
- dotfiles-manageSkill
- email-sendSkill
- env-config-managerSkill
- excalidraw-diagramSkill
- file-organizerSkill
- forgejo-self-hostSkill
- frontend-design-toolkitSkill
- generate-dockerfileSkill
- gif-searchSkill
- git-backupSkill
- github-actions-ciSkill
- hallmark-readmeSkill
- http-api-testerSkill
- invoice-generatorSkill
- json-formatterSkill
- log-analyzerSkill
- markdown-linterSkill
- markdown-to-pdfSkill
- markdown-to-slidesSkill
- mcp-server-buildSkill
- media-id-mappingSkill
- movie-catalogue-siteSkill
- movie-night-calendarSkill
- ntfy-notifierSkill
- ocr-documentsSkill
- ollama-localSkill
- openapi-generatorSkill
- password-generatorSkill
- pdf-extractSkill
- portfolio-upkeepSkill
- qr-code-generatorSkill
- regex-testerSkill
- resume-builderSkill
- rss-monitorSkill
- searxng-self-hostSkill
- skill-publishSkill
- skill-registry-catalogSkill
- skills-portfolio-scaffoldSkill
- snippet-managerSkill
- sqlite-dashboardSkill
- streaming-provider-embedsSkill
- tailscale-deploySkill
- telegram-bot-buildSkill
- tmdb-metadataSkill
- watchlist-syncSkill
- webhook-receiverSkill
- youtube-transcriptSkill
The file
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 3 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 73
Add a notification channel (Discord webhook, Slack webhook, email, etc.)
- Distinctive: line 108
Add monitors to display
- Distinctive: line 122
Use this for services behind firewalls that Kuma can't reach directly.
- Very specific: line 144
Treating the data volume as disposable: All monitor configs, history, and notification settings live only in the uptime-kuma-data volume — …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
uptime-kuma-self-host
Overview
Deploy Uptime Kuma — a self-hosted monitoring tool that tracks the uptime of your services (HTTP, TCP, DNS, ping) and sends alerts when something goes down. It runs as a Docker container with a web UI for managing monitors and viewing status pages.
When to Use
- The user wants to monitor their self-hosted services.
- The user wants uptime alerts sent to Discord, Slack, email, or webhook.
- The user wants a public status page for their services.
- The user says "set up uptime monitoring", "I want to know when my site goes down", or "monitor my services".
Prerequisites
- Docker and Docker Compose installed
- A free port (default: 3001)
Docker Deployment
Step 1: Create the deployment
# docker-compose.yml
version: "3"
services:
uptime-kuma:
image: louislam/uptime-kuma:latest
container_name: uptime-kuma
restart: unless-stopped
ports:
- "3001:3001"
volumes:
- uptime-kuma-data:/app/data
volumes:
uptime-kuma-data:Step 2: Start
docker compose up -dStep 3: Initial setup
Open http://localhost:3001 in a browser. Create an admin account (username + password). This is a one-time setup.
Step 4: Add monitors via the UI
- Click "Add New Monitor"
- Choose a monitor type
- Enter the target URL/host
- Set the check interval
- Save
Step 5: Add notifications
- Go to Settings → Notifications
- Add a notification channel (Discord webhook, Slack webhook, email, etc.)
- Test the notification
- Assign the notification to monitors
Monitor Types
| Type | What it checks | Example |
| HTTP(s) | Is a URL responding with 2xx? | https://mysite.com |
| HTTP(s) - Keyword | Does the response contain a keyword? | https://mysite.com looking for "OK" |
| TCP Port | Is a TCP port open? | mysite.com:5432 |
| DNS | Does a domain resolve? | mysite.com → A record |
| Ping | Does a host respond to ICMP? | 192.168.1.1 |
| Push | Wait for a push (passive monitor) | https://kuma:3001/api/push/STATUS?msg=OK&ping=100 |
| Docker Container | Is a Docker container running? | Container name via Docker socket |
Notification Channels
| Channel | Setup |
| Discord | Webhook URL from Discord channel settings |
| Slack | Webhook URL from Slack app config |
| SMTP server + credentials | |
| Webhook | Custom HTTP POST on status change |
| Telegram | Bot token + chat ID |
| ntfy | ntfy.sh topic URL |
| Signal | via signal-cli-rest-api |
| Pushover | User key + app key |
Status Pages
Uptime Kuma can generate public status pages showing the uptime of your services:
- Go to Status Pages → Add Status Page
- Name it (e.g., "My Services")
- Add monitors to display
- Set a custom domain (optional)
- Share the URL:
http://localhost:3001/status/my-services
API (Push Monitors)
Push monitors are passive — they wait for your service to "check in":
# Your service calls this URL on a schedule
# If Kuma doesn't hear from it within the interval, it's marked down
curl "http://localhost:3001/api/push/ABCD1234?msg=OK&ping=42"Use this for services behind firewalls that Kuma can't reach directly.
Monitoring a Docker Host
To monitor Docker containers on the host, bind-mount the Docker socket:
services:
uptime-kuma:
image: louislam/uptime-kuma:latest
volumes:
- uptime-kuma-data:/app/data
- /var/run/docker.sock:/var/run/docker.sock # for container monitoringThen add a "Docker Container" monitor type pointing to the container name.
Common Pitfalls
- Port 3001 collides with another service. Forgejo and some other self-hosted tools default
to nearby ports. Check
docker ps/netstatfirst and remap indocker-compose.ymlif 3001 is taken. - Treating the data volume as disposable. All monitor configs, history, and notification
settings live only in the
uptime-kuma-datavolume — there's no external config file to fall back on. Back it up regularly. - Assuming HTTPS is built in. Uptime Kuma serves plain HTTP. Put it behind Caddy or another reverse proxy if the status page or dashboard needs to be reachable over TLS.
- Not configuring "Accepted Status Codes." A 3xx redirect is treated as healthy by default; only 5xx (and non-matching codes outside the accepted set) count as down. Set this explicitly if the monitored service redirects normally.
- Leaving "Retry" at its default on a flapping service. A service that goes up/down rapidly sends one notification per transition. Raise the retry count (e.g., 2 failed checks before alerting) to suppress flap noise.
- Setting a push-monitor interval shorter than the service's real check-in cadence. Kuma waits the full interval before marking a push monitor down — if the interval doesn't match how often the service actually pushes, you get false "down" alerts or delayed detection.
Verification Checklist
docker compose psshowsuptime-kumarunning andhttp://localhost:3001loads the dashboard.- Admin account created (one-time setup completed, not left on the setup screen).
- At least one monitor added and showing a status (up/down/pending), not stuck on "PENDING".
- Test notification sent successfully from Settings → Notifications before assigning it to monitors.
uptime-kuma-datavolume confirmed present (docker volume inspect) and included in the user's backup plan.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

