domain-watchdog

An app that uses RDAP to collect publicly available info about domains, track their history, and purchase them

https://github.com/maelgangloff/domain-watchdog

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.8%) to scientific vocabulary

Keywords

api domain rdap registrar registry self-hosted selhosted tracking watchdog whois
Last synced: 6 months ago · JSON representation ·

Repository

An app that uses RDAP to collect publicly available info about domains, track their history, and purchase them

Basic Info
Statistics
  • Stars: 250
  • Watchers: 4
  • Forks: 12
  • Open Issues: 12
  • Releases: 30
Topics
api domain rdap registrar registry self-hosted selhosted tracking watchdog whois
Created over 1 year ago · Last pushed 6 months ago
Metadata Files
Readme Contributing Funding License Code of conduct Citation Security

README.md

Domain Watchdog

Domain Watchdog

Your companion in the quest for domain names 🔍
domainwatchdog.eu »


Domain Watchdog is an app that uses RDAP to collect publicly available info about domains, track their history, and purchase them. For more information please check the wiki !

Why use it?

  • Historical Tracking: Know the history of a domain name, from its inception to its release into the public domain.
  • Detailed Monitoring: Follow the evolution of a domain name and the entities that manage it in detail.
  • Auto-purchase Domain: You want the domain name of your dreams, but it is already taken? Domain Watchdog detects the deletion of the domain name on WHOIS and can trigger the purchase of the domain name via a provider's API

Although the RDAP and WHOIS protocols allow you to obtain precise information about a domain, it is not possible to perform a reverse search to discover a list of domain names associated with an entity. Additionally, accessing a detailed history of events (ownership changes, renewals, etc.) is not feasible with these protocols.

Install

[!TIP] For more details on the installation procedure, please refer to INSTALL.md.

Docker Deployment

  1. Clone the repository
  2. Modify environment variables (.env) and add static files to customize your instance (see INSTALL.md)
  3. Pull the latest version of the Domain Watchdog image from Docker Hub. shell docker compose pull
  4. Start the project in production environment. If you want, you can also build the Docker image to use yourself. shell docker compose up

By default, the container listens on http://localhost:8080, but you can configure this in environment variables. See the Docker Compose file.

Features

Auto-purchase domain

A connector is a way to order a domain name. It is important to mention that this project does not act as a payment intermediary. Indeed, the user's credentials are directly used to enable the purchase via the provider's API. To this end, the user gives his consent to define the legal framework in which the use of his account with the provider's API will be made.

The table below lists the supported API connector providers:

| Provider | Supported | |:--------------------------------------------------------------------------:|:----------------:| | OVH | Yes | | GANDI | Yes | | NAMECHEAP | Yes | | AUTODNS | Yes | | NAME.COM | Yes | | Custom EPP Server | EXPERIMENTAL |

If a domain has expired and a connector is linked to the Watchlist, then Domain Watchdog will try to order it via the connector provider's API.

Note: If the same domain name is present on several Watchlists, it is not possible to predict in advance which user will win the domain name. The choice is left to chance.

Monitoring

Watchlist Diagram

A watchlist is a list of domain names, triggers and possibly an API connector.

They allow you to follow the life of the listed domain names and send you a notification when a change has been detected.

A notification to the user is sent when a new event occurs on one of the domain names in the Watchlist. This can be an email or a chat via Webhook (Slack, Mattermost, Discord, ...). An iCalendar export of domain events is possible.

RDAP search

The latest version of the WHOIS protocol was standardized in 2004 by RFC 3912.[^1] This protocol allows anyone to retrieve key information concerning a domain name, an IP address, or an entity registered with a registry.

ICANN launched a global vote in 2023 to propose replacing the WHOIS protocol with RDAP. As a result, registries and registrars will no longer be required to support WHOIS from 2025 (WHOIS Sunset Date).[^2]

Domain Watchdog uses the RDAP protocol, which will soon be the new standard for retrieving information concerning domain names.

Disclaimer

[!IMPORTANT] * Domain Watchdog is an opensource project distributed under GNU Affero General Public License v3.0 or later license * In the internal operation, everything is done to perform the least possible RDAP requests: rate limit, intelligent caching system, etc. * Please note that this project is NOT affiliated IN ANY WAY with the API Providers used to order domain names. * The project installers are responsible for the use of their own instance. * Under no circumstances will the owner of this project be held responsible for other cases over which he has no control.

Useful documentation

[!NOTE] - RFC 7482 : Registration Data Access Protocol (RDAP) Query Format - RFC 7483 : JSON Responses for the Registration Data Access Protocol (RDAP) - RFC 7484 : Finding the Authoritative Registration Data (RDAP) Service

Licensing

This source code of this project is licensed under GNU Affero General Public License v3.0 or later. Contributions are welcome as long as they do not contravene the Code of Conduct.

[^1]: RFC 3912 : WHOIS Protocol Specification. (2004). IETF Datatracker. https://datatracker.ietf.org/doc/html/rfc3912 [^2]: 2023 Global Amendments to the Base gTLD Registry Agreement (RA), Specification 13, and 2013 Registrar Accreditation Agreement (RAA) - ICANN. (2023). https://www.icann.org/resources/pages/global-amendment-2023-en

Owner

  • Name: Maël Gangloff
  • Login: maelgangloff
  • Kind: user
  • Location: Nancy, France
  • Company: Polytech Nancy | @PolytechSN

Student at Polytech Nancy - University of Lorraine, France | Discord: maelgangloff#1907

Citation (CITATION.cff)

cff-version: 1.2.0
title: Domain Watchdog
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Maël
    family-names: Gangloff
    email: contact@maelgangloff.fr
    orcid: 'https://orcid.org/0000-0002-7729-724X'
identifiers:
  - type: url
    value: >-
      https://github.com/maelgangloff/domain-watcher/releases
    description: Release of Domain Watchdog
repository-code: 'https://github.com/maelgangloff/domain-watchdog'
abstract:  An app that uses RDAP to collect publicly available info about domains, track their history, and purchase them
keywords:
  - DOMAIN
  - RDAP
  - WHOIS
license: AGPL-3.0-or-later
license-url: 'https://github.com/maelgangloff/domain-watchdog/blob/master/LICENSE'

GitHub Events

Total
  • Create event: 19
  • Commit comment event: 4
  • Release event: 10
  • Issues event: 29
  • Watch event: 59
  • Delete event: 4
  • Issue comment event: 35
  • Push event: 214
  • Pull request review event: 8
  • Pull request review comment event: 16
  • Pull request event: 11
  • Fork event: 2
Last Year
  • Create event: 19
  • Commit comment event: 4
  • Release event: 10
  • Issues event: 29
  • Watch event: 59
  • Delete event: 4
  • Issue comment event: 35
  • Push event: 214
  • Pull request review event: 8
  • Pull request review comment event: 16
  • Pull request event: 11
  • Fork event: 2

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 11
  • Total pull requests: 7
  • Average time to close issues: about 1 month
  • Average time to close pull requests: about 7 hours
  • Total issue authors: 8
  • Total pull request authors: 3
  • Average comments per issue: 0.64
  • Average comments per pull request: 0.0
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 10
  • Pull requests: 7
  • Average time to close issues: 3 days
  • Average time to close pull requests: about 7 hours
  • Issue authors: 7
  • Pull request authors: 3
  • Average comments per issue: 0.7
  • Average comments per pull request: 0.0
  • Merged pull requests: 2
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • maelgangloff (12)
  • AlejandroAkbal (3)
  • kevinoconnor7 (3)
  • extremeshok (2)
  • MadWalnut (1)
  • Starmania (1)
  • delize (1)
  • starsoccer (1)
  • vinceh121 (1)
  • jobr97 (1)
  • zypA13510 (1)
  • daerup (1)
  • emhl (1)
Pull Request Authors
  • maelgangloff (6)
  • vinceh121 (5)
  • anarion80 (2)
  • swarnat (2)
  • extremeshok (1)
  • Azrotho (1)
  • Vilerio (1)
  • zypA13510 (1)
Top Labels
Issue Labels
enhancement (11) bug (4) question (3)
Pull Request Labels
enhancement (7) bug (3) Connector Provider (1)

Dependencies

.github/workflows/symfony.yml actions
  • actions/checkout v3 composite
  • shivammathur/setup-php v2 composite
package.json npm
  • @babel/core ^7.17.0 development
  • @babel/preset-env ^7.16.0 development
  • @babel/preset-react ^7.24.7 development
  • @fontsource/noto-color-emoji ^5.0.27 development
  • @symfony/webpack-encore ^4.0.0 development
  • @types/axios ^0.14.0 development
  • @types/jsonld ^1.5.15 development
  • @types/punycode ^2.1.4 development
  • @types/react ^18.3.3 development
  • @types/react-dom ^18.3.0 development
  • @types/react-responsive ^8.0.8 development
  • @types/vcf ^2.0.7 development
  • antd ^5.19.3 development
  • axios ^1.7.2 development
  • core-js ^3.23.0 development
  • html-loader ^5.1.0 development
  • jsonld ^8.3.2 development
  • punycode ^2.3.1 development
  • react ^18.3.1 development
  • react-dom ^18.3.1 development
  • react-responsive ^10.0.0 development
  • react-router-dom ^6.25.1 development
  • regenerator-runtime ^0.13.9 development
  • snarkdown ^2.0.0 development
  • ts-loader ^9.5.1 development
  • ttag ^1.8.7 development
  • ttag-cli ^1.10.12 development
  • typescript ^5.5.3 development
  • vcf ^2.1.2 development
  • webpack ^5.74.0 development
  • webpack-cli ^4.10.0 development
  • webpack-notifier ^1.15.0 development
  • remove ^0.1.5
yarn.lock npm
  • 954 dependencies
composer.json packagist
  • friendsofphp/php-cs-fixer ^3.61 development
  • phpstan/phpstan ^1.11 development
  • phpunit/phpunit ^9.5 development
  • symfony/browser-kit 7.1.* development
  • symfony/css-selector 7.1.* development
  • symfony/debug-bundle 7.1.* development
  • symfony/maker-bundle ^1.0 development
  • symfony/phpunit-bridge ^7.1 development
  • symfony/stopwatch 7.1.* development
  • symfony/web-profiler-bundle 7.1.* development
  • api-platform/core ^3.3
  • doctrine/dbal ^3
  • doctrine/doctrine-bundle ^2.12
  • doctrine/doctrine-migrations-bundle ^3.3
  • doctrine/orm ^3.2
  • eluceo/ical ^2.14
  • ext-ctype *
  • ext-iconv *
  • knpuniversity/oauth2-client-bundle ^2.18
  • lexik/jwt-authentication-bundle ^3.1
  • nelmio/cors-bundle ^2.5
  • ovh/ovh ^3.3
  • php >=8.2
  • phpdocumentor/reflection-docblock ^5.4
  • phpstan/phpdoc-parser ^1.29
  • protonlabs/vobject ^4.31
  • psr/http-client ^1.0
  • symfony/asset 7.1.*
  • symfony/asset-mapper 7.1.*
  • symfony/console 7.1.*
  • symfony/doctrine-messenger 7.1.*
  • symfony/dotenv 7.1.*
  • symfony/expression-language 7.1.*
  • symfony/flex ^2
  • symfony/form 7.1.*
  • symfony/framework-bundle 7.1.*
  • symfony/http-client 7.1.*
  • symfony/intl 7.1.*
  • symfony/lock 7.1.*
  • symfony/mailer 7.1.*
  • symfony/mime 7.1.*
  • symfony/monolog-bundle ^3.0
  • symfony/notifier 7.1.*
  • symfony/process 7.1.*
  • symfony/property-access 7.1.*
  • symfony/property-info 7.1.*
  • symfony/rate-limiter 7.1.*
  • symfony/runtime 7.1.*
  • symfony/scheduler 7.1.*
  • symfony/security-bundle 7.1.*
  • symfony/serializer 7.1.*
  • symfony/stimulus-bundle ^2.18
  • symfony/string 7.1.*
  • symfony/translation 7.1.*
  • symfony/twig-bundle 7.1.*
  • symfony/uid 7.1.*
  • symfony/ux-turbo ^2.18
  • symfony/validator 7.1.*
  • symfony/web-link 7.1.*
  • symfony/webpack-encore-bundle ^2.1
  • symfony/yaml 7.1.*
  • symfonycasts/verify-email-bundle *
  • twig/extra-bundle ^2.12|^3.0
  • twig/twig ^2.12|^3.0
composer.lock packagist
  • 172 dependencies