Last active
September 1, 2024 11:10
-
-
Save 50Bytes-dev/ef580ec4c1d795ea6117f335389eeaba to your computer and use it in GitHub Desktop.
ACME traefik get manual dns challenge
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
services: | |
django: &django | |
build: | |
context: . | |
dockerfile: ./compose/django/Dockerfile | |
image: backend_local_django | |
depends_on: | |
- postgres | |
- redis | |
volumes: | |
- .:/app | |
- ./tmp:/tmp | |
env_file: | |
- .env | |
expose: | |
- 8000 | |
user: 1000:1000 | |
stdin_open: true | |
tty: true | |
command: /start | |
labels: | |
- "traefik.enable=true" | |
- "traefik.http.routers.django.rule=Path(`/`)" # Путь до сервиса django = https://*.mydomain.com/ | |
- "traefik.http.routers.django.entrypoints=web,websecure" # Попасть к нему можно через :80 и :443 | |
- "traefik.http.routers.django.tls=true" | |
- "traefik.http.routers.django.tls.certresolver=le" # Тип tls который мы создали в traefik в его commands | |
- "traefik.http.middlewares.django.compress=true" | |
- "traefik.http.routers.django.tls.domains[0].main=*.sadpos.pro" # Основной домен который будет использоваться для получения сертификата | |
# - "traefik.http.routers.django.tls.domains[0].sans=*.sadpos.pro" # Можно указать несколько | |
traefik: | |
build: | |
context: . | |
dockerfile: ./compose/production/traefik/Dockerfile | |
image: sadpos_production_traefik | |
depends_on: | |
- django | |
volumes: | |
- ./traefik/acme.json:/acme.json # Обязательный файл. Необходимо локально создать и установить chmod 600 acme.json | |
- /var/run/docker.sock:/var/run/docker.sock | |
command: | |
# - "--log.level=DEBUG" | |
- "--api.insecure=true" | |
- "--providers.docker=true" | |
- "--providers.docker.exposedbydefault=false" | |
- "--entryPoints.web.address=:80" | |
- "--entryPoints.websecure.address=:443" | |
- "[email protected]" # Здесь ваша почта | |
- "--certificatesResolvers.le.acme.storage=acme.json" # Обязательно указать файл где будут хранится сгенерированные ключи | |
- "--certificatesresolvers.le.acme.dnschallenge=true" # Тип получения сертификата dns chalenge | |
- "--certificatesresolvers.le.acme.dnschallenge.provider=manual" # Провайдер manual | |
- "--certificatesResolvers.le.acme.dnsChallenge.delayBeforeCheck=10" # Точно не понял.. но без него плохо работает. 10 секунд ожидания перед проверкой DNS записей | |
- "--certificatesResolvers.le.acme.dnsChallenge.resolvers=1.1.1.1:53,8.8.8.8:53,208.67.222.220:53" # DNS сервера через которые будет проведена проверка. Можете указать что то своё | |
ports: | |
- "80:80" | |
- "443:443" | |
- "8080:8080" | |
labels: | |
- "traefik.enable=true" | |
- "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https" # Тут всё для глобального редиректа на https | |
- "traefik.http.routers.redirs.rule=hostregexp(`{host:.+}`)" | |
- "traefik.http.routers.redirs.entrypoints=web" | |
- "traefik.http.routers.redirs.middlewares=redirect-to-https" | |
# tty: true # Нужно для ввода в терминал при получнии сертификата, потом отключаем | |
# stdin_open: true # Нужно для ввода в терминал при получнии сертификата, потом отключаем | |
# При первом запуске для получения сертификата используйте команду: | |
# docker-compose run -T --service-ports traefik | |
# | |
# После запуска вас попросят сделать запись в своём домене типа TXT с определенным значением, | |
# и затем нажать Enter. | |
# Делайте запись, проверяйте появилась ли данная запись на DNS серверах (первый раз у меня это заняло часа 2, а после минут 5-10) | |
# и нажимайте Enter. Там возможно будет какаято ошибка 400 (у меня такая была), но она ни на что не повлияла и в конце концов у вас | |
# в файле acme.json появятся записи. Готово! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FROM traefik:v2.2 | |
RUN touch acme.json | |
RUN chmod 600 acme.json |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment