Domain Expiry Monitor

July 10, 2026 ยท View on GitHub

Buy me a coffee

GitHub Action that monitors domain WHOIS and SSL certificate expiry. Creates GitHub Issues when your domains are about to expire.

Features

  • ๐Ÿ” WHOIS + SSL monitoring โ€” Checks both domain registration and TLS certificate expiry
  • ๐ŸŽซ Auto Issue tracking โ€” Creates/updates GitHub Issues with expiry details
  • ๐Ÿ”„ Auto-close on renewal โ€” Issues close automatically when domain is renewed
  • ๐Ÿท๏ธ Smart labeling โ€” Issues tagged by domain and severity (warning/critical/expired)
  • โšก Zero config server โ€” Free APIs: RDAP + crt.sh Certificate Transparency

Usage

Create .github/domains.json:

{
  "domains": [
    "example.com",
    "mysite.org"
  ],
  "whois_threshold": 30,
  "ssl_threshold": 14
}

Add to .github/workflows/domain-check.yml:

name: Domain Expiry Check
on:
  schedule:
    - cron: "0 8 * * *"  # Daily at 8am UTC
  workflow_dispatch:      # Manual trigger

jobs:
  check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: ipythoning/domain-expiry-action@v1
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}

Buy me a coffee

Option 2: Inline domains

- uses: ipythoning/domain-expiry-action@v1
  with:
    domains: "example.com, mysite.org, myapp.io"
    github_token: ${{ secrets.GITHUB_TOKEN }}

Inputs

InputRequiredDefaultDescription
domainsNoโ€”Comma-separated domains or JSON array
config_pathNo.github/domains.jsonPath to config file
whois_thresholdNo30Days before WHOIS expiry to alert
ssl_thresholdNo14Days before SSL expiry to alert
github_tokenNo${{ github.token }}Token for creating issues

Outputs

OutputDescription
alertsJSON array of alerts found
alert_countTotal number of alerts
issues_createdNew issues created
issues_updatedExisting issues updated
issues_closedIssues auto-closed (domain renewed)

How It Works

  1. WHOIS check via RDAP (Registration Data Access Protocol) โ€” HTTP-based, no TCP sockets needed
  2. SSL check via crt.sh Certificate Transparency logs โ€” free, no API key
  3. Issue management:
    • Labels: domain-expiry, domain:example.com, severity:warning|critical|expired
    • Issues are auto-closed when domain is renewed
    • Updated on each run with latest expiry data
  • Domain Monitor MCP Server โ€” MCP server for AI assistants. Ask Claude/Cursor/Windsurf to check domain health directly with npx domain-monitor-mcp-server. Zero API keys.
  • Domain Monitor Client โ€” Web dashboard for domain monitoring. Visual status overview, CSV export.

License

MIT

Buy me a coffee