Uptime Kuma Setup
Deploy Uptime Kuma on Witchly.host — a self-hosted status page and monitoring tool. Track websites, APIs, game servers, and more with alerts.
applications (9 articles)
On This Page
Uptime Kuma Setup
Uptime Kuma is a beautiful self-hosted monitoring tool — think Uptime Robot or StatusCake, but running on your own server. Monitor HTTP(S), TCP, DNS, ping, keyword, Docker containers, Steam servers, push-style endpoints, and more. Push notifications go to Discord, Slack, Telegram, email, and 90+ other services.
Why self-host monitoring
- Your monitoring lives on infrastructure you control, independent from the thing you’re monitoring.
- No per-monitor cost — run 100+ checks for the price of one Elite app.
- Public status pages are free; unlimited subscribers.
Deploying
- dash.witchly.host → Deploy → Applications → Uptime Kuma.
- The Helper (1 GB RAM) is plenty for hundreds of monitors.
- Click Deploy.
First-run setup
- Wait for the install script to finish (first boot clones and sets up the repo — takes 30–60 seconds).
- On the Console tab, you’ll see
Listening on 0.0.0.0:<port>. - Copy your server’s IP and port from the Overview tab.
- Open
http://<ip>:<port>in your browser. - Create the admin account on first visit. Save the credentials — there’s no password reset UI.
Adding monitors
Click + Add New Monitor and pick a type:
- HTTP(S) — website up/down checks
- TCP Port — check a game server port is open
- Ping — ICMP ping
- Keyword — check that a string appears in the HTTP response
- Docker Container — health of a container
- Push — heartbeat-style; you push to Uptime Kuma instead of it pulling
Set the interval (20s minimum on the free tier; lower on Elite), retries, and notifications.
Status pages
Create a public status page under Settings → Status Pages. Add monitors, customize the title/logo, and share the URL with your community.
Notifications
Go to Settings → Notifications → Setup Notification. Uptime Kuma supports:
- Discord webhook
- Slack webhook
- Telegram bot
- Email (SMTP)
- ntfy, Pushover, Gotify, Webhook, and dozens more
Test each notification before saving.
Auto-update
The AUTO_UPDATE variable on the Startup tab is set to 1 by default. Uptime Kuma will npm run setup on each server start to pull the latest release. Set it to 0 if you want to pin the current version (e.g., while investigating a regression).
Data persistence
All your monitors, notifications, and status pages are stored in a local SQLite DB inside the server. Enable backups — losing this database loses your entire monitoring setup.
Troubleshooting
- Can’t reach the web UI — verify you’re using the port from the Overview tab (not the default 3001). Check the Console tab for
Listening on.... - Install hangs — first boot downloads Node packages; give it 2–3 minutes. If it still hangs, Reinstall from the Startup tab.
- Notifications silent — test them individually from the Notifications settings page; common cause is an expired webhook token.
Next steps
- Enable backups to protect your monitor DB
- Set a custom domain for a pretty status page URL