An external monitor can detect downtime before a customer reports it. If monitoring runs on the same machine as the website, a complete server outage may disable both the site and its alerts.
1. Choose the monitoring host
Prefer a separate server or network. This example requires Docker and Compose. The official project documents monitoring types and deployment options.
Use local persistent storage rather than NFS. Start with a test endpoint you control.
2. Create the deployment
Create /opt/uptime-kuma/compose.yaml:
yamlservices:
uptime-kuma:
image: louislam/uptime-kuma:2
restart: unless-stopped
ports:
- "127.0.0.1:3001:3001"
volumes:
- kuma_data:/app/data
volumes:
kuma_data:
name: uptime_kuma_databashcd /opt/uptime-kuma
sudo docker compose config
sudo docker compose up -d
sudo docker compose logs --tail 50Record the deployed image before upgrading. A major-version migration deserves separate planning.
3. Create the administrator
From your computer:
bashssh -N -L 3001:127.0.0.1:3001 root@MONITOR_SERVER_IPOpen http://localhost:3001 and create the account. For later domain access, use an HTTPS reverse proxy as covered in Nginx Proxy Manager setup.
4. Add a meaningful check
Create an HTTP(s) monitor for the real HTTPS URL. A 60-second interval is a reasonable starting choice, not a mandatory value.
A working home page does not prove checkout or database writes work. Consider a health endpoint that reveals no sensitive data. A TCP check answers a narrower question than an application transaction.
5. Test the alert lifecycle
Configure a supported notification channel, send a test message and attach it to the monitor. Then deliberately stop a disposable service you control and verify both down and recovery notifications.
Adjust retries and maintenance windows to reduce noisy alerts. Do not interrupt production merely to test notifications.
6. Back up and troubleshoot
Stop the container during a maintenance window, take a consistent backup of uptime_kuma_data and restart it. Follow the Docker volume documentation for backup methods. Protect notification secrets in the backup.
If all checks fail, inspect the monitoring host's DNS and connectivity. If only one site fails, inspect IP restrictions or bot controls. If no alert arrives, check channel assignment and outbound access. See the broader uptime guide.
