Files
2026-06-09 18:40:21 +02:00

4.3 KiB


title: Domain Watchdog created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, networking, monitoring, domains, python, whois] confidence: high contested: false sources: [https://selfh.st/apps/?tag=networking, https://github.com/domcowb/devops-net/tree/main/domain-watchdog]

Domain Watchdog 🐕

Outil Python de surveillance des dates d'expiration de domaines via requêtes WHOIS, avec alertes mail/webhook avant échéance.

Métadonnée Valeur
Site web https://github.com/domcowb/devops-net
GitHub https://github.com/domcowb/devops-net
License MIT
Langage Python
Étoiles 27
Dernière MAJ 2024
Catégorie cat-networking

Description

Domain Watchdog est un petit service Python conçu pour suivre la santé de votre portefeuille de noms de domaine. L'application interroge périodiquement les serveurs WHOIS des registres pour récupérer les dates d'expiration, les serveurs de noms actuels, le registrar, et l'état de chaque domaine. Lorsqu'un domaine approche de sa date d'échéance (seuil configurable, par exemple 30 ou 60 jours), une alerte est envoyée.

Les notifications supportent plusieurs canaux : email SMTP, webhooks génériques (compatibles Discord, Slack, Gotify, Ntfy), et journalisation locale. L'application peut tourner en mode « one-shot » via cron ou en mode démon avec boucle de sommeil interne. Une interface web minimaliste (Flask) permet de visualiser l'état de tous les domaines surveillés.

C'est l'outil idéal pour les auto-hébergés qui gèrent quelques dizaines de domaines (sites perso, projets, redirections) et qui veulent éviter le classique « oups, j'ai oublié de renouveler ». Bien plus léger qu'un observabilité complète type Uptime Kuma, il se concentre sur une seule métrique critique : la date d'expiration.

Installation

Docker Compose (recommandé)

services:
  domain-watchdog:
    image: ghcr.io/domcowb/domain-watchdog:latest
    container_name: domain-watchdog
    restart: unless-stopped
    environment:
      - TZ=Europe/Paris
      - CHECK_INTERVAL=86400  # 24h
      - ALERT_DAYS=30
      - SMTP_HOST=smtp.example.com
      - SMTP_PORT=587
      - SMTP_USER=alerts@example.com
      - SMTP_PASS=changeme
      - ALERT_TO=admin@example.com
      - WEBHOOK_URL=https://ntfy.example.com/domain-watchdog
    volumes:
      - ./data:/app/data
    ports:
      - "8085:5000"

Manuelle (Python)

git clone https://github.com/domcowb/devops-net.git
cd devops-net/domain-watchdog
python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
cp config.example.yml config.yml
python app.py

Configuration

Le fichier config.yml liste les domaines à surveiller :

domains:
  - example.com
  - monsite.fr
  - projet-perso.io
checks:
  interval: 86400
  alert_threshold_days: 30
notifications:
  email: { enabled: true, ... }
  webhook: { enabled: true, url: "..." }

Alternatives

  • Open Source : app-uptime-kuma (monitoring plus large), domain-expiry-tracker (Go), expired-domains (script)
  • Propriétaire : Domain.com monitoring, Namecheap PremiumDNS alerts, Pingdom (payants, peu de self-hosting)
  • Registrar-side : beaucoup de registrars (OVH, Gandi, Cloudflare) envoient déjà des alertes par email — Domain Watchdog sert surtout à unifier la surveillance multi-registrar.

Sécurité

  • Les credentials SMTP sont passés par variables d'environnement, jamais en clair dans le repo.
  • L'app ne fait que des requêtes WHOIS sortantes (port 43) — pas d'exposition réseau entrante critique.
  • Si l'interface web est exposée, placer derrière un reverse-proxy avec authentification (Authelia, Authentik).
  • Limiter l'accès au dossier data/ qui peut contenir un cache des réponses WHOIS.

Ressources

Pages Liées