tutorial

Monitoring CasaOS with Vigilmon

CasaOS is a self-hosted home server OS built on Docker — but it has no built-in uptime dashboard. Here's how to monitor your CasaOS web UI, app containers, API health, and SSL certificates with Vigilmon.

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:

  1. Log in to vigilmon.online and click Add Monitor.
  2. Set Type to HTTP / HTTPS.
  3. Enter your CasaOS URL: https://casaos.yourdomain.com or http://192.168.1.100 for a local IP.
  4. Set Check interval to 5 minutes.
  5. Set Expected HTTP status to 200.
  6. 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:

  1. In Vigilmon, click Add MonitorHTTP / HTTPS.
  2. Set the URL to http://192.168.1.100/v1/sys/hardware/usage or your equivalent CasaOS API endpoint.
  3. Set Expected HTTP status to 200.
  4. 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:

  1. In Vigilmon, click Add MonitorHTTP / HTTPS.
  2. Set the URL to the app's local port, e.g. http://192.168.1.100:8096 for Jellyfin or http://192.168.1.100:8080 for Portainer.
  3. Set Expected HTTP status to 200.
  4. 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:

  1. Open the HTTP / HTTPS monitor for https://casaos.yourdomain.com (created in Step 1).
  2. Enable Monitor SSL certificate under the SSL section.
  3. Set Alert when certificate expires in less than 21 days.
  4. 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:

  1. In Vigilmon, click Add MonitorCron Heartbeat.
  2. Set the expected ping interval to 10 minutes.
  3. Copy the heartbeat URL shown (e.g. https://vigilmon.online/heartbeat/abc123).
  4. 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

  1. Go to Alert Channels in Vigilmon and add Slack, Discord, email, or a webhook.
  2. Set Consecutive failures before alert to 2 on container monitors to avoid false alerts from brief restart cycles.
  3. 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.

Monitor your app with Vigilmon

Free plan — 5 monitors, no credit card required. Up and running in 60 seconds.

Start free →