How ubs9796/uptime-monitor works
Uptime Monitor manages monitored URLs through a CLI: operators add or remove sites, run a check cycle, and view status in a read-only dashboard. A cycle first probes connectivity, then checks each site's HTTP availability and (for HTTPS) certificate expiry, persists history and changed state, and dispatches alerts for transitions. SQLite supports both the CLI cycle and dashboard; Telegram is attempted before an optional HTTPS webhook. The excerpts show these main calls and reads; external service interactions are represented from the documented behavior and notifier implementation.
Main entry points: runner.py Check cycle · storage.py SQLite state and history · notifier.py Alert delivery · dashboard.py Read-only dashboard
Components 15
Monitor operations
- Monitor CLI
runner.py - Check cycle
runner.py
Availability checks
- URL validation
checker.py - Connectivity probe
checker.py - HTTP status check
checker.py - TLS expiry check
checker.py
State and history
- Transition detection
storage.py - SQLite state and history
storage.py
Status and alerts
- Read-only dashboard
dashboard.py - Alert formatting
notifier.py - Alert delivery
notifier.py
Other components
- Operator
- Monitored websites
- Telegram API
- HTTPS webhook
Connections 17
- Operator → Monitor CLI: runs commands
README.md - Monitor CLI → Check cycle: starts cycle
runner.py - Check cycle → Connectivity probe: probes first
runner.py - Check cycle → SQLite state and history: loads sites
runner.py - Check cycle → HTTP status check: checks URLs
runner.py - Check cycle → TLS expiry check: checks HTTPS expiry
runner.py - Check cycle → Transition detection: records results
runner.py - Transition detection → SQLite state and history: appends history
storage.py - Monitor CLI → SQLite state and history: manages sites
runner.py - SQLite state and history → URL validation: validates site URLs
storage.py - Check cycle → Alert formatting: formats changed alerts
runner.py - Check cycle → Alert delivery: sends changed alerts
runner.py - Alert delivery → Telegram API: tries first
notifier.py - Alert delivery → HTTPS webhook: falls back
notifier.py - Operator → Read-only dashboard: views status
README.md - Read-only dashboard → SQLite state and history: reads site state
dashboard.py - Check cycle → Monitored websites: checks each site
runner.py