Files
Beszel/DOMAIN_INTEGRATION_PLAN.md
T

1.4 KiB

Domain Locker + Beszel Integration Plan

Overview

Integrate Domain Locker's domain expiry monitoring as a third dashboard section in Beszel:

  1. Device Monitoring (Systems)
  2. Website Monitoring (Monitors)
  3. Domain Monitoring (Domains)

Features to Port

  • WHOIS lookup (registrar, dates, status)
  • SSL certificate monitoring
  • DNS records (NS, MX, TXT)
  • IP addresses (IPv4/IPv6)
  • Host info (location, ISP)
  • Domain valuation
  • Tags
  • Change history
  • Auto-recognition when adding website monitors

Implementation Steps

1. Backend (Go)

  • Domain entity types
  • WHOIS service with multiple fallback methods
  • Domain collections (domains, domain_history)
  • Domain scheduler for expiry checks
  • Domain API handlers

2. Frontend (React/TypeScript)

  • Domain API client
  • Domain table component
  • Domain dialog (add/edit with WHOIS auto-fill)
  • Dashboard integration (third section)
  • Link to website monitors

3. Integration

  • Optional domain tracking when creating website monitors
  • Registrar recognition fixes
  • Favicon fetching

File Structure

beszel/internal/
├── entities/domain/domain.go
├── hub/domains/
│   ├── whois/
│   │   └── lookup.go
│   ├── scheduler.go
│   └── api.go
└── site/src/
    ├── lib/domains.ts
    └── components/
        └── domains-table/
            ├── domains-table.tsx
            └── domain-dialog.tsx