Self-hosted domain manager, all of your countless domains (sure, you will finish that side-project) in one place. (Domain + Index = Domaindex)
- Add domains, bulk import from list
- Automatically fetches WHOIS information, incl. expiry date and registrar information
- Wishlist domains
- Get notified about soon to expire domains (Apprise integration)
- Built-in list of most popular registrars + prices for TLDs
- Flexible price-management, set per registrar prices, custom overrides, prices initial costs, yearly renewals, transfers, privacy add-ons etc.
- Multi-user application
- Single Docker image for easy deployment
- No JavaScript across the whole application
- SSL check
- Domain A/AAAA host information (ASN, country, ...)
- CSS darkmode
- Cache CSS assets, cache-bust with current version
See example Docker compose.yml
docker run -d \
--name domaindex \
-p 8080:8080 \
-v ./data:/app/data \
-e APP_SECRET=change-me-to-a-random-secret \
-e DB_DRIVER=sqlite \
-e DB_DSN=data/domaindex.db \
ghcr.io/romanzipp/domaindex:mainAPP_HOST- Listen host (default:0.0.0.0)APP_PORT- Listen port (default:8080)APP_SECRET- Session cookie secret, generate a random secret by runningopenssl rand -hex 32WHOIS_REFRESH_INTERVAL- How often to refresh WHOIS data in the background (default:6h)REGISTRATION_ENABLED- Allow new user registration (default:true)
DB_DRIVER-sqliteDB_DSN- Database file path (default:data/domaindex.db)
DB_DRIVER-postgresDB_DSN- Connection string (default:host=db user=domaindex password=secret dbname=domaindex port=5432 sslmode=disable)
APPRISE_URL- Apprise gateway URLAPPRISE_KEY- Apprise key
The app comes with a set of default registrars (25 most popular) and default pricing which was fetched around April 2026 for the last time. You are free to update those default prices or set overrides for a single domain.
Information about domain pricing has been fetched from the following sources and are included in .csv seed files.
1910Cloudflare: cfdomainpricing JSON
- Requirements: go 1.26+, node/npm for tailwind
See the Makefile for all available commands.
MIT License

