Settings

How often domains are re-checked, and when you get warned.

Alert thresholds

Comma-separated. One alert fires per threshold crossed, plus one once a domain is actually expired. Renewing a domain resets the whole sequence.

Used by the scheduled job to decide what counts as stale.

Display

Language is set with the flags in the header. It applies to this interface and to the alerts that go out.

Email

SMTP credentials live in .env, not in the database. SMTP is not configured — copy .env.example to .env and set SMTP_HOST.

Telegram

Not configured

Configured entirely in .env — the token and chat id are never stored in the database or shown on this page. Set both and alerts start going out; remove either to stop them.

TELEGRAM_BOT_TOKEN=123456789:AA...
TELEGRAM_CHAT_ID=-1001234567890

Create a bot with @BotFather, message it once, then read the chat id from https://api.telegram.org/bot<token>/getUpdates. For a group, add the bot to it first — group ids start with -100.

Webhook

Slack and Discord payloads are detected automatically; anything else receives a plain JSON body. For Telegram use the section above rather than a webhook URL. A Slack webhook URL is itself a credential — set WEBHOOK_URL in .env to keep it off this page.

Automation

Run this on a schedule (cron, launchd, a systemd timer, or the bundled Docker service) to refresh stale domains and send any due alerts:

npm run cron

It calls POST /api/cron on the running app. Set CRON_SECRET in .env to require a bearer token on that endpoint.

Registrars

Registries spell the same company differently. Those are folded onto one registrar automatically, and matching IANA registrar IDs link spellings that look unrelated. Rename one here to override the name shown everywhere, or merge two that were not caught.

  • IANA 1910
    1 domain(s)
  • IANA 1479NameSilo, LLC ×4NameSilo LLC ×2NameSilo,LLC ×1
    7 domain(s)
  • 1 domain(s)
  • IANA 3862
    11 domain(s)
  • IANA 895
    1 domain(s)
  • 1 domain(s)