happydomain
All your domains. One interface.
10K+
happyDomain is a free web application that centralizes the management of your domain names from different registrars and hosts.
It consists of a HTTP REST API written in Golang (primarily based on https://stackexchange.github.io/dnscontrol/ and https://github.com/miekg/dns) with a nice web interface written with Svelte. It runs as a single stateless Linux binary, backed by a database (currently: LevelDB, more to come soon).
Features:
happyDomain is functional but still very much a work in progress: it's a carefully crafted proof of concept that evolves thanks to you!
Given the diversity of DNS configurations and user needs, we haven't yet identified all the bugs. If something doesn't work, please don't leave: tell us what's wrong. We're highly responsive and each reported bug helps us improve the tool for everyone.
Whether it works for you or not, we need your feedback! What do you think of our approach to simplifying domain name management? Your impressions at this stage help us guide the project according to your actual expectations.
We are a Docker sponsored OSS project! Thus you can easily try and/or deploy our app using Docker/podman/kubernetes/...
You can use docker compose to launch happyDomain:
git clone https://framagit.org/happyDomain/happyDomain.git
cd happyDomain
docker compose up
Or directly with docker run:
docker run -e HAPPYDOMAIN_NO_AUTH=1 -p 8081:8081 happydomain/happydomain
This command will launch happyDomain in a few seconds, for evaluation purposes (no authentication, volatile storage, ...). With your browser, just go to http://localhost:8081 and enjoy!
In order to deploy happyDomain, check the Docker image documentation.
All tags are build for amd64, arm64 and arm/v7 and are based on alpine.
Currently, available tags are:
latest: this is a the most up to date version, corresponding to the master branch.On launch, happyDomain reads configuration from environment variablesprefixed with HAPPYDOMAIN_. For example:
HAPPYDOMAIN_STORAGE_ENGINE=leveldb
HAPPYDOMAIN_LEVELDB_PATH=/var/lib/happydomain/db/
In the documentation, configuration keys are written in kebab-case (e.g., storage-engine). To use them as environment variables, simply:
HAPPYDOMAIN_ prefix.By default, the LevelDB storage engine is used. You can change the storage engine using the option -e HAPPYDOMAIN_STORAGE_ENGINE=other-engine.
The help command ./happydomain -help can show you the available engines. By example:
-storage-engine value
Select the storage engine between [leveldb mysql] (default leveldb)
LevelDB is a small embedded key-value store (as SQLite it doesn't require an additional daemon to work).
-e HAPPYDOMAIN_LEVELDB_PATH=string
Path to the LevelDB Database (default "happydomain.db")
By default, a new directory is created near the binary, called happydomain.db. This directory contains the database used by the program.
You can change it to a more meaningful/persistant path.
happyDomain exposes some administration command through a unix socket. The docker container contains a script to access this admin part: hadmin.
You can use it this way:
docker exec my_container hadmin /api/users
docker exec my_container hadmin /api/users/0123456789/send_validation_email -X POST
This is in fact a wrapper above curl, but you have to start by the URL, and place options after it.
Content type
Image
Digest
sha256:48d22877d…
Size
39.8 MB
Last updated
about 20 hours ago
docker pull happydomain/happydomainPulls:
393
Last week