DomainMOD: a self-hosted register of your domains, SSL certificates and host accounts
DomainMOD is an open source application written in PHP & MySQL used to manage your domains and other internet assets in a central location. DomainMOD also includes a Data Warehouse framework that allows you to import your web server data so that you can view, export, and report on your live data.
At a glance
- What is it?
- DomainMOD is a PHP and MySQL application that keeps domain names, host accounts, DNS profiles and SSL certificates in one place, with expiry alerts and a data warehouse that imports web server logs. Its data warehouse side only understands WHM/cPanel servers.
- Who is it for?
- Adopt DomainMOD if you hold dozens of domains across shared hosting accounts and need one inventory with expiry alerts you can act on, and skip it if your servers are not WHM/cPanel, since the data warehouse import supports only that platform.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 17 days ago.
- What is it written in?
- Mainly PHP, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
DomainMOD is an asset register, not a registrar
DomainMOD is described as an open source application written in PHP and MySQL used to manage your domains and other internet assets in a central location. The wording matters, because it does not renew anything and it does not talk to registrars on your behalf. What it does is hold the inventory: the domain names, the hosting accounts they sit on, the DNS profiles, the SSL certificates and their expiry dates, and the various accounts and passwords that accumulate around a shared hosting setup. The top level of the repository tree shows that structure clearly, with separate directories for domains, ssl, segments, queue, reporting, bulk, admin, install, settings, maintenance and feedback, plus the cron.php entry point, classes and helpers directories, and a vendor directory. The second half of the product is the Data Warehouse framework, which lets you import your web server data so that you can view, export and report on live data, and the README is direct that the Data Warehouse currently supports web servers running WHM/cPanel only. That single platform restriction is the most important limitation in the whole project and it is stated early rather than buried.
Four installation routes, and the shared hosting audience is obvious
The README describes four download options, and they point at who the project is built for. The first is Docker, with an official container on Docker Hub. The second is a .zip file from the project download page, which you upload to your web server and unpack. The third is Git, and this one requires Git on your server.
git clone https://github.com/domainmod/domainmod.gitThe fourth is Softaculous, the hosting industry auto-installer, which integrates with control panels including cPanel, Plesk, DirectAdmin, InterWorx and H-Sphere, and the README instructs you to open Softaculous, search for DomainMOD and click Install Now. The stated requirement set is PHP 8.1 to 8.2.9 with MariaDB 10.4 to 11.1.2 or MySQL 5.7 to 8.1.0, the PHP extensions PDO for the database plus cURL, OpenSSL and gettext, and the PHP setting allow_url_fopen enabled. Those requirements are narrow in a useful way. The PHP version range excludes anything older, which matters for a project that stores credentials, and the extension list tells you the application makes outbound HTTP calls and reads localised strings. The project also ships a live demo at demo.domainmod.org, and the README explains the motivation plainly, so that you do not have to install it first to find out whether it fits.
Four manual install steps and a ten minute cron
If you took the zip or the Git route, the installation is a short manual sequence. The README lays it out as four steps.
1. Create a MySQL database that will be used to store DomainMOD's data.
2. In the '_includes' folder, copy config.SAMPLE.inc.php to config.inc.php and then update config.inc.php to reflect your web server's settings.
3. In a web browser, visit the URL where you just installed DomainMOD, enter the requested information, and then click the Install button. For example, example.com/domainmod/. After a few seconds a message will appear letting you know that the installation was successful.
4. Setup the below cron job on your web server.Step two is where the database connection lives, in a config file you copy from a sample, which is the conventional pattern for a PHP application of this vintage and keeps credentials out of the versioned tree. Step three hands over to a browser installer that writes the schema and the admin account. Step four is the piece people forget, and it is not optional. DomainMOD includes a Task Scheduler that runs system jobs at specified times and keeps the installation up to date, and it also notifies you of important information such as emailing you about upcoming domain and SSL certificate expirations. The scheduler needs a cron entry, and the README specifies the file and the frequency.
Filename: /cron.phpThe note says the file should be executed every ten minutes, and separately that if you installed via Docker the cron job is set up and running automatically inside the container, so there is nothing to configure by hand. The scheduler also gates features you would otherwise expect to work immediately, since the README says it enables features that you otherwise would not be able to use.
The security guidance is blunt about where the real risk sits
The README does not pretend that installing the software secures it. It says that although the best has been done to secure DomainMOD, there are many factors that could cause security holes, such as running on insecure hardware, software like PHP and MySQL having out-of-date versions with known vulnerabilities, and easy-to-guess passwords. The recommended steps follow from that. Secure the installation with an SSL certificate. Never use easy-to-guess passwords. Add HTTP authentication on the installation directory as an extra layer even though DomainMOD has its own authentication system. Do not host it on a public website or on an easy-to-guess URL, and if you do host it publicly, block crawlers in robots.txt, otherwise the DomainMOD URL may end up in public search results. Treat the URL like a password and do not give it to anyone who does not need access. And always use the most up-to-date version. The fourth item is the subtle one, since the ability to store account passwords and API keys exists in the product, but the README says to use it at your own risk and that the information is fairly secure on a local computer while the risk is much higher on a server reachable from the outside. Saving API keys is necessary if you want to use the Domain Queue, and the recommendation is to save them only temporarily and remove them afterwards.
What the domain and SSL modules actually track
The directory layout gives a fair view of the feature set, since there are dedicated areas for domains, ssl, segments and the reporting layer, plus a queue for the Domain Queue that the security section refers to, and a bulk directory that suggests bulk operations on records. The segments area is worth noting because it appears as a first-class object alongside domains and certificates rather than as a field on a domain, which is how you would model hosting accounts, and the reporting directory is what turns the inventory into something you can export and summarise. The Project Demo and Project Home links, together with a separate documentation area at domainmod.org/docs and a source link, indicate that the user-facing documentation lives on the project site rather than in the repository README, and the README here is the quick orientation rather than the manual. The data warehouse side sits on top of this inventory: it imports web server data so you can view, export and report on live traffic rather than only on what you typed in by hand. For a shared hosting operator that is genuinely the differentiating feature, since the domain list is a spreadsheet problem and the traffic view is not.
A spreadsheet or a registrar dashboard instead
The alternatives split into two very different groups. The first is no software at all, meaning a spreadsheet of domains, hostnames, nameservers, registrar logins and certificate expiry dates, with calendar reminders set by hand. That approach has real advantages for a small portfolio. It costs nothing, it has no attack surface, it cannot be left unpatched on a forgotten shared host, and it never surprises you with an upgrade. What it loses is the checking. A spreadsheet does not warn you that a certificate is about to expire unless someone maintains that column, and the renewal date is exactly the kind of value that goes stale. The second group is the registrar and hosting provider dashboards, which already show you your domains and often their expiry dates. Those are authoritative for what that registrar knows, and they are the natural place to renew. The limitation is that they are organised per account, so a portfolio spread across a dozen registrars means a dozen places to look, and they say nothing about your hosting or DNS accounts. DomainMOD sits in the gap between the two. It cannot renew a domain and it is not authoritative about anything, but it is a single inventory across accounts with automated expiry notification, which is precisely the job a spreadsheet does badly.
Release history, hosting and the current maintenance picture
The recent releases are v4.23.0 dated 2025-01-04, v4.22.0 dated 2025-01-01 and v4.21.0 dated 2024-03-03, so the versioned line moved twice in the first days of January 2025 and then went quiet for a while. The repository is not archived and the last push was on 2026-10-06, which tells you work is still landing in the tree, but the gap between the last tag and the last commit is something to weigh, especially because the README explicitly says to always use the most up-to-date version to pick up security fixes. The repository carries a CHANGELOG, a SECURITY.md, a CODE_OF_CONDUCT.md, an ACR.md, a .scrutinizer.yml for static analysis, a version.txt file in the tree root, and an update.php page that is presumably the in-application upgrade path. There is also an ACR badge in the README, which points to a document about AI code rating, and the repository topics include ai-code-rating alongside the usual self-hosted, whm and cpanel tags. On licensing, the project is GPL-3.0, which means a modified version distributed to others has to carry the same licence, and it suits the audience here, since the people deploying DomainMOD are hosting operators and the ones embedding it in a commercial product are not the intended case.
Editorial conclusion
Adopt DomainMOD if you hold dozens of domains across shared hosting accounts and need one inventory with expiry alerts you can act on, and skip it if your servers are not WHM/cPanel, since the data warehouse import supports only that platform. Verify first that your PHP version falls in the supported 8.1 to 8.2.9 range and your database in the listed MariaDB or MySQL ranges, that your cron can run /cron.php every ten minutes, and that you have a backup of the installation directory and database before any upgrade.
Frequently asked questions
What are the server requirements for DomainMOD?
The README lists PHP 8.1 to 8.2.9 with MariaDB 10.4 to 11.1.2 or MySQL 5.7 to 8.1.0, the PHP extensions PDO, cURL, OpenSSL and gettext, and the PHP setting allow_url_fopen enabled.
Which web servers can DomainMOD import log data from?
Only WHM/cPanel servers. The README states that the Data Warehouse currently supports web servers running WHM/cPanel, and the import is what lets you view, export and report on live web server data.
How does DomainMOD notify me about expiring domains and SSL certificates?
Its Task Scheduler runs system jobs on a schedule and emails you about upcoming domain and SSL certificate expirations. It needs a cron entry for /cron.php running every ten minutes, which the Docker container sets up automatically.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/domainmod-domainmod)Was this useful?