---
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é)

```yaml
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)

```bash
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 :

```yaml
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](https://github.com/BrandwatchLtd/domain-expiry-tracker) (Go), [expired-domains](https://github.com/zerodotio/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

- [selfh.st — Networking](https://selfh.st/apps/?tag=networking)
- [GitHub domcowb/devops-net](https://github.com/domcowb/devops-net)
- [RFC 3912 — WHOIS protocol](https://www.rfc-editor.org/rfc/rfc3912)

## Pages Liées

- [[cat-networking]]
- [[recettes-docker-compose]]
- [[app-uptime-kuma]] — monitoring uptime plus large
