All Projects → nwesterhausen → domain-monitor

nwesterhausen / domain-monitor

Licence: MIT license
Self-hosted server to monitor WHOIS records for specified domains.

Programming Languages

javascript
184084 projects - #8 most used programming language
Nunjucks
165 projects
shell
77523 projects

Projects that are alternatives of or similar to domain-monitor

Pyfunceble
The tool to check the availability or syntax of domain, IP or URL.
Stars: ✭ 143 (+297.22%)
Mutual labels:  whois, domain, domains
icinga-domain-expiration-plugin
Icinga2/Nagios plugin for checking domain expiration
Stars: ✭ 24 (-33.33%)
Mutual labels:  whois, domain, domains
Python Whois
Python module/library for retrieving WHOIS information of domains 💻❤
Stars: ✭ 128 (+255.56%)
Mutual labels:  whois, domain, domains
Funceble
[ARCHIVED] Please report to https://github.com/funilrys/PyFunceble.
Stars: ✭ 25 (-30.56%)
Mutual labels:  whois, domain, domains
Malicious Domain Whois
🔰 非法域名挖掘与画像系统
Stars: ✭ 69 (+91.67%)
Mutual labels:  whois, domain
Domainfuzz
Domain name permutation engine for detecting typo squatting, phishing and corporate espionage
Stars: ✭ 74 (+105.56%)
Mutual labels:  domain, domains
Domain Tool
微信域名拦截检测、QQ域名拦截检测:http://eson.vip ,查询有缓存,如需实时查询请自行部署。
Stars: ✭ 270 (+650%)
Mutual labels:  whois, domain
Whoisd
Openprovider WHOIS server/daemon
Stars: ✭ 69 (+91.67%)
Mutual labels:  whois, domains
Urlextractor
Information gathering & website reconnaissance | https://phishstats.info/
Stars: ✭ 341 (+847.22%)
Mutual labels:  whois, domain
Whois Parser
Go(Golang) module for domain whois information parsing.
Stars: ✭ 123 (+241.67%)
Mutual labels:  whois, domain
Whois
Go(Golang) module for domain and ip whois information query.
Stars: ✭ 153 (+325%)
Mutual labels:  whois, domain
Php Whois
PHP WHOIS provides parsed and raw whois lookup of domains and ASN routes. PHP 5.4+ and 7+ compatible
Stars: ✭ 179 (+397.22%)
Mutual labels:  whois, domain
ucsunivention
⚫ Curso GRÁTIS SAMBA-4 UCS Univention Core Free 5.x Domain Controller Active Directory Open Source
Stars: ✭ 29 (-19.44%)
Mutual labels:  domain, domains
available
Domain availability checking for Golang
Stars: ✭ 30 (-16.67%)
Mutual labels:  whois, domain
Whois
Intelligent WHOIS client
Stars: ✭ 244 (+577.78%)
Mutual labels:  whois, domains
domnibus
Access domain information via python and command line.
Stars: ✭ 16 (-55.56%)
Mutual labels:  whois, domain
Segnalibro
Save and comment your favorite links from the web. It's just a bookmarking application.
Stars: ✭ 14 (-61.11%)
Mutual labels:  self-hosted
stashbox
Your personal Internet Archive
Stars: ✭ 42 (+16.67%)
Mutual labels:  self-hosted
azcc
A toy C compiler, developed at seccamp2020.
Stars: ✭ 19 (-47.22%)
Mutual labels:  self-hosted
uptime-kuma
A fancy self-hosted monitoring tool
Stars: ✭ 27,425 (+76080.56%)
Mutual labels:  self-hosted

domain-monitor

Semaphore Status

Self-hosted server to monitor WHOIS records for specified domains, to help alert you of unwanted/unexpected changes to your domains and to help remind you when they need renewed.

If you use domain-monitor, make sure to abide by the terms of service of the TLD WHOIS server. Most forbid high-volume queries, marketing usage, and automated queries that are more than reasonably needed to register domain names.

To help you abide by WHOIS server TOS, domain-monitor barely queries the whois databases. domain-monitor acts in this way:

  1. Creates a reference whois file for the domain, including time queried
  2. Updates a whois reference if one of the following conditions is met:
  • Reference file becomes 9 months old
  • It's 3 months until the domain expiry date
  • It's 2 months until the domain expiry date
  • It's 1 month until the domain expiry date
  • It's 2 weeks until the domain expiry date
  • You tell domain-monitor you expect the WHOIS data to have changed (e.g. you renewed, transfered the domain, changed name servers)
  1. Checks periodically using DNS if the name servers match WHOIS reference file. If they don't, this triggers an alert (and a prompt to force update the WHOIS reference).

Installation

Docker

The docker image uses two volumes, be aware if you want to manually edit the configs or view the cached whois data.

Image Mount Contains
/app/config config.yaml and domain.yaml
/app/whois-data cached whois data in yaml files
Exposed Ports Used for
4201/tcp WEB GUI

Using Github Packages

docker run -p 127.0.0.1:4201:4201 ghcr.io/nwesterhausen/domain-monitor/server

Example docker-compose:

services:
  dm:
    image: ghcr.io/nwesterhausen/domain-monitor/server:latest
    ports:
    - 127.0.0.1:4201:4201/tcp
    volumes:
    - ./config:/app/config:rw
    - ./whois:/app/whois-data:rw
version: '3.9'

Using Docker Hub

Image is just nwesterhausen/domain-monitor, latest tag will be the most recent version, or pull by tagged version.

docker run -p 127.0.0.1:4201:4201 nwesterhausen/domain-monitor

Running with node

Should by OS agnostic. Requires nodejs >= 12

Simply clone this repository, install dependencies and node server/index.js. (Eleventy runs as a postinstall script.)

git clone https://github.com/nwesterhausen/domain-monitor.git
cd domain-monitor
yarn
node ./index.js

Configuration can be done via the configuration page of the web gui (default http://localhost:4201)

Config

There are two config files which you can edit yourself if you so choose.

config.yaml

A sample is provided as sample.config.yaml and on first run if you don't have an existing config.yaml, domain-monitor copies the sample into config.yaml and any changes you make on the webgui persist in config.yaml.

App Settings

Port

Set the port used by the http server (and WS)

app:
  port: 4201

Alerts

admin

Set what email should receive alerts from domain-monitor

sendalerts

Boolean, if false prevents all alerts from being sent.

alerts:
  admin: [email protected]
  sendalerts: yes

SMTP

Set smtp settings for domain-monitor to use to send email alerts. Nodemailer is on the backend, so these options reflect the options needed to set up nodemailer smtp transport.

smtp:
  host: localhost
  port: 25
  secure: false
  auth:
    user: [email protected]
    pass: SECRET-PASS

domain.yaml

Contains a single object (domains) which is a list of domains to monitor. Each domain has the following properties:

Property Type Description
name string Descriptive name for the domain entry
fqdn string FQDN for the domain in question. This is just host.tld
alerts bool If true, email alerts will be sent for this domain
enabled bool If true, whois lookups will be done (on the schedule described above) for this domain.
(todo) id string A generated ID string. If you are manually adding to domain.yaml do not add an ID, it will be generated by domain-monitor
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].