An easy-to-use, automated domain monitoring tool using GitHub Actions. This repository tracks domains that frequently change, keeping you informed about the latest updates.
Many websites regularly change their domains (e.g., from .com to .org to .net). This tool allows you to:
- ✅ Monitor multiple domains simultaneously
- ✅ Automatically detect redirects and domain changes
- ✅ Store a complete history of all domain changes for each monitor
- ✅ Run checks every 6 hours via GitHub Actions
- ✅ Automatically commit changes back to the repository
- Multi-Domain Support: Monitor as many domains as you want, each in its own directory.
- Automatic Checks: Runs every 6 hours via a GitHub Actions cron job.
- Redirect Detection: Follows HTTP redirects to find the final, effective URL.
- Versioned History: Stores all domain changes with timestamps in a
history.txtfile for each monitor. - Easy Access: The current domain for any monitor is always available in a simple
domain.txtfile. - Automatic Commits: All detected changes are automatically committed and pushed.
The repository is organized into individual monitors. Each subdirectory inside monitors/ represents a separate domain being tracked.
.
├── .github/
│ └── workflows/
│ └── check_domains.yml # GitHub Actions Workflow for all monitors
├── monitors/
│ ├── megakino/ # Example monitor directory
│ │ ├── domain.txt # Contains the current domain (e.g., megakino.lol)
│ │ └── history.txt # Logs all historical changes
│ └── another-service/ # Add another monitor just by creating a new folder
│ ├── domain.txt # current-domain.com
│ └── history.txt # ...
└── README.md # This file
- Workflow Trigger: The GitHub Actions workflow runs on a schedule (every 6 hours) or can be started manually.
- Iterate Monitors: The script loops through each subdirectory in the
monitors/directory. - Read Domain: For each monitor, it reads the current domain from its
domain.txtfile. - Check for Redirects: An HTTP request follows all redirects to determine the final URL.
- Compare & Update: If the final domain is different from the stored one:
- The
domain.txtfile is updated with the new domain. - A new entry with a timestamp is added to the
history.txtfile.
- The
- Commit Changes: If any monitor was updated, all changes are bundled into a single commit and pushed to the repository.
Adding a new domain is as simple as creating a new folder and a file.
-
Create a Directory: Create a new subdirectory inside the
monitors/folder. The name of the directory will be the name of your monitor (e.g.,my-service).mkdir monitors/my-service
-
Create the Domain File: Inside your new directory, create a file named
domain.txtthat contains the initial domain you want to track.echo "example.com" > monitors/my-service/domain.txt
That's it! The GitHub Action will automatically pick up the new monitor on its next run. An empty history.txt will be created and populated automatically on the first change.
You can easily fetch the current domain for any monitor programmatically using GitHub's raw content URL. This is useful for integrating the latest domain into your own scripts or applications.
The URL format is:
https://raw.githubusercontent.com/YOUR_USERNAME/YOUR_REPOSITORY/main/monitors/MONITOR_NAME/domain.txt
Example:
To get the current domain for the megakino monitor, you could use curl:
curl https://raw.githubusercontent.com/your-username/new-domain-check/main/monitors/megakino/domain.txtmegakino.lol
2025-12-24 13:26:59 UTC | megakino.do → megakino.lol
2025-12-26 12:36:45 UTC | megakino.com → megakino.do
Contributions are welcome! Feel free to create issues or pull requests for bug fixes, new features, or documentation improvements.
This project is licensed under the MIT License.
This tool is intended for monitoring purposes. Please respect the robots.txt and terms of service of the monitored websites.
Created with ❤️ and GitHub Actions