Domainder is a simple console based tool written in Rust.
It enables reminding you (via email) about domains going to expire.
The beauty of this solution is the domain expiry is fetched via whois so for most domains you don't need to specify an
expiry date.
For two reasons: Either you want to continue using the domain or might have forgotten about it and don't need it anymore. And because I wanted to learn a bit more about Rust by completing a Rust app entirely on my own.
First, to enable sending emails you should add an email account (smtp). For this, copy config/email.example.json
to config/email.json.
Then, add your email address, the server's (smtp) hostname, the account's username and password to config/email.json.
Second, if not done already you should compile the app via cargo build --release.
Now you can find the executable domainder in target/release/.
Add- to add a domain with following parameters:--email, --domain, --time. Whiletimeis optional.Remind- to actually remind you via email about an expiring domain
Here's an example of how to add a domain to remind you about:
domainder add --email you@domain.tld --domain yourdomain.com [--time "1w"]
The available parameters are:
--emailto specify the email address the reminder should send the reminder to--domainto specify the domain to remind about--timeto specify the time range prior the expiry date you should be reminded about the expiry. Default value here is1m. You can use any value like[1-9]mfor months,[1-9]wfor weeks and[1-9]dfor days. Be aware that months are calculated as 4 weeks internally right now, so it's not a 100% precise.
Now you have added your domains you can run the command for reminding: domainder remind.
Of course, this doesn't make sense when you have to run it manually, so you should add it as a cronjob like:
0 6 * * * /path/to/domainder remindSo every day at 6am it will run the reminding job and send an email if the email is about to expire.
- Updating: Right now (but planned) you can't update existing reminders, just overwrite (via add)
- Multiple reminder emails: Once you're in the reminding time range you will be reminded every day. There's a solution planned for it.
- Some european tlds (like .de) don't give you an expiry date via whois. So this won't really work right now for some tlds.
- Mark a domain as reminded after first reminder has been successfully sent
- Add command for updating existing reminders
- Allow adding multiple domains per single add
- Remove outdated (not registered domains) automatically
- Add
deletecommand to remove domains from reminder list - Find a solution for european (i.e. .de) tlds (another optional parameter?)
- We may want to use i.e. https://crates.io/crates/check-if-email-exists for checking if the email address is valid/exists
- Web frontend
- Remind via slack, messengers like [Telegram, WhatsApp?, ...], discord, twitter, mastodon, ...