Skip to content

palvimaki/DotFiDomainManager

Repository files navigation

#DotFiDomainManager for the .FI Aftermarket

Automatisoitu, Telegram-käyttöliittymällä toimiva .fi -verkkotunnusportfolion hallintajärjestelmä.

A powerful Telegram-controlled domain portfolio manager for .fi domain aftermarket players.

Automates the full lifecycle from drop list monitoring through registration, DNS provisioning, landing page generation, sales listing updates — all operated via Telegram.

What it does

  • Drop list monitoring — Ingests monthly Traficom drop lists, scores and ranks candidates, publishes top picks to Telegram
  • Catch & register — Pluggable provider interface for dropcatch and registration services (bring your own)
  • Auto-provisioning — After acquisition: Cloudflare zone creation, DNS template, nameserver update via EPP, landing page — fully automated
  • Landing pages — Dynamic host-header-routed landers with contact forms, pricing, and plugin slots (affiliate ads, local info)
  • Lead capture — Contact form submissions stored in DB, email + Telegram notifications
  • Inventory management — Search, tag, price, flag super-premium or prune candidates via Telegram
  • Renewal triage — Weekly review; silence = renew, explicit /prune to drop
  • Legal checks — PRH trademark and YTJ company registry lookups
  • Marketplace integration — Sedo listing support (optional)
  • Audit & ops — Event log, Cloudflare DNS audit, cert rotation checks

Architecture

See the full system architecture diagrams for detailed visuals of every component.

Telegram Bot <-> FastAPI <-> PostgreSQL
                  |
         Cloudflare API
         Traficom EPP (mTLS)
         Your catch/register provider
                  |
         Landing pages (host-header routing)
         Lead capture -> Email + Telegram

Components

Service Purpose
dotfi-api FastAPI app — REST API + lander engine
dotfi-bot Telegram bot (async polling)
dotfi-worker Task queue worker (systemd timer, every 10 min)
dotfi-droplist Monthly drop list ingest (28th of month)
dotfi-cfaudit Nightly Cloudflare DNS audit
dotfi-renewal Weekly renewal review
dotfi-certcheck Monthly cert rotation check

Quick start

git clone https://github.com/palvimaki/DotFiDomainManager.git
cd dotfi
bash scripts/dev_bootstrap.sh

# Configure
cp .env.example .env
# Edit .env with your credentials

# Start Postgres (local dev)
docker compose up -d

# Run migrations
alembic upgrade head

# Start the API
uvicorn src.app.main:app --reload

# Start the Telegram bot (separate terminal)
python -m src.telegram.bot

Telegram commands

Command Description
/whois domain.fi WHOIS lookup with scoring
/register domain.fi Register an available domain
/catch domain.fi Catch a dropping domain
/inventory [filter] Browse portfolio
/search text Search domains
/show domain.fi Full domain details + scores + events
/price domain.fi EUR Set asking price
/tag domain.fi tag1,tag2 Set tags
/super domain.fi Toggle super-premium flag
/prune domain.fi Toggle do-not-renew flag
/drops [date] Drop list for a date
/today / /tomorrow Today's/tomorrow's drops
/dropweek 7-day drop calendar
/ytj query Finnish company registry search
/prh query Finnish trademark search
/leads View lead inquiries
/kanban Task board
/market list domain.fi EUR List on all configured marketplaces
/market show domain.fi Check listing status across marketplaces
/sedo domain.fi EUR List on Sedo marketplace (shortcut)

See docs/03_telegram_commands.md for full documentation.

Connecting your catch/register provider

dotfi does not include a dropcatch or registration service. It provides a pluggable provider interface.

The /catch and /register Telegram commands delegate to a catch provider — a Python class that implements register() and catch() methods.

The default provider (ScriptCatchProvider) calls shell scripts that you customize:

  • scripts/register.sh — called for /register
  • scripts/catch.sh — called for /catch

Both scripts POST results back to the local API, which handles everything after that.

See docs/providers.md for details.

Domain lifecycle

candidate -> queued -> acquired -> provisioned -> lander_ready -> core
                                                                   |
                                                              probation -> prune -> sold

Production deployment

export DOTFI_USER=youruser
export DOTFI_DIR=/home/youruser/dotfi
export DOTFI_REPO=https://github.com/palvimaki/DotFiDomainManager.git
bash deploy/install.sh

Tech stack

Layer Tech
Backend Python 3.11, FastAPI, Uvicorn
Database PostgreSQL 16, SQLAlchemy 2.0, Alembic
Telegram python-telegram-bot 21.x (async)
DNS Cloudflare API
Registry Traficom EPP (RFC 5730-5734) over mTLS
WHOIS whois -h whois.fi subprocess
Process mgmt systemd services + timers
Drop data Traficom OData API (public, no auth)

License

MIT — see LICENSE.

About

Telegram-controlled .fi domain portfolio manager — dropcatching, DNS, landing pages, marketplace connectors

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors