Traefik в данном случае используется для упрощения работы с локальными сайтами.
Принцип работы будет примерно следующий: Запускается traefik, он принимает все запросы к локальным доменам и проксирует их в нужный контейнер.
В данной папке расположены все необходимые для работы конфиги. Рекомендуется разместить эту папку отдельно от проекта и запустить контейнер.
docker compose up -d
После запуска должна появиться сеть traefik_default. Все прочие контейнеры для корректной работы должны быть тоже в ней.
Если по каким-то причинам сеть не создалась, можно попробовать создать её вручную.
Может пригодиться следующая команда:
docker network create traefik_default --label "com.docker.compose.network=default"
Далее можно запустить контейнер с traefik
docker compose up -d
При перезапусках компьютера и докера он будет автоматически запускаться благодаря restart: always. Если не хотите этого, просто измените указанный параметр.
docker-compose.yml так же содержит adminer и mailhog.
adminer используется для работы с базами данных. Доступен по адресу https://adminer.loc Для работы adminer не забудьте добавить в файл hosts
127.0.0.1 adminer.loc
Чтобы подключиться к серверу БД в окне авторизации в поле Server укажите название контейнера. В качестве логина и пароля укажите то, что задано в файле .env или значения по умолчанию из docker-compose.yml
mailhog используется для удобного просмотра отправленных сообщений из php контейнеров. Редирект писем настраивается в php.ini
mailhog по умолчанию доступен по адресу http://localhost:8025
Для работы с HTTPS необходимо сгенерировать сертификаты.
Сделать это можно с помощью утилиты mkcert https://github.com/FiloSottile/mkcert инструкции по установке можно посмотреть по ссылке.
Сгенерировать сертификаты можно командой
mkcert -cert-file certs/local-cert.pem -key-file certs/local-key.pem "localhost" "*.localhost" "phpmyadmin.loc"
Домены перечисляются через пробел. Wildcard сертификаты для корневых зон *.loc и прочих работать не будут (из-за политики безопасности браузеров) по этому перечисляйте все нужные домены как показано на примере.
Можно прописать домены в файле makefile в блоке с командой gen-cert, тогда можно будет просто выполнять команду make gen-cert и не писать список доменов в консоли
make gen-cert
После выполнения всех действий ваши локальные сайты будут доступны по https и не будут выдавать предупреждений о некорректном сертификате в браузерах.