This application is a scraper built with puppeteer combined to a discord bot that list your domains, their status and how many days it left before it needs a renew. This application will also auto renew you free domains when it's possible. (auto renewal is deactivated by default for paid domains, but in a future update you'll be able to manage auto renew with discord commands)
It is highly recommended using this app under a process manager like pm2, as it become a background process that will run on your server. If you don't have a dedicated server that is always on, consider using Heroku.
Due to lack of accessible data on freenom and to avoid unwanted behavior, please be sure at the first start that there is no free domains renewable.
You can take a look here My Freenoms Domains.
If you have free domain that is renewable please renew it before starting this tool. In this way, free domain won't be considered as paid domain and set auto renew to false by default while creating database for the first time. Of course, for the next launches of the tool, you don't mind about having free domains renewable, the tool will automatically renew it if the first start was execute as described before.
node
>= 16npm
pm2
npm install
make .env
pm2 start npm --name FreenomAutoRenewDomains -- run start
Before running for the first time, you need to fill your .env
file with your own values.
DB_NAME=freenoms-domains
PUPPETEER_HEADLESS=true
DISCORD_BOT_TOKEN=
DISCORD_GUILD_ID=
DISCORD_CHANNEL_ID=
FREENOM_LOGIN=email
FREENOM_PASS=password
FREENOM_CRONJOB="0 9 * * 1"
# Docker exec path
CHROME_PATH=google-chrome-stable
# Linux
CHROME_PATH=/usr/local/bin/chromium
- DB_NAME: The name of the local sqlite3 db used to saved domain data and preferences (like auto renew)
- PUPPETEER_HEADLESS: Display the chromium browser or not
- CHROME_PATH: The path to a chromium browser used by puppeteer
- DISCORD_BOT_TOKEN: The discord bot token (More info on Discord.js Guide)
- DISCORD_GUILD_ID: The discord server (see Discord Docs - How to retrieve ID)
- DISCORD_CHANNEL_ID: The discord channel id (see Discord Docs - How to retrieve ID)
- FREENOM_LOGIN: Your email of your Freenom account
- FREENOM_PASS: Your password of your Freenom account
- FREENOM_CRONJOB: The cronjob rule on you want to schedule auto renew. By default, the cronjob rule is set at
09 AM every Monday
. (More info on Crontab.guru)