73 lines
2.7 KiB
Markdown
73 lines
2.7 KiB
Markdown
|
---
|
||
|
data: 2023-01-19T19:31:08+02:00
|
||
|
title: Using Docker
|
||
|
weight: 15
|
||
|
---
|
||
|
|
||
|
happyDomain is sponsored by Docker.
|
||
|
You'll find the official container image on [the Docker Hub](https://hub.docker.com/r/happydomain/happydomain/).
|
||
|
|
||
|
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.
|