Skip to content
Stefan Pejcic edited this page Dec 5, 2025 · 4 revisions

πŸ—Ώ Heimdall is an open-source WHOIS, DNS, Uptime monitor and status page, fully powered by GitHub Actions and GitHub Pages.

Easily monitor your domains and get alerts when:

  • ⏳ Domain (WHOIS) is set to expire within 30 days
  • πŸ”“ SSL certificate expires soon (example)
  • ⚠️ HTTP status code for website is >400 (example)
  • 🐌 Response time for website is >1000ms (example)
  • 🚨 IP address (A record) for domain changes (example)
  • 🚨 Nameservers for the domain are changed

relies entirely on GitHub Actions and GitHub Issues - no external services required.

Usage

  1. Click on Use this template
  2. Add your domains to domains.txt.
  3. Optional: If you want a status page, create Gitub Page
  4. That's it.

The workflow will:

  • Run automatically almost every mininute (or you can trigger it manually).
  • Check daily: WHOIS expiration date, SSL expiration date, Nameservers.
  • Check every time: A record, HTTP response time, Status code.
If a domain expires soon, IP changes, SSL expired or status code is >400, a GitHub issue will be opened: If the domain is later renewed, SSL renewed or status code changes, the issue will be automatically closed:

image
image

Demo

For live demo view: http://status.openpanel.com/status/

All monitors Single page

Why Heimdall?

In the summer of 2025, I got caught up with personal milestones: got married, became a father, bought an apartment - and ended up missing domain expiration emails. Several of my domains, including pcx3.com and plugins.club, expired, and years of work and projects were lost. 😞 I didn't want this to ever happen again, neither to me nor anyone else.

Since I use GitHub daily, I realized that if these were GitHub Issues, I probably wouldn't have missed them.

That's why I decided to use Upptime, an amazing tool that tracks uptime using GitHub Issues. However, I wasn't a fan of how it records statuses via git commits. I wanted JSON data that could easily feed into other tools like Grafana.

Enter Heimdall: it uses GitHub Actions to run scheduled checks, stores results in JSON files per domain, and presents the data on a front-end using simple HTML pages.

It notifies you whenever there are changes to your domain's WHOIS info, SSL certificate, or HTTP status/response.

Feel free to use it, experiment, break it, fork it - whatever you like!

TODO

  • detect nameserver changes and open issues
  • add ignore option for ip changes when cloudflare proxy is used
  • add ignore option for ip changes when vercel is used
  • detect registrar changes in whois info
  • record whois data
  • check A, AAAA, MX, SOA, TXT records
  • create screenshot when response code >400
  • tag in comment or auto-assign isuses
  • setup assigments per domain
  • if multiple domains (sub dir or domain) of same domain, reuse existing whois data
  • implement https://raw.githubusercontent.com/stefanpejcic/vercel-ipv4/refs/heads/main/list.txt

Clone this wiki locally