selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

domain-watchdog logo

Self-host domain-watchdog

v1.4.6

Domain monitoring and backordering via RDAP

ReleaseOpen SourceAGPL-3.0
Updated11 hours ago
LanguagePHP
Setup difficultyAdvanced
ThemeDark mode
Stars
403
Port
8080 (HTTP web interface)
Requires
PostgreSQL, Redis/Valkey
Docker
maelgangloff/domain-watchdog
User registration screenDomain search interfaceCreate watchlist screenCreate connector screenTracking table view

What is domain-watchdog?

Domain Watchdog is a self-hosted application for monitoring domain names using the RDAP protocol. It tracks domain history including creation, renewals, transfers, and deletions. Users can create watchlists to monitor domains and receive notifications via email or webhooks (Slack, Mattermost, Discord). It supports automated domain backordering through integrations with registrars like OVH, Gandi, Namecheap, AutoDNS, Name.com, and custom EPP servers. The application is built with PHP/Symfony backend and React/TypeScript frontend, requires PostgreSQL and Redis/Valkey, with optional InfluxDB for metrics. It supports OAuth 2.0 for SSO authentication.

Should you self-host domain-watchdog?

domain-watchdog scores 51/100 on selfhost.directory (how scoring works) and ranks #20 of 51 in Monitoring & observability. It has 403 GitHub stars.

It shipped 9 stable releases in the past year. The latest, v1.4.6, came out on 24 October 2026. New versions land roughly every 3 weeks.

Setup is advanced: plan for several services and some ongoing maintenance. An official Docker image is available. It is AGPL-3.0-licensed and written mostly in PHP.

Its closest alternative on selfhost.directory is GoAccess (75/100, 21 094 stars). It scores higher overall, so compare the two before you pick. See domain-watchdog vs GoAccess side by side.

Features

  • Automated Domain Backordering
  • Deletion Forecasting
  • Domain Monitoring & Alerts
  • Email notifications
  • Historical Domain Timeline
  • iCal/RSS feeds
  • OAuth 2.0 SSO
  • RDAP domain search
  • REST API
  • Webhook Notifications

domain-watchdog README

How to configure domain-watchdog

  • APP_ENVdevApplication environment (dev/prod)

    Application environment (dev/prod)

    values: dev, prod

  • APP_SECRETcacb7ba341ce4afca66611c4956a4699Secret key for Symfony application

    Secret key for Symfony application

  • CORS_ALLOW_ORIGIN^https?://(localhost|127\.0\.0\.1)(:[0-9]+)?$Allowed CORS origins regex

    Allowed CORS origins regex

  • DATABASE_URLpostgresql://app:!ChangeMe!@127.0.0.1:5432/app?serverVersion=16&charset=utf8Database connection URL

    Database connection URL

  • HTTP_SECURE_COOKIEtrueSecure the session cookie (if HTTPS)

    Secure the session cookie (if HTTPS)

    values: true, false

  • INFLUXDB_BUCKETdomainwatchdogInfluxDB bucket name

    InfluxDB bucket name

  • INFLUXDB_ENABLEDfalseEnable the connection with InfluxDB

    Enable the connection with InfluxDB

    values: true, false

  • INFLUXDB_ORGdomainwatchdogInfluxDB organization

    InfluxDB organization

  • INFLUXDB_TOKENInfluxDB token

    InfluxDB token

  • INFLUXDB_URLhttp://localhost:8086InfluxDB URL

    InfluxDB URL

  • JWT_PASSPHRASE0456f23bb41aa797092f1422dc9295e9855c3518fa82969a10716bf09f99d24dJWT key passphrase

    JWT key passphrase

  • JWT_PUBLIC_KEY%kernel.project_dir%/config/jwt/public.pemPath to JWT public key

    Path to JWT public key

  • JWT_SECRET_KEY%kernel.project_dir%/config/jwt/private.pemPath to JWT private key

    Path to JWT private key

  • LIMITED_FEATURESfalseLimit certain features for users

    Limit certain features for users

    values: true, false

  • LIMIT_MAX_WATCHLIST0Maximum number of Watchlists per user

    Maximum number of Watchlists per user

  • LIMIT_MAX_WATCHLIST_DOMAINS0Maximum number of domains per Watchlist

    Maximum number of domains per Watchlist

  • LIMIT_MAX_WATCHLIST_WEBHOOKS0Maximum number of webhooks per Watchlist

    Maximum number of webhooks per Watchlist

  • LOCK_DSNredis://valkey:6379Lock store DSN (Redis)

    Lock store DSN (Redis)

  • MAILER_DSNnull://nullMailer DSN for sending emails

    Mailer DSN for sending emails

  • MAILER_SENDER_EMAILnotifications@example.comSender's email address

    Sender's email address

  • MAILER_SENDER_NAMEDomain WatchdogName of the sender of emails

    Name of the sender of emails

  • MESSENGER_ASYNC_TRANSPORT_DSNredis://valkey:6379/messages?lazy=1Async message transport DSN

    Async message transport DSN

  • MESSENGER_RDAP_HIGH_TRANSPORT_DSNredis://valkey:6379/messages-rdap-high?lazy=1High priority RDAP message transport DSN

    High priority RDAP message transport DSN

  • MESSENGER_RDAP_LOW_TRANSPORT_DSNredis://valkey:6379/messages-rdap-low?lazy=1Low priority RDAP message transport DSN

    Low priority RDAP message transport DSN

  • OAUTH_AUTHORIZATION_URLAuthorization URL (OAuth 2.0)

    Authorization URL (OAuth 2.0)

  • OAUTH_CLIENT_IDClient ID (OAuth 2.0) for using external SSO

    Client ID (OAuth 2.0) for using external SSO

  • OAUTH_CLIENT_SECRETClient secret (OAuth 2.0)

    Client secret (OAuth 2.0)

  • OAUTH_SCOPEScope (OAuth 2.0)

    Scope (OAuth 2.0)

  • OAUTH_TOKEN_URLToken URL (OAuth 2.0)

    Token URL (OAuth 2.0)

  • OAUTH_USERINFO_URLUser Info URL (OAuth 2.0)

    User Info URL (OAuth 2.0)

  • OUTGOING_IPOutgoing IPv4, needed for some providers

    Outgoing IPv4, needed for some providers

  • PUBLIC_RDAP_LOOKUP_ENABLEDfalseAllow unauthenticated domain name lookups

    Allow unauthenticated domain name lookups

    values: true, false

  • REGISTRATION_ENABLEDtrueEnable user registration

    Enable user registration

    values: true, false

  • REGISTRATION_VERIFY_EMAILfalseVerify email addresses during registration

    Verify email addresses during registration

    values: true, false

  • SSO_AUTO_REDIRECTfalseRedirect to the SSO auth URL

    Redirect to the SSO auth URL

    values: true, false

domain-watchdog releases & version history

More in Security

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…