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-monitor logo

Self-host domain-monitor

v1.1.5

Domain expiration monitoring with multi-channel alerts

ReleaseOpen SourceMIT
Updated6 months ago
LanguageTwig
Setup difficultyModerate
MobileResponsive
Stars
264
Requires
MySQL/MariaDB
Install with Build from Source

What is domain-monitor?

Domain Monitor is a self-hosted PHP application that watches domain expiration dates and SSL certificate validity. It pulls WHOIS and RDAP data for over 1,400 top-level domains using IANA integration. The system sends alerts through multiple channels including Email via SMTP, messaging platforms like Telegram and Discord, team chat tools such as Slack and Mattermost, push notification service Pushover, and custom webhooks — all organized into notification groups. It includes a dashboard, notification history, automated cron checks with adjustable intervals, secure authentication with TOTP two-factor authentication, session tracking with geolocation, bulk domain operations, and configurable alert thresholds. Setup requires PHP 8.1 or newer, a MySQL or MariaDB database, Composer, and a web server like Apache or Nginx. A web-based installer handles database creation and initial admin credentials. No official Docker images are provided.

domain-monitor alternatives

Should you self-host domain-monitor?

domain-monitor scores 48/100 on selfhost.directory (how scoring works) and ranks #67 of 104 in Monitoring & observability. It has 264 GitHub stars.

It shipped 6 stable releases in the past year. The latest, v1.1.5, came out on 8 March 2026. New versions land roughly every 2 weeks.

Setup is moderate: expect some configuration beyond a single command. It is MIT-licensed and written mostly in Twig.

Its closest alternative on selfhost.directory is grafana (90/100, 77 585 stars). It scores higher overall, so compare the two before you pick. See domain-monitor vs grafana side by side.

Features

  • Automated Monitoring
  • Auto WHOIS Refresh
  • Bulk Operations
  • Domain Management
  • Flexible Alert Thresholds
  • In-App Notification Center
  • Multi-channel notifications
  • Notification Groups
  • Notification Logs
  • Real-time dashboard
  • Session Management
  • TLD Registry
  • Two-factor Authentication (2FA)
  • WHOIS/RDAP Lookup

domain-monitor README

🌐 Domain Monitor

A powerful, self-hosted domain expiration monitoring system with multi-channel notifications

PHP Version License PRs Welcome

A modern PHP MVC application for monitoring domain expiration dates and sending notifications through multiple channels (Email, Telegram, Discord, Slack, Mattermost, Pushover, Webhook). Never lose a domain again with automated monitoring and timely alerts.

✨ Features

How to install domain-monitor

Install domain-monitor with Build from Source

Environment variables
APP_ENV, APP_ENCRYPTION_KEY, DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME, DB_PASSWORD, SESSION_LIFETIME, SESSION_COOKIE_HTTPONLY, SESSION_COOKIE_SECURE, SESSION_COOKIE_SAMESITE
1. Clone the Repository
git clone https://github.com/Hosteroid/domain-monitor.git
cd domain-monitor
2. Install Dependencies
composer install
3. Configure Environment

Copy the example environment file:

# Linux/Mac
cp env.example.txt .env

# Windows
copy env.example.txt .env

Edit .env and configure your settings:

# Database
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=domain_monitor
DB_USERNAME=root
DB_PASSWORD=your_password
4. Create Database

Create a MySQL database:

CREATE DATABASE domain_monitor CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
5. Run Web Installer

Configure your web server (Apache/Nginx) to point to the public directory, then visit your domain in a browser. You'll be automatically redirected to the installer which will create database tables, generate encryption key, and let you set admin credentials.

6. Import TLD Registry Data (Optional)

After logging in, go to TLD Registry page and click Import TLDs to download RDAP and WHOIS server data for 1,400+ TLDs from IANA.

7. Configure Cron Job

Add a cron job to check domains periodically (copy exact command from Settings → System):

0 9 * * * /usr/bin/php /your/actual/path/cron/check_domains.php

Requires PHP 8.1+, MySQL 5.7+/MariaDB 10.3+, Composer, Apache/Nginx with mod_rewrite, Cron

How to configure domain-monitor

  • APP_ENVdevelopmentApplication environment: 'development' (shows detailed debug pages) or 'production' (shows clean error pages)

    values: development, production

  • DB_HOSTlocalhostDatabase host
  • DB_PORT3306Database port
  • DB_DATABASEdomain_monitorDatabase name
  • DB_USERNAMErootDatabase username

domain-monitor releases & version history

More in Monitoring & observability

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…