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"
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# 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-а видим, что конфиги из этой папки подключаются в основной конфиг
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
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
1 2 3 |
htpasswd -c /opt/mailu/overrides/nginx/.htpasswd USERNAME |
и там же конфиг для Nginx
1 2 3 4 5 6 7 8 |
nano /opt/mailu/overrides/nginx/nginx.conf // с таким содержимым auth_basic "Restricted Area"; auth_basic_user_file /overrides/.htpasswd; |
Дальше перезагружаем сборку и все начинает работать
1 2 3 |
docker-compose -p mailu down && docker-compose -p mailu up -d |
Теперь перед попаданием на страницу входа в почту, мы получим дополнительный слой авторизации
Author: | Tags: /
| Rating:
4 comments.
Write a comment