Get Started
Menu
HomePromptsArticlesToolsWorkflowsGuidesNewsShop

Website Health Monitor

← All DIY / Hardware Projects

AI Craft Pad / Free hardware project · Python · HTTPS

Website Health Monitor

A dependency-free HTTPS availability checker that writes an atomic JSON status feed for the two desk devices.

Download free source pack (.zip) →Five projects · MIT example code
Website Health Monitor project cover
Illustrative project cover

Use cases

  • Check a personal site or a few public pages
  • Feed the E-Ink Desk Hub and ESP32 Status Dashboard
  • Keep a machine-readable status snapshot

Components

  • Computer or Raspberry Pi with Python 3 and internet access
  • Optional E-Ink or ESP32 viewer
  • Trusted LAN if serving the feed

Architecture / wiring

HTTPS URLs → Python standard-library checker → atomic status.json → optional local HTTP feed → desk devices

Match the exact hardware model stated above. Keep the LAN services on a trusted private network.

Build instructions

  1. Run python monitor.py –self-test.
  2. Take one snapshot with python monitor.py –output status.json https://example.com.
  3. For a continuous feed, run python monitor.py –interval 300 –serve –host 127.0.0.1 https://example.com.
  4. To share with a desk device, bind only to your trusted LAN IP and permit that private network in the firewall. Open http://LAN-IP:8765/status.json to confirm.

Code, firmware and files

The downloadable source pack contains: monitor.py and README.md; status.json is generated at runtime. Open the folder named website-health-monitor after extracting the ZIP. Start with its README and run the local check below.

python monitor.py --self-test

Get the free source and README →

Validation

Self-test passed. Live response depends on the URL and network used on your machine.

Run the listed checks on your own setup before relying on hardware results.

Website Health Monitor setup notes

Website Health Monitor checks a small list of HTTPS pages with Python’s standard library and writes a local JSON snapshot. That snapshot is designed for the E-Ink Desk Hub and ESP32 Status Dashboard, but you can also inspect it directly. A successful response means the requested URL answered within the configured timeout; it does not prove that every feature on the website works. Add URLs you control or have permission to check and choose a modest interval.

Run the included self-test first, then edit the URL list and execute one manual check. Inspect the output file for a timestamp, HTTP result, and response time for each target. Once the one-time run looks right, schedule it with your operating system. The write process replaces the JSON file atomically so a reader is less likely to see a partial response. If you expose the optional feed to an ESP32 on your LAN, bind it only where your devices can reach it and keep the network trusted.

When a site shows a failure, inspect DNS, TLS, redirects, HTTP status, and the configured timeout before assuming it is down. Use a specific page that represents the service you care about. Alert delivery, historical charts, and multi-region checks are future extensions; the free version provides the current snapshot. The official Python urllib.request documentation explains the underlying HTTP client behavior. Avoid publishing internal feed URLs or private service names in public examples.

FAQ

Does it send alerts?

No. The free edition writes JSON only.

Why HTTPS only?

The tool keeps certificate validation and avoids insecure public endpoints.

What counts as online?

HTTP 2xx and 3xx; 4xx, 5xx and network failures are flagged.

Next step

Build the free edition, then adapt it to your desk. Alerts and history are candidate later features. These are future plans, not features in this download.

Scroll to Top