szabto/domee

By szabto

β€’Updated 4 months ago

Self-hosted domain watchlist with expiry tracking and email alerts when domains become available.

Image
Networking
Monitoring & observability
0

1.1K

szabto/domee repository overview

⁠🌐 Domee

Self-hosted domain availability checker with watchlist & email notifications

Docker Pulls Docker Image Size License GitHub Actions


Monitor domain names, get notified the moment they become available.



⁠Features

  • Instant domain check β€” type any domain and see if it's available in seconds
  • Watchlist β€” save domains to monitor, with automatic WHOIS expiry date lookup
  • Background polling β€” checks all watched domains at a configurable interval
  • Email notifications β€” get alerted via SMTP when a domain becomes available
  • Modern dark UI β€” clean, minimal interface that works on desktop and mobile
  • Single container β€” everything runs in one Docker image with SQLite storage
  • Lightweight β€” ~80MB image, minimal resource usage

⁠Quick Start

⁠Docker Run
docker run -d \
  --name domee \
  -p 8000:8000 \
  -v domee-data:/data \
  --restart unless-stopped \
  szabto/domee:latest
⁠Docker Compose
services:
  domee:
    image: szabto/domee:latest
    container_name: domee
    ports:
      - "8000:8000"
    volumes:
      - domee-data:/data
    restart: unless-stopped

volumes:
  domee-data:
docker compose up -d

Then open http://localhost:8000⁠ in your browser.

⁠Usage

⁠Checking a Domain
  1. Type a domain name in the search bar (e.g. example.com)
  2. Click Check or press Enter
  3. See instantly whether the domain is available or taken
  4. Click the + button to add it to your watchlist
⁠Watchlist
  • Domains in the watchlist show the name, expiry date (from WHOIS), and status
  • Click the Γ— button to remove a domain
  • Click the refresh icon in the header to manually poll all domains
⁠Settings

Click the gear icon to configure:

SettingDescriptionDefault
Polling intervalHow often to check all watched domains (minutes)60
Notification emailWhere to send availability alertsβ€”
SMTP HostYour mail server hostnameβ€”
SMTP PortMail server port587
UsernameSMTP authentication usernameβ€”
PasswordSMTP authentication passwordβ€”
From emailSender address for notificationsβ€”
Use TLSEnable STARTTLS encryptiontrue
⁠Gmail SMTP Example

To use Gmail for notifications:

  1. Enable App Passwords⁠ on your Google account
  2. Generate an app password for "Mail"
  3. Configure in Domee settings:

⁠Building from Source

git clone https://github.com/szabto/domee.git
cd domee
docker build -t domee .
docker run -d -p 8000:8000 -v domee-data:/data domee

⁠CLI Help

Domee β€” Self-hosted Domain Availability Checker

USAGE:
  docker run -d -p 8000:8000 -v domee-data:/data szabto/domee:latest

OPTIONS:
  Port mapping     -p <host>:8000     Map container port 8000 to host
  Data volume      -v <name>:/data    Persist database across restarts
  Auto restart     --restart unless-stopped

ENVIRONMENT VARIABLES:
  DOMEE_DB_PATH    Path to SQLite database (default: /data/domee.db)

ENDPOINTS:
  GET  /              Web interface
  GET  /api/domains   List watched domains
  POST /api/domains   Add domain to watchlist
  DEL  /api/domains/  Remove domain from watchlist
  POST /api/check     Check domain availability
  GET  /api/settings  Get current settings
  PUT  /api/settings  Update settings
  POST /api/poll      Trigger manual poll

⁠Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚          Docker Container            β”‚
β”‚                                      β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚  Frontend   β”‚   β”‚   FastAPI     β”‚   β”‚
β”‚  β”‚  HTML/CSS   │──▢│   Backend    β”‚   β”‚
β”‚  β”‚  Vanilla JS β”‚   β”‚              β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                          β”‚           β”‚
β”‚                   β”Œβ”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚                   β”‚   SQLite DB  β”‚   β”‚
β”‚                   β”‚   (/data)    β”‚   β”‚
β”‚                   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                          β”‚           β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚   SMTP      │◀──│  APScheduler β”‚   β”‚
β”‚  β”‚   Email     β”‚   β”‚  Background  β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

⁠Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

⁠License

This project is licensed under the MIT License β€” see the LICENSE⁠ file for details.


Made with β˜• by szabto⁠

Tag summary

Content type

Image

Digest

sha256:c5cdce371…

Size

58.3 MB

Last updated

4 months ago

docker pull szabto/domee:sha-b872fbf