-
Quentin Duchemin authoredQuentin Duchemin authored
docker-compose.yml 3.75 KiB
version: "3.7"
#attention, docker-compose préfixe le nom du réseau créé par le nom du projet (contenu dans le .env, sinon c'est le nom du dossier)
networks:
mail:
volumes:
mail-mda-maildir:
name: mail-mda-maildir
mail-mta-log:
name: mail-mta-log
services:
mail-mda:
image: registry.picasoft.net/pica-mail-mda:v1.0
build: ./pica-mail-mda
container_name: pica-mail-mda
ports:
- "143:143"
- "993:993"
networks:
- mail
hostname: pica-mail-mda
volumes:
- mail-mda-maildir:/home
- /DATA/docker/mail/ssl/:/certs-ssl/:ro
environment:
LDAP_ADDRESS: ldap.picasoft.net
LDAP_NSS_CN: cn=mail,ou=Services,dc=picasoft,dc=net
LDAP_BASE: dc=picasoft,dc=net
USER_FILTER: (uid=%n)
PASSWORD_FILTER: (uid=%n)
env_file: ./secrets/mail.secrets
mail-mta:
image: registry.picasoft.net/pica-mail-mta:v1.0
build: ./pica-mail-mta
container_name: pica-mail-mta
ports:
- "25:25"
- "465:465"
- "587:587"
networks:
- mail
volumes:
- mail-mta-log:/var/log
#doit contenir selecteur.domaine.rsa
- /DATA/docker/mail/opendkim/:/etc/dkimkeys/
- /DATA/docker/mail/ssl/:/certs-ssl/
env_file: ./secrets/mail.secrets
environment:
#adresse et port du serveur LMTP i.e. le MTA
LMTP_LAN_HOSTNAME: pica-mail-mda.pica_mail
LMTP_PORT: 24
#nom d'hôte sous lequel Postfix répondra aux requêtes SMTP
MY_HOSTNAME: mail.picasoft.net
#domaine des mails
MY_DOMAIN: picasoft.net
#domaines mails qu'on s'autorise à relayer (qui ont le droit de passer à travers notre serveur si ils sont en expéditeur ou destinataire)
RELAY_DOMAINS: picasoft.net
#réglage de la connexion au serveur LDAP: protocole (ldap ou ldaps), hôte et port
LDAP_PROTOCOL: ldap
LDAP_SERVER_HOSTNAME: ldap.picasoft.net
LDAP_PORT: 389
#réglage du bind : login d'un compte qui a suffisamment de droits pour lire l'arborescence (à l'exception des mots de passe)
LDAP_BIND_DN: cn=mail,ou=Services,dc=picasoft,dc=net
#réglage de la manière dont on répertorie les comptes et les adresses existantes
#la config actuelle fait que la possession d'une adresse mail se fait ainsi : login => login@picasoft.net
#cependant, nous avons quand même deux couches différentes: l'existence d'un compte (SASL) et l'existence d'une adresse
#ce qui fait qu'on peut créer une adresse valide sans nécessairement lui associer un compte valide
#ainsi, on pourra recevoir des mails dans la boîte, mais on ne pourra pas se connecter en tant que cet utilisateur
#pour ce faire, il suffit d'utiliser des attributs LDAP différents
#nous utilisons donc le cn pour l'existence d'un compte LDAP, et l'uid pour l'existence d'une adresse
#niveau de l'arborescence à partir duquel les entrées sont trouvées:
LDAP_SEARCH_BASE: dc=picasoft,dc=net
#filtre permettant de répertorier les comptes SASL
LDAP_SASL_FILTER: "cn=%u"
#filtre permettant de répertorier les adresses mail
LDAP_VIRTUAL_MAILBOX_FILTER: "uid=%s"
#ajout de listes noires pour éviter le SPAM. La décision politique et l'éthique associée sortent du cadre de la conception de cette image et doivent être discutées par l'asso; en tout cas, si on lève cette restriction, elle doit être remplacée par une autre (un spamassassin par exemple).
SMTPD_CLIENT_RESTRICTIONS: reject_rbl_client sbl.spamhaus.org, reject_rbl_client dnsbl.sorbs.net
#prefixe DKIM, utilise pour identifier la clef
DKIM_SELECTOR: janv2019
labels:
- "traefik.frontend.rule=Host:mail.picasoft.net"
- "traefik.port=80"
- "traefik.enable=true"
- "traefik.docker.network=pica_mail"