CasaOS turns any Linux machine into a user-friendly home server with a clean web UI and a one-click Docker app store. The trade-off of self-hosting is that you own the monitoring too — if your CasaOS instance goes down while you're away, nothing tells you until you try to reach it. Vigilmon gives you uptime monitoring, API health checks, container status alerting, and SSL certificate expiry warnings so you know the moment something breaks.
What You'll Set Up
- HTTP uptime monitor for the CasaOS web UI
- API health endpoint check for the CasaOS backend
- Docker container health monitoring for installed apps
- SSL certificate expiry alerts for your domain
- App container uptime via per-service HTTP monitors
Prerequisites
- CasaOS installed on a Raspberry Pi, mini PC, or VPS
- CasaOS accessible over a local network or exposed via a reverse proxy (e.g. Nginx Proxy Manager, Cloudflare Tunnel)
- A free Vigilmon account
Step 1: Monitor the CasaOS Web UI
The CasaOS dashboard is served on port 80 (or 443 if you've configured HTTPS via a reverse proxy). This is your primary availability check:
- Log in to vigilmon.online and click Add Monitor.
- Set Type to
HTTP / HTTPS. - Enter your CasaOS URL:
https://casaos.yourdomain.comorhttp://192.168.1.100for a local IP. - Set Check interval to
5 minutes. - Set Expected HTTP status to
200. - Click Save.
If your CasaOS instance is only on your local network, consider exposing the health endpoint through Cloudflare Tunnel or a VPN so Vigilmon's remote probes can reach it. Alternatively, use Vigilmon's cron heartbeat (Step 5) for purely local installations.
Step 2: Check the CasaOS API Health Endpoint
CasaOS exposes a REST API that its own web UI consumes. You can probe it directly as a more reliable health signal than checking the static frontend:
- In Vigilmon, click Add Monitor → HTTP / HTTPS.
- Set the URL to
http://192.168.1.100/v1/sys/hardware/usageor your equivalent CasaOS API endpoint. - Set Expected HTTP status to
200. - Set Check interval to
5 minutes.
To find the exact API base path, open your browser's developer tools on the CasaOS dashboard and observe the network requests — look for calls to /v1/ paths. The /v1/sys/ endpoints (CPU, memory, storage usage) return JSON and are lightweight to probe.
# Verify from your local machine
curl -s http://192.168.1.100/v1/sys/hardware/usage | jq .success
# → true
If the API returns false or the request times out, your CasaOS backend has a problem even if the static UI still loads.
Step 3: Monitor Docker App Containers
CasaOS installs apps as Docker containers. Each container that exposes a web UI can have its own Vigilmon monitor. Here's the pattern:
- In Vigilmon, click Add Monitor → HTTP / HTTPS.
- Set the URL to the app's local port, e.g.
http://192.168.1.100:8096for Jellyfin orhttp://192.168.1.100:8080for Portainer. - Set Expected HTTP status to
200. - Repeat for each critical app.
To check if a container is running from the command line:
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
For containers that expose a /health route, use that path instead of the root:
http://192.168.1.100:8096/health
This gives you a signal beyond "the port is open" — it confirms the app's internal state is healthy.
Step 4: SSL Certificate Alerts
If your CasaOS instance is exposed via a reverse proxy with a domain and TLS certificate, you need alerts before that certificate expires. A lapsed certificate locks every browser out of your home server:
- Open the HTTP / HTTPS monitor for
https://casaos.yourdomain.com(created in Step 1). - Enable Monitor SSL certificate under the SSL section.
- Set Alert when certificate expires in less than
21 days. - Click Save.
Twenty-one days is enough lead time to investigate an auto-renewal failure and manually renew before your server becomes unreachable. Add a certificate monitor for each domain if you've given individual apps their own subdomains through your reverse proxy.
Step 5: Cron Heartbeat for Local-Only Installations
If your CasaOS box isn't exposed to the internet, Vigilmon's external probes can't reach it. Instead, configure a cron heartbeat so CasaOS pings Vigilmon on a schedule:
- In Vigilmon, click Add Monitor → Cron Heartbeat.
- Set the expected ping interval to
10minutes. - Copy the heartbeat URL shown (e.g.
https://vigilmon.online/heartbeat/abc123). - On your CasaOS host, add a cron job:
crontab -e
Add:
*/10 * * * * curl -s https://vigilmon.online/heartbeat/abc123
If the machine crashes, loses power, or loses internet connectivity, it stops sending pings and Vigilmon alerts you after 10 minutes of silence. This is the most reliable monitoring option for a home server that isn't publicly accessible.
Step 6: Configure Alert Channels
- Go to Alert Channels in Vigilmon and add Slack, Discord, email, or a webhook.
- Set Consecutive failures before alert to
2on container monitors to avoid false alerts from brief restart cycles. - Use Maintenance windows before you update CasaOS or reboot the host.
For a home server shared with family members, the email channel is simplest — a plain email arrives the moment a critical app container like Jellyfin or Nextcloud goes down.
Summary
| Monitor | Target | What It Catches |
|---|---|---|
| Web UI | https://casaos.yourdomain.com | Dashboard unavailable |
| API health | /v1/sys/hardware/usage | Backend failure |
| App container | http://host:port/health | Per-app crash |
| SSL certificate | Each exposed domain | Certificate expiry |
| Cron heartbeat | Heartbeat URL | Host offline, no internet |
CasaOS makes self-hosting approachable, but it doesn't handle uptime monitoring for you. With Vigilmon watching your dashboard, API, individual app containers, and certificates, you get immediate alerts when anything on your home server needs attention — whether you're in the next room or across the world.