Self-hosted domain availability checker with watchlist & email notifications
Monitor domain names, get notified the moment they become available.
- 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
docker run -d \
--name domee \
-p 8000:8000 \
-v domee-data:/data \
--restart unless-stopped \
szabto/domee:latestservices:
domee:
image: szabto/domee:latest
container_name: domee
ports:
- "8000:8000"
volumes:
- domee-data:/data
restart: unless-stopped
volumes:
domee-data:docker compose up -dThen open http://localhost:8000 in your browser.
- Type a domain name in the search bar (e.g.
example.com) - Click Check or press Enter
- See instantly whether the domain is available or taken
- Click the + button to add it to your 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
Click the gear icon to configure:
| Setting | Description | Default |
|---|---|---|
| Polling interval | How often to check all watched domains (minutes) | 60 |
| Notification email | Where to send availability alerts | — |
| SMTP Host | Your mail server hostname | — |
| SMTP Port | Mail server port | 587 |
| Username | SMTP authentication username | — |
| Password | SMTP authentication password | — |
| From email | Sender address for notifications | — |
| Use TLS | Enable STARTTLS encryption | true |
To use Gmail for notifications:
- Enable App Passwords on your Google account
- Generate an app password for "Mail"
- Configure in Domee settings:
- SMTP Host:
smtp.gmail.com - SMTP Port:
587 - Username:
your@gmail.com - Password: your app password
- From email:
your@gmail.com - Use TLS: enabled
- SMTP Host:
git clone https://github.com/szabto/domee.git
cd domee
docker build -t domee .
docker run -d -p 8000:8000 -v domee-data:/data domeeDomee — 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
┌──────────────────────────────────────┐
│ Docker Container │
│ │
│ ┌────────────┐ ┌──────────────┐ │
│ │ Frontend │ │ FastAPI │ │
│ │ HTML/CSS │──▶│ Backend │ │
│ │ Vanilla JS │ │ │ │
│ └────────────┘ └──────┬───────┘ │
│ │ │
│ ┌──────┴───────┐ │
│ │ SQLite DB │ │
│ │ (/data) │ │
│ └──────────────┘ │
│ │ │
│ ┌────────────┐ ┌──────┴───────┐ │
│ │ SMTP │◀──│ APScheduler │ │
│ │ Email │ │ Background │ │
│ └────────────┘ └──────────────┘ │
└──────────────────────────────────────┘
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License — see the LICENSE file for details.
Made with ☕ by szabto