Using Docker
happyDomain is sponsored by Docker. You’ll find the official container image on the Docker Hub.
This image will run happyDomain as a single process, with a LevelDB database (similarly to sqlite, LevelDB is stored on disk, no need to configure anything).
Supported tags and architectures
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.
Using this image
For testing purpose
You can test happyDomain or use it for your own usage, with the option HAPPYDOMAIN_NO_AUTH=1
: this will automatically creates a default account, and disable all features related to the user management (signup, login. …).
docker run -e HAPPYDOMAIN_NO_AUTH=1 -p 8081:8081 happydomain/happydomain
Data are stored in /data
directory. If you want to keep your settings from one run to another, you’ll need to attach this directory to a Docker managed volume or to a directory on your host:
docker volume create happydomain_data
docker run -e HAPPYDOMAIN_NO_AUTH=1 -v happydomain_data:/data -p 8081:8081 happydomain/happydomain
In production
happyDomain needs to send e-mail, in order to verify addresses and doing password recovery, so you need basically to configure a SMTP relay.
Use the options HAPPYDOMAIN_MAIL_SMTP_HOST
, HAPPYDOMAIN_MAIL_SMTP_PORT
(default 25), HAPPYDOMAIN_MAIL_SMTP_USERNAME
and HAPPYDOMAIN_MAIL_SMTP_PASSWORD
for this purpose:
docker run -e HAPPYDOMAIN_MAIL_SMTP_HOST=smtp.yourcompany.com -e HAPPYDOMAIN_MAIL_SMTP_USERNAME=happydomain -e HAPPYDOMAIN_MAIL_SMTP_PASSWORD=secret -v /var/lib/happydomain:/data -p 8081:8081 happydomain/happydomain
By default, happyDomain uses sendmail
, if you prefer, you can create you own image with the package ssmtp
:
FROM happydomain/happydomain
RUN apk --no-cache add ssmtp
COPY my_ssmtp.conf /etc/ssmtp/ssmtp.conf
If you prefer using a configuration file, you can place it either in /data/happydomain.conf
to use the volume, or bind your file to /etc/happydomain.conf
:
docker run -v happydomain.conf:/etc/happydomain.conf -p 8081:8081 happydomain/happydomain
Admin Interface
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.