Этот скрипт настраивает обратный прокси -сервер Traefik с LeSsEncrypt Certs для ваших общедоступных веб -приложений. В своем примере я установил докувики (отличный простой текст с приложением Marckdown Wiki). Во время этого я чувствовал, что не было действительно простого руководства для достижения этого результата, и может быть немного запутанным для других людей, так что вы идете.
Примечание: это в настоящее время работает с Traefik v1. Поддержка V2 скоро придет.
Я купил свой домен через Namecheap. Какой бы регистратор домена вы ни проходили, вам нужно будет правильно настроить записи DNS. Я рекомендую Namecheap из -за того, насколько это было просто, но все они примерно одинаковы. Пока поставщик разрешает рекорды DNS с подстановочными знаками, вы должны быть полезны. На вкладке Namecheap "Advanced DNS" я только добавил это, измените значение IP-адреса на общедоступный IP-адрес вашего сервера:
| Тип | Хозяин | Ценить | Ттл |
|---|---|---|---|
| Запись | * | Ip-address | Автоматический |
Clone the Repo: git clone https://github.com/Starttoaster/docker-traefik.git
Каталог изменений: cd docker-traefik
Запустите скрипт: ./docker-traefik.sh
Справочник изменения: cd /opt/traefik
Как только вы ответите на пару вопросов, сценарий должен завершить. Если вы работаете на VPS (Cloud Server), вы должны быть готовы запустить docker-compose up -d и поднять ваши приложения. Если вы самостоятельно отправляетесь из дома, перейдите к следующим разделам для домашних сетей. Если вы хотите добавить больше или других приложений в файл Docker-Compose, вам просто нужно добавить раздел метки в каждую службу и просто изменить субдомен на то, что вы хотите, чтобы его URL.
Если вы сделали это руководство на сервере, используя частный IP -адрес (за каким -то маршрутизатором), не забудьте также открыть страницу конфигурации вашего маршрутизатора и перенаправить порты 80 и 443 на личный IP -адрес вашего сервера. Я не могу указать, как это сделать, так как каждый маршрутизатор имеет разные страницы конфигурации, но просто ищите Google для вашего маршрутизатора + «пересылка порта». Пока вы здесь, также убедитесь, что ваш сервер имеет статически назначенный частный IP. Это сохранит большую часть головной боли, если ваш сервер когда -либо будет перезагружен и назначит новый IP -адрес из вашего пула DHCP.
Настройка динамического DNS является совершенно необязательной. Поставщики интернет -услуг обычно не назначают статические общедоступные IP -адреса для жилых домов пользователей. Вы можете обнаружить, что ваш кабельный модем/маршрутизатор был сброшен по какой -то причине. После того, как модем/маршрутизатор вернулся в Интернете, он был потенциально назначен новый общедоступный IP -адрес DHCP вашего интернет -провайдера. В этом случае у вас есть два варианта:
Вручную найдите свой новый общедоступный IP-адрес (перейдите по адресу: https://diagnostic.opendns.com/myip) и измените разделы IP-Address, чтобы соответствовать вашему новому IP-адресу на ваших DNS, с теми, кто ваш поставщик DNS. Моим является основным DNS Namecheap.
Установите динамический DNS (DDNS). DDNS запускает минимальное веб -приложение с вашего домашнего сервера, которое периодически отправляет обновление того, какой IP -адрес вы в настоящее время используете для своего поставщика DNS. Он аутентифицируется для провайдера DNS через пассивную (ы), которая назначается поставщиком DNS, и если ваш IP -адрес когда -либо изменяется, поставщик DNS автоматически обновит свои записи. Я рекомендую следить за инструкциями по настройке здесь: https://github.com/qdm12/ddns-updater
Контейнер поддерживает Namecheap, Cloudflare, Godaddy, Duckdns и Dreamhost. Убедитесь, что у вас есть все необходимые параметры, когда сценарий просит их, следуя инструкциям с владельцем контейнера. При настройке CloudFlare, пожалуйста, посмотрите на мою суть на вызовах API CloudFlare здесь.
Это совершенно необязательно. Данная панель Traefik предлагает некоторую информацию о приложениях, стоящих за вашим веб -прокси. Я добавил условное, которое позволяет автоматизировать конфигурацию веб -панели. Вам понадобится «htpasswd», который я включил раздел ниже о том, как его получить. HTPASSWD - это всего лишь имя пользователя с хэшированным паролем. См. «Чтобы сгенерировать HTPASSWD» ниже. Когда настройка панели инструментов Traefik, вам просто нужно будет ввести свое имя пользователя и пароль в диалоговое окно, которое появляется по https://dash.YOUR-DOMAIN.TLD
Это совершенно необязательно. Если вы хотите, чтобы все ваши приложения имели дополнительный уровень защиты, вы можете настроить HTPASSWD в файле traefik.toml. HTPASSWD - это всего лишь имя пользователя с хэшированным паролем. Я добавил условное в сценарии, который будет настроить это для вас. Все, что вам нужно, это «htpasswd», чтобы войти, когда сценарий спрашивает об этом. Когда вы захотите посетить один из ваших веб -приложений, вам нужно будет ввести имя пользователя и пароль, которые вы выбрали в диалоговом окне, которое появляется.
htpasswd -nb user passwordУбедиться, что заменить пользователя на желаемое имя пользователя и пароль на желаемый пароль; или
http://www.htaccesstools.com/htpasswd-generator/Просто введите желаемое имя пользователя и пароль, затем скопируйте эту строку и введите ее в сценарий, когда его просят.
Для GitHub пользователь QDM12 для их легкого динамического DNS обновляет изображение Docker. QDM12/ddns-updater
Пользователю GitHub Szepeviktor за их вклад в этот сценарий.
Мирославу Прасилу для лучшего изображения Dokuwiki Docker на Docker Hub.