docs: expand reference pages and fix children shortcode rendering
Enable Goldmark block-level attributes so the relearn `children` shortcode applies its CSS classes instead of printing them literally in the table-of-contents pages. Also expand the deploy, plugins, records, and email reference docs and add the checks pages.
This commit is contained in:
parent
f50dcc8ba9
commit
6b6a8c847f
13 changed files with 1457 additions and 501 deletions
|
|
@ -4,78 +4,340 @@ title: Avec Docker
|
|||
weight: 15
|
||||
---
|
||||
|
||||
happyDomain est sponsorisé Docker.
|
||||
happyDomain est sponsorisé par Docker.
|
||||
Vous trouverez notre image officielle sur [le Docker Hub](https://hub.docker.com/r/happydomain/happydomain/).
|
||||
|
||||
Cette image exécutera happyDomain en tant que processus unique, avec une base de données LevelDB (similaire à sqlite, LevelDB est une base de données stockée sur le disque, il n'est pas nécessaire de configurer quoi que ce soit d'autre).
|
||||
L'image exécute happyDomain en tant que processus unique avec une base de données LevelDB stockée sur le disque — aucune base de données supplémentaire à configurer.
|
||||
|
||||
|
||||
## Versions, étiquettes and architectures supportés
|
||||
## Versions, étiquettes et architectures supportées
|
||||
|
||||
Toutes les étiquettes (*tags*) sont construites pour les architectures de processeur les plus courantes (`amd64`, `arm64` et `arm/v7`).
|
||||
Nous ne construisons des images uniquement basées sur la distribution Alpine Linux, ce qui assure des images de taille minimale.
|
||||
Toutes les étiquettes (*tags*) sont construites pour `amd64`, `arm64` et `arm/v7` et sont basées sur Alpine.
|
||||
|
||||
Actuellement, les étiquettes disponibles sont :
|
||||
Les étiquettes actuellement disponibles :
|
||||
|
||||
- `latest`: il s'agit de la version la plus récente, correspondant à la branche `master` de notre dépôt de sources.
|
||||
- `latest` : la version la plus récente, correspondant à la branche `master` de notre dépôt.
|
||||
|
||||
|
||||
## Utilisation de l'image
|
||||
## Démarrage rapide (conteneur unique)
|
||||
|
||||
### À des fins de test
|
||||
|
||||
Vous pouvez tester happyDomain ou l'utiliser pour votre usage personnel, avec l'option `HAPPYDOMAIN_NO_AUTH=1` : cela créera automatiquement un compte par défaut, et désactivera toutes les fonctionnalités liées à la gestion des utilisateurs (inscription, connexion, ...).
|
||||
Pour un test rapide ou un usage personnel, utilisez `HAPPYDOMAIN_NO_AUTH=1` pour désactiver la gestion des comptes :
|
||||
|
||||
```
|
||||
docker run -e HAPPYDOMAIN_NO_AUTH=1 -p 8081:8081 happydomain/happydomain
|
||||
```
|
||||
|
||||
Les données sont stockées dans le répertoire `/data`.
|
||||
Si vous souhaitez conserver vos paramètres d'une exécution à l'autre, vous devrez attacher ce répertoire à un volume géré par Docker ou à un répertoire sur votre hôte :
|
||||
Les données sont stockées à l'intérieur du conteneur. Pour les conserver entre les redémarrages, attachez un volume :
|
||||
|
||||
```
|
||||
docker volume create happydomain_data
|
||||
docker run -e HAPPYDOMAIN_NO_AUTH=1 -v happydomain_data:/data -p 8081:8081 happydomain/happydomain
|
||||
```
|
||||
|
||||
|
||||
### En production
|
||||
|
||||
happyDomain a besoin d'envoyer du courrier électronique, afin de vérifier les adresses et d'effectuer la récupération des mots de passe, vous devez donc configurer un relais SMTP.
|
||||
Utilisez les options `HAPPYDOMAIN_MAIL_SMTP_HOST`, `HAPPYDOMAIN_MAIL_SMTP_PORT` (par défaut 25), `HAPPYDOMAIN_MAIL_SMTP_USERNAME` et `HAPPYDOMAIN_MAIL_SMTP_PASSWORD` à cette fin :
|
||||
Pour une instance de production avec envoi d'e-mails :
|
||||
|
||||
```
|
||||
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
|
||||
```
|
||||
|
||||
Si vous préférez utiliser un fichier de configuration, vous pouvez le placer soit dans `/data/happydomain.conf` pour utiliser le volume, soit lier votre fichier à `/etc/happydomain.conf` :
|
||||
|
||||
```
|
||||
docker run -v happydomain.conf:/etc/happydomain.conf -p 8081:8081 happydomain/happydomain
|
||||
docker run \
|
||||
-e HAPPYDOMAIN_MAIL_SMTP_HOST=smtp.votreentreprise.com \
|
||||
-e HAPPYDOMAIN_MAIL_SMTP_USERNAME=happydomain \
|
||||
-e HAPPYDOMAIN_MAIL_SMTP_PASSWORD=secret \
|
||||
-v /var/lib/happydomain:/data \
|
||||
-p 8081:8081 \
|
||||
happydomain/happydomain
|
||||
```
|
||||
|
||||
|
||||
#### Étendre l'image de base
|
||||
## Déploiement complet avec tous les vérificateurs
|
||||
|
||||
Par défaut, happyDomain utilise `sendmail`, si vous préférez, vous pouvez créer votre propre image avec le paquet `ssmtp` :
|
||||
happyDomain intègre tous les vérificateurs (*checkers*) en natif, mais certains
|
||||
d'entre eux s'appuient sur des outils externes (DNSViz, Zonemaster, Matrix
|
||||
federation tester) distribués dans leurs propres images Docker. Les faire
|
||||
tourner comme des services séparés vous donne l'expérience complète des
|
||||
vérificateurs et une meilleure isolation.
|
||||
|
||||
L'approche recommandée est `docker compose`. Enregistrez le fichier suivant
|
||||
sous le nom `docker-compose.yml` et lancez `docker compose up -d`.
|
||||
|
||||
```yaml
|
||||
services:
|
||||
happydomain:
|
||||
image: happydomain/happydomain
|
||||
ports:
|
||||
- "8080:8081"
|
||||
environment:
|
||||
# Décommentez pour un usage mono-utilisateur / test
|
||||
# HAPPYDOMAIN_NO_AUTH: "1"
|
||||
|
||||
# Configuration mail (obligatoire en production multi-utilisateurs)
|
||||
# HAPPYDOMAIN_MAIL_SMTP_HOST: "mailer"
|
||||
|
||||
# ── DNS / DNSSEC ─────────────────────────────────────────────────────
|
||||
HAPPYDOMAIN_CHECKER_DNSVIZ_ENDPOINT: "http://checker-dnsviz:8080"
|
||||
HAPPYDOMAIN_CHECKER_DNSSEC_ENDPOINT: "http://checker-dnssec:8080"
|
||||
HAPPYDOMAIN_CHECKER_ZONEMASTER_ENDPOINT: "http://checker-zonemaster:8080"
|
||||
HAPPYDOMAIN_CHECKER_ZONEMASTER_ZONEMASTERAPIURL: "http://zonemaster:5000"
|
||||
HAPPYDOMAIN_CHECKER_DELEGATION_ENDPOINT: "http://checker-delegation:8080"
|
||||
HAPPYDOMAIN_CHECKER_AUTHORITATIVE_CONSISTENCY_ENDPOINT: "http://checker-authoritative-consistency:8080"
|
||||
HAPPYDOMAIN_CHECKER_ALIAS_ENDPOINT: "http://checker-alias:8080"
|
||||
HAPPYDOMAIN_CHECKER_LEGACY_RECORDS_ENDPOINT: "http://checker-legacy-records:8080"
|
||||
HAPPYDOMAIN_CHECKER_NS_RESTRICTIONS_ENDPOINT: "http://checker-ns-restrictions:8080"
|
||||
HAPPYDOMAIN_CHECKER_RESOLVER_PROPAGATION_ENDPOINT: "http://checker-resolver-propagation:8080"
|
||||
HAPPYDOMAIN_CHECKER_REVERSE_ZONE_ENDPOINT: "http://checker-reverse-zone:8080"
|
||||
HAPPYDOMAIN_CHECKER_PTR_ENDPOINT: "http://checker-ptr:8080"
|
||||
HAPPYDOMAIN_CHECKER_DANGLING_ENDPOINT: "http://checker-dangling:8080"
|
||||
|
||||
# ── Sécurité / Certificats ────────────────────────────────────────────
|
||||
HAPPYDOMAIN_CHECKER_TLS_ENDPOINT: "http://checker-tls:8080"
|
||||
HAPPYDOMAIN_CHECKER_DANE_ENDPOINT: "http://checker-dane:8080"
|
||||
HAPPYDOMAIN_CHECKER_CAA_ENDPOINT: "http://checker-caa:8080"
|
||||
HAPPYDOMAIN_CHECKER_BLACKLIST_ENDPOINT: "http://checker-blacklist:8080"
|
||||
|
||||
# ── E-mail ────────────────────────────────────────────────────────────
|
||||
HAPPYDOMAIN_CHECKER_SMTP_ENDPOINT: "http://checker-smtp:8080"
|
||||
HAPPYDOMAIN_CHECKER_EMAIL_AUTOCONFIG_ENDPOINT: "http://checker-email-autoconfig:8080"
|
||||
HAPPYDOMAIN_CHECKER_OPENPGPKEY_SMIMEA_ENDPOINT: "http://checker-email-keys:8080"
|
||||
|
||||
# ── Web & Protocoles ──────────────────────────────────────────────────
|
||||
HAPPYDOMAIN_CHECKER_HTTP_ENDPOINT: "http://checker-http:8080"
|
||||
HAPPYDOMAIN_CHECKER_SSH_ENDPOINT: "http://checker-ssh:8080"
|
||||
HAPPYDOMAIN_CHECKER_PING_ENDPOINT: "http://checker-ping:8080"
|
||||
HAPPYDOMAIN_CHECKER_SRV_ENDPOINT: "http://checker-srv:8080"
|
||||
|
||||
# ── Collaboration / Messagerie ────────────────────────────────────────
|
||||
HAPPYDOMAIN_CHECKER_MATRIXIM_ENDPOINT: "http://checker-matrix:8080"
|
||||
HAPPYDOMAIN_CHECKER_MATRIXIM_FEDERATIONTESTERSERVER: "http://matrixfederationtester:8080/api/report?server_name=%s"
|
||||
HAPPYDOMAIN_CHECKER_XMPP_ENDPOINT: "http://checker-xmpp:8080"
|
||||
HAPPYDOMAIN_CHECKER_SIP_ENDPOINT: "http://checker-sip:8080"
|
||||
|
||||
# ── Annuaire & Authentification ───────────────────────────────────────
|
||||
HAPPYDOMAIN_CHECKER_LDAP_ENDPOINT: "http://checker-ldap:8080"
|
||||
HAPPYDOMAIN_CHECKER_KERBEROS_ENDPOINT: "http://checker-kerberos:8080"
|
||||
HAPPYDOMAIN_CHECKER_STUNTURN_ENDPOINT: "http://checker-stun-turn:8080"
|
||||
|
||||
# ── CalDAV / CardDAV ──────────────────────────────────────────────────
|
||||
HAPPYDOMAIN_CHECKER_CALDAV_ENDPOINT: "http://checker-caldav:8080"
|
||||
HAPPYDOMAIN_CHECKER_CARDDAV_ENDPOINT: "http://checker-carddav:8080"
|
||||
|
||||
# ── Optionnel : intégration happyDeliver ──────────────────────────────
|
||||
# HAPPYDOMAIN_CHECKER_HAPPYDELIVER_ENDPOINT: "http://checker-happydeliver:8080"
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- storage:/var/lib/happydomain:rw
|
||||
|
||||
# ── Vérificateurs DNS / DNSSEC ─────────────────────────────────────────────
|
||||
|
||||
checker-dnsviz:
|
||||
image: happydomain/checker-dnsviz
|
||||
restart: unless-stopped
|
||||
|
||||
checker-dnssec:
|
||||
image: happydomain/checker-dnssec
|
||||
restart: unless-stopped
|
||||
|
||||
checker-zonemaster:
|
||||
image: happydomain/checker-zonemaster
|
||||
restart: unless-stopped
|
||||
|
||||
zonemaster:
|
||||
image: zonemaster/backend
|
||||
command: full
|
||||
restart: unless-stopped
|
||||
|
||||
checker-delegation:
|
||||
image: happydomain/checker-delegation
|
||||
restart: unless-stopped
|
||||
|
||||
checker-authoritative-consistency:
|
||||
image: happydomain/checker-authoritative-consistency
|
||||
restart: unless-stopped
|
||||
|
||||
checker-alias:
|
||||
image: happydomain/checker-alias
|
||||
restart: unless-stopped
|
||||
|
||||
checker-legacy-records:
|
||||
image: happydomain/checker-legacy-records
|
||||
restart: unless-stopped
|
||||
|
||||
checker-ns-restrictions:
|
||||
image: happydomain/checker-ns-restrictions
|
||||
restart: unless-stopped
|
||||
|
||||
checker-resolver-propagation:
|
||||
image: happydomain/checker-resolver-propagation
|
||||
restart: unless-stopped
|
||||
|
||||
checker-reverse-zone:
|
||||
image: happydomain/checker-reverse-zone
|
||||
restart: unless-stopped
|
||||
|
||||
checker-ptr:
|
||||
image: happydomain/checker-ptr
|
||||
restart: unless-stopped
|
||||
|
||||
checker-dangling:
|
||||
image: happydomain/checker-dangling
|
||||
restart: unless-stopped
|
||||
|
||||
# ── Vérificateurs Sécurité / Certificats ───────────────────────────────────
|
||||
|
||||
checker-tls:
|
||||
image: happydomain/checker-tls
|
||||
restart: unless-stopped
|
||||
|
||||
checker-dane:
|
||||
image: happydomain/checker-dane
|
||||
restart: unless-stopped
|
||||
|
||||
checker-caa:
|
||||
image: happydomain/checker-caa
|
||||
restart: unless-stopped
|
||||
|
||||
checker-blacklist:
|
||||
image: happydomain/checker-blacklist
|
||||
restart: unless-stopped
|
||||
|
||||
# ── Vérificateurs e-mail ────────────────────────────────────────────────────
|
||||
|
||||
checker-smtp:
|
||||
image: happydomain/checker-smtp
|
||||
restart: unless-stopped
|
||||
|
||||
checker-email-autoconfig:
|
||||
image: happydomain/checker-email-autoconfig
|
||||
restart: unless-stopped
|
||||
|
||||
checker-email-keys:
|
||||
image: happydomain/checker-email-keys
|
||||
restart: unless-stopped
|
||||
|
||||
# ── Vérificateurs Web & Protocoles ─────────────────────────────────────────
|
||||
|
||||
checker-http:
|
||||
image: happydomain/checker-http
|
||||
restart: unless-stopped
|
||||
|
||||
checker-ssh:
|
||||
image: happydomain/checker-ssh
|
||||
restart: unless-stopped
|
||||
|
||||
checker-ping:
|
||||
image: happydomain/checker-ping
|
||||
restart: unless-stopped
|
||||
cap_add:
|
||||
- NET_RAW # requis pour l'ICMP
|
||||
|
||||
checker-srv:
|
||||
image: happydomain/checker-srv
|
||||
restart: unless-stopped
|
||||
|
||||
# ── Vérificateurs Collaboration / Messagerie ────────────────────────────────
|
||||
|
||||
checker-matrix:
|
||||
image: happydomain/checker-matrix
|
||||
restart: unless-stopped
|
||||
|
||||
matrixfederationtester:
|
||||
image: matrixdotorg/federation-tester-backend
|
||||
environment:
|
||||
BIND_ADDRESS: "0.0.0.0:8080"
|
||||
restart: unless-stopped
|
||||
|
||||
checker-xmpp:
|
||||
image: happydomain/checker-xmpp
|
||||
restart: unless-stopped
|
||||
|
||||
checker-sip:
|
||||
image: happydomain/checker-sip
|
||||
restart: unless-stopped
|
||||
|
||||
# ── Vérificateurs Annuaire & Authentification ───────────────────────────────
|
||||
|
||||
checker-ldap:
|
||||
image: happydomain/checker-ldap
|
||||
restart: unless-stopped
|
||||
|
||||
checker-kerberos:
|
||||
image: happydomain/checker-kerberos
|
||||
restart: unless-stopped
|
||||
|
||||
checker-stun-turn:
|
||||
image: happydomain/checker-stun-turn
|
||||
restart: unless-stopped
|
||||
|
||||
# ── Vérificateurs CalDAV / CardDAV ─────────────────────────────────────────
|
||||
|
||||
checker-caldav:
|
||||
image: happydomain/checker-caldav
|
||||
restart: unless-stopped
|
||||
|
||||
checker-carddav:
|
||||
image: happydomain/checker-carddav
|
||||
restart: unless-stopped
|
||||
|
||||
volumes:
|
||||
storage:
|
||||
```
|
||||
FROM happydomain/happydomain
|
||||
RUN apk --no-cache add ssmtp
|
||||
COPY my_ssmtp.conf /etc/ssmtp/ssmtp.conf
|
||||
|
||||
### Comment ça fonctionne
|
||||
|
||||
Chaque vérificateur tourne comme un service HTTP autonome. happyDomain lui délègue
|
||||
les demandes de vérification via la variable d'environnement
|
||||
`HAPPYDOMAIN_CHECKER_<ID>_ENDPOINT`. Si aucun point d'accès n'est configuré, le
|
||||
vérificateur correspondant s'exécute localement dans le processus happyDomain.
|
||||
|
||||
Deux vérificateurs s'appuient sur des services tiers supplémentaires :
|
||||
|
||||
- **Zonemaster** (`checker-zonemaster`) interroge le service `zonemaster/backend`.
|
||||
La variable `HAPPYDOMAIN_CHECKER_ZONEMASTER_ZONEMASTERAPIURL` indique au
|
||||
vérificateur l'adresse de ce service.
|
||||
- **Matrix federation tester** (`checker-matrix`) interroge le service
|
||||
`matrixdotorg/federation-tester-backend`. La variable
|
||||
`HAPPYDOMAIN_CHECKER_MATRIXIM_FEDERATIONTESTERSERVER` pointe vers son point
|
||||
d'accès de rapport.
|
||||
|
||||
### Optionnel : happyDeliver
|
||||
|
||||
Si vous exploitez une instance [happyDeliver](https://happydeliver.io) pour
|
||||
surveiller les flux e-mail, décommentez la ligne
|
||||
`HAPPYDOMAIN_CHECKER_HAPPYDELIVER_ENDPOINT` et ajoutez le service correspondant :
|
||||
|
||||
```yaml
|
||||
checker-happydeliver:
|
||||
image: happydomain/checker-happydeliver
|
||||
restart: unless-stopped
|
||||
```
|
||||
|
||||
### Optionnel : clés API pour checker-blacklist
|
||||
|
||||
Le service `checker-blacklist` fonctionne sans clé API (il utilise des listes
|
||||
de blocage DNS par défaut), mais vous pouvez activer des sources supplémentaires
|
||||
— Google Safe Browsing, VirusTotal, abuse.ch URLhaus — en configurant les
|
||||
options d'administration correspondantes depuis l'interface d'administration de
|
||||
happyDomain une fois la pile démarrée.
|
||||
|
||||
|
||||
## Interface d'administration
|
||||
|
||||
happyDomain expose certaines commandes d'administration à travers un socket unix.
|
||||
Le conteneur docker contient un script pour accéder à cette partie d'administration : `hadmin`.
|
||||
|
||||
Vous pouvez l'utiliser de cette manière :
|
||||
happyDomain expose des commandes d'administration à travers un socket Unix.
|
||||
Le conteneur inclut l'utilitaire `hadmin` :
|
||||
|
||||
```
|
||||
docker exec my_container hadmin /api/users
|
||||
docker exec my_container hadmin /api/users/0123456789/send_validation_email -X POST
|
||||
```
|
||||
|
||||
Il s'agit en fait d'une surcouche au-dessus de `curl`, mais vous devez commencer par l'URL, et placer les options après.
|
||||
`hadmin` est une surcouche légère autour de `curl` — commencez par le chemin
|
||||
d'URL, puis ajoutez les options `curl` après.
|
||||
|
||||
|
||||
## Utilisation d'un fichier de configuration
|
||||
|
||||
Plutôt que des variables d'environnement, vous pouvez placer un fichier de
|
||||
configuration dans `/data/happydomain.conf` (dans le volume de données) ou le
|
||||
monter directement sur `/etc/happydomain.conf` :
|
||||
|
||||
```
|
||||
docker run -v happydomain.conf:/etc/happydomain.conf -p 8081:8081 happydomain/happydomain
|
||||
```
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue