Install
openclaw skills install nai-status-page-genGenerate a dark-themed static HTML status page summarizing health checks, ping, SSL certs, and uptime for self-hosted services from a JSON config.
openclaw skills install nai-status-page-genGenerate a static HTML status page for all your self-hosted services.
~/.openclaw/workspace/skills/status-page-gen/
Copy the example config and edit it:
cp ~/.openclaw/workspace/skills/status-page-gen/assets/services.example.json \
~/.openclaw/workspace/skills/status-page-gen/assets/services.json
Edit services.json with your actual service names, URLs, and health endpoints.
cd ~/.openclaw/workspace/skills/status-page-gen
python3 scripts/check_services.py --config assets/services.json --output /tmp/status_check.json
python3 scripts/check_certs.py --config assets/services.json --output /tmp/cert_check.json
python3 scripts/history.py --append /tmp/status_check.json --db assets/history.json
python3 scripts/generate_page.py \
--services /tmp/status_check.json \
--certs /tmp/cert_check.json \
--history assets/history.json \
--output ~/status.html
Open ~/status.html in a browser.
Add to crontab (crontab -e):
*/5 * * * * cd ~/.openclaw/workspace/skills/status-page-gen && \
python3 scripts/check_services.py --config assets/services.json --output /tmp/status_check.json && \
python3 scripts/check_certs.py --config assets/services.json --output /tmp/cert_check.json && \
python3 scripts/history.py --append /tmp/status_check.json --db assets/history.json && \
python3 scripts/generate_page.py --services /tmp/status_check.json --certs /tmp/cert_check.json --history assets/history.json --output ~/status.html
| Script | Purpose |
|---|---|
check_services.py | HTTP health checks + ping + response time |
check_certs.py | SSL certificate expiry validation |
history.py | Append results to log, compute uptime % |
generate_page.py | Render self-contained HTML status page |
services.json)See assets/services.example.json for a full example. Each service entry:
{
"name": "Grafana",
"url": "https://grafana.example.com",
"health_endpoint": "/api/health",
"expected_status": 200,
"ping_host": "grafana.example.com",
"tags": ["monitoring"]
}
health_endpoint — path appended to url for health check (default: /)expected_status — HTTP status code to consider "up" (default: 200)ping_host — hostname for ICMP ping (optional, derived from url if omitted)See references/setup-guide.md for detailed configuration, GitHub Gist publishing, and advanced scheduling.