Mailu: Http Basic Auth для WebMail

Потребовалось мне настроить почтовый сервер для собственных нужд, и в этот раз я решил не заморачиваться с "ручной" настройкой Exim+Dovecot+Roundcube, а воспользоваться готовым решением. В качестве такого решения я выбрал докер сборку Mailu (https://mailu.io). И все бы хорошо, но из коробки нельзя включить Http Basic Auth для WebMail (страницы логина в почту). А оставлять торчащую наружу форму входа мне тоже не хотелось..
Решение оказалось довольно простое, но без детального описания.
Итак, открываем конфиг docker-compose.yml, который находится в папке установки (у меня /opt/mailu/docker-compose.yml) и видим там что папка "/opt/mailu/overrides/nginx" прокидывается внутрь контейнера в папку "/overrides"
# Core services
front:
image: ${DOCKER_ORG:-mailu}/${DOCKER_PREFIX:-}nginx:${MAILU_VERSION:-1.9}
restart: always
env_file: mailu.env
logging:
driver: json-file
ports:
...
volumes:
- "/opt/mailu/certs:/certs"
- "/opt/mailu/overrides/nginx:/overrides:ro"
depends_on:
- resolver
Далее илем в контейнер и внутри конфига nginx-а видим, что конфиги из этой папки подключаются в основной конфиг
cat /etc/nginx/nginx.conf
...
# If TLS is failing, prevent access to anything except certbot
include /overrides/*.conf;
# Actual logic
location ~ ^/(sso|static)/ {
include /etc/nginx/proxy.conf;
proxy_pass http://$admin;
}
Т.е. достаточно просто сгенерировать файл пароля и подключить его, так я и сделал. В папке mailu создал файл .htpasswd
htpasswd -c /opt/mailu/overrides/nginx/.htpasswd USERNAME
и там же конфиг для Nginx
nano /opt/mailu/overrides/nginx/nginx.conf
// с таким содержимым
auth_basic "Restricted Area";
auth_basic_user_file /overrides/.htpasswd;
Дальше перезагружаем сборку и все начинает работать
docker-compose -p mailu down && docker-compose -p mailu up -d
Теперь перед попаданием на страницу входа в почту, мы получим дополнительный слой авторизации

Author: | Rating: / | Tags:

4 comments.
Write a comment