Caddy v2 (поддерживается сообществом)
Важно
Сначала прочитайте [обзор](r_p.md).
Внимание
Это вклад, поддерживаемый сообществом. Не стесняйтесь предлагать исправления.
Настройка Caddy с animails очень проста.
В Caddyfile вам просто нужно создать секцию для почтового сервера.
Например:
MAILCOW_HOSTNAME autodiscover.MAILCOW_HOSTNAME autoconfig.MAILCOW_HOSTNAME {
log {
output file /var/log/caddy/MAILCOW_HOSTNAME.log {
roll_disabled
roll_size 512M
roll_uncompressed
roll_local_time
roll_keep 3
roll_keep_for 48h
}
}
reverse_proxy 127.0.0.1:HTTP_BIND
}
Это позволяет Caddy автоматически создавать сертификаты, принимать трафик для указанных доменов и перенаправлять его в animails.
Важно: ACME-клиент animails должен быть отключен, иначе animails выдаст ошибку.
Поскольку Caddy сам заботится о сертификатах, мы можем использовать следующий скрипт для передачи созданных Caddy сертификатов в animails:
#!/bin/bash
MAILCOW_HOSTNAME=your.domain.tld
CADDY_CERTS_DIR=/var/lib/caddy/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory
MD5SUM_CURRENT_CERT=($(md5sum /opt/animails/data/assets/ssl/cert.pem))
MD5SUM_NEW_CERT=($(md5sum $CADDY_CERTS_DIR/$MAILCOW_HOSTNAME/$MAILCOW_HOSTNAME.crt))
if [ $MD5SUM_CURRENT_CERT != $MD5SUM_NEW_CERT ]; then
cp $CADDY_CERTS_DIR/$MAILCOW_HOSTNAME/$MAILCOW_HOSTNAME.crt /opt/animails/data/assets/ssl/cert.pem
cp $CADDY_CERTS_DIR/$MAILCOW_HOSTNAME/$MAILCOW_HOSTNAME.key /opt/animails/data/assets/ssl/key.pem
cp $CADDY_CERTS_DIR/$MAILCOW_HOSTNAME/$MAILCOW_HOSTNAME.crt /opt/animails/data/assets/ssl/$MAILCOW_HOSTNAME/cert.pem
cp $CADDY_CERTS_DIR/$MAILCOW_HOSTNAME/$MAILCOW_HOSTNAME.key /opt/animails/data/assets/ssl/$MAILCOW_HOSTNAME/key.pem
postfix_c=$(docker ps -qaf name=postfix-animails)
dovecot_c=$(docker ps -qaf name=dovecot-animails)
nginx_c=$(docker ps -qaf name=nginx-animails)
docker restart ${postfix_c} ${dovecot_c} ${nginx_c}
else
echo "Сертификаты не скопированы из Caddy (нет необходимости)"
fi
Внимание
Путь к сертификатам Caddy варьируется в зависимости от типа установки.<br>
В этом примере Caddy был установлен с использованием официального репозитория ([подробнее здесь](https://caddyserver.com/docs/install#debian-ubuntu-raspbian)).<br>
<br>
Чтобы найти путь к сертификатам Caddy в вашей системе, просто выполните `find / -name "certificates"`.
Этот скрипт можно вызывать как задачу cron каждый час:
0 * * * * /bin/bash /path/to/script/deploy-certs.sh >/dev/null 2>&1