Самый простой способ настроить HTTPS на docker Django

Обычно для крупных проектов я использую nginx, либо полноценные CDN сервисы вроде CloudFlare которые дают https из коробки. Но в моём случае мне требовалось развернуть на дешевом впс сервере всю инфраструктуру, и чтобы был https. Мне нехотелось разбиратся в тонкостях настройки nginx и копатся в каких-то конфигах. В итоге я нашел решение - Caddy.

Все что нужно для настройки - DNS A запись, и внешний айпи. Чтобы добавить Caddy к себе в docker-compose, я создал отдельный файл docker-compose.prod.yml:

version: '3'

services:
  caddy:
    image: caddy
    ports:
      - 80:80
      - 443:443
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - caddy_data:/data
      - caddy_config:/config
volumes:
  caddy_data:
  caddy_config:

Также создал Caddyfile в корне проекта:

bbak.mkhitaryan.pw {
  reverse_proxy web:8000
}

Все что нужно для настройки - поменяйте домен в директиве с bbak.mkhitaryan.pw на собственный. И всё! Когда сделаете docker-compose up -f docker-compose.yml -f docker-compose.prod.yml, то на вашем домене будет http/https сервер готовый принимать подключения! Выдача сертификата происходит автоматически, тк Caddy имеет встроенный в себя certbot.

Комментарии

Популярные сообщения из этого блога

DOS атака при помощи Python

Ведем телеграм канал через питон

Django migrations не видит изменения моделей