How to Deploy Uptime Kuma: Monitor Every Service in Your Stack
Know when any service goes down within 30 seconds. Here is how to deploy Uptime Kuma with notification channels for your entire stack.
Uptime Kuma monitors every service in your stack and alerts you the moment something goes down. It is the simplest, most reliable monitoring tool for self-hosted infrastructure. Here is how to deploy it in five minutes.
Step 1: Create the Docker Compose File
services:
uptime-kuma:
image: louislam/uptime-kuma:latest
container_name: uptime-kuma
restart: unless-stopped
ports:
- "127.0.0.1:3001:3001"
volumes:
- ./data:/app/datadocker compose up -dOpen https://status.yourdomain.com. Create an admin account on first visit.
Step 2: Add Monitors for Every Service
Add monitors for each application in your stack. Uptime Kuma supports HTTP, TCP, ping, DNS, and more:
- HTTP: Check that web applications respond with a 200 status code. Add a monitor for each subdomain: cloud.yourdomain.com, crm.yourdomain.com, chat.yourdomain.com, wiki.yourdomain.com, vault.yourdomain.com, docs.yourdomain.com.
- TCP: Check that non-HTTP services are listening on their ports: SSH on port 22, SMTP on port 25, IMAP on port 993.
- DNS: Verify that your domain resolves correctly and that MX records point to your mail server.
- SSL Certificate Expiry: Monitor the expiry date of every SSL certificate. Uptime Kuma alerts you 30, 14, and 7 days before expiry.
Step 3: Configure Notifications
Uptime Kuma supports over 20 notification channels. Configure at least two so you are never reliant on a single channel:
- Telegram: Instant alerts to your phone. Set up a dedicated monitoring group and invite your team.
- Email: Alerts to a distribution list. Useful for documentation and post-incident review.
- Discord or Slack webhook: If your team uses one of these platforms, send alerts to a dedicated monitoring channel.
- SMS via Twilio or AWS SNS: For critical services only. SMS costs money. Reserve it for email, the CRM, and your website.
Step 4: Create a Public Status Page
Uptime Kuma includes a public status page. Go to Settings, Status Page. Toggle it on. The page shows every monitor, its current status, and an uptime history. Give this URL to your team and your clients. When a service goes down, they check the status page instead of messaging you.
The status page shows:
- Current status of every service (green/red indicators)
- Uptime percentage over configurable time periods
- Response time graphs
- Incident history
Step 5: Set Up a Dashboard
Arrange monitors into groups: Core Infrastructure (SSH, DNS), Web Applications (each subdomain), Email Services (SMTP, IMAP), and SSL Certificates (expiry dates). Create a dashboard with the most critical monitors. Open this dashboard on a dedicated monitor or tablet in the office. A green screen means everything is fine. A red indicator means something needs attention.
VPS1 deploys Uptime Kuma with monitors for every service we manage. We configure alerts so you know about problems before your customers do. If something breaks, we are already working on it.
More articles
How to Deploy BTCPay Server: Accept Bitcoin Payments with Zero Platform Fees
BTCPay Server lets you accept Bitcoin and Lightning payments with no platform fees. Only standard Bitcoin network fees apply. Here is how to deploy it with Docker Compose.
Self-Hosted Crypto Payment Processors: BTCPay Server, Bitcart, and SHKeeper Compared
Accept Bitcoin and cryptocurrency payments directly with no platform fees, no intermediaries, and no KYC. Here is how BTCPay Server, Bitcart, and SHKeeper compare.
How to Deploy SHKeeper: Accept Crypto Payments with WooCommerce in 30 Minutes
SHKeeper supports Bitcoin, Ethereum, USDT, USDC, and 19+ cryptocurrencies with a free WooCommerce plugin. Zero platform fees -- only standard network fees apply.