Главная/Разработка/Traefik

Установка Traefik в Docker с автоматическим HTTPS

Установка Traefik нужна, когда на сервере много контейнеров и править конфиг при каждом новом лень: Traefik читает метки контейнеров Docker, сам строит маршруты и получает сертификаты Let's Encrypt. Обратный прокси, то есть сервер, который принимает запросы из интернета и раздаёт их приложениям, настраивается здесь строками в compose-файле самих приложений.

5 мин чтенияДанные проверены 16 октября 2026

Ответ за 30 секунд

Traefik окупается, когда контейнеров больше трёх-четырёх и они меняются: новое приложение получает домен и HTTPS одной группой меток. Для двух постоянных сайтов проще Caddy. Не публикуйте порт панели 8080 и помните, что сокет Docker даёт Traefik большие права.

Почасовая оплата: поднимите стенд с несколькими приложениями, проверьте метки и удалите сервер, когда схема отлажена.

Проверка настройки Traefik перед выпуском сертификата

01 · 1 мин

Как устроен Traefik: точки входа, роутеры и сервисы#

В отличие от Nginx, Traefik не требует перезагрузки при изменении настроек. Он следит за Docker и перестраивает маршруты, когда контейнер появляется или исчезает. Четыре термина, на которых держится вся настройка:

ТерминЧто этоПример
Точка входа (entrypoint)Порт, который слушает Traefikweb на :80, websecure на :443
Роутер (router)Правило: какие запросы кудаHost с адресом вашего домена
Сервис (service)Куда отправить запрос: контейнер и его портпорт 5678 у n8n
Мидлвар (middleware)Обработка по пути: пароль, переадресацияbasicauth

Если приложений два-три и они не меняются, этот механизм избыточен: посмотрите Caddy или Nginx. Готовый образ сервера с Traefik есть в маркетплейсе Таймвеб Клауд, но метки приложений пишете вы, так что compose-файл ниже нужен в любом случае.

02 · 1 мин

Установка Traefik 3 в Docker с сертификатом Let's Encrypt#

  1. Направьте A-запись нужного поддомена на IP сервера и откройте порты 80 и 443.
  2. Создайте файл compose.yaml с содержимым ниже и подставьте свой адрес почты и домен.
  3. Запустите docker compose up -d, откройте домен и проверьте замок в адресной строке.
services:
  traefik:
    image: traefik:v3.4
    restart: unless-stopped
    security_opt: ["no-new-privileges:true"]
    command:
      - --providers.docker=true
      - --providers.docker.exposedbydefault=false
      - --providers.docker.network=proxy
      - --entrypoints.web.address=:80
      - --entrypoints.websecure.address=:443
      - --entrypoints.web.http.redirections.entrypoint.to=websecure
      - --entrypoints.web.http.redirections.entrypoint.scheme=https
      - --certificatesresolvers.le.acme.email=you@example.com
      - --certificatesresolvers.le.acme.storage=/letsencrypt/acme.json
      - --certificatesresolvers.le.acme.httpchallenge=true
      - --certificatesresolvers.le.acme.httpchallenge.entrypoint=web
    ports: ["80:80", "443:443"]
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - letsencrypt:/letsencrypt
    networks: [proxy]
  whoami:
    image: traefik/whoami
    restart: unless-stopped
    networks: [proxy]
    labels:
      - traefik.enable=true
      - traefik.http.routers.whoami.rule=Host(`whoami.example.com`)
      - traefik.http.routers.whoami.entrypoints=websecure
      - traefik.http.routers.whoami.tls.certresolver=le
networks:
  proxy:
    name: proxy
volumes:
  letsencrypt:

Тег образа взят из примеров документации Traefik (ветка v3.4), текущую версию смотрите в Docker Hub. Для отладки добавьте в command строку --certificatesresolvers.le.acme.caserver=https://acme-staging-v02.api.letsencrypt.org/directory: тестовый сервер не упирается в жёсткие лимиты, но выдаёт сертификат, которому браузер не верит.

03 · 1 мин

Метки Traefik для вашего приложения: домен, порт и пароль#

Чтобы подключить любое приложение, достаточно сети proxy и пяти меток. Вот пример для n8n, который слушает порт 5678:

  n8n:
    image: docker.n8n.io/n8nio/n8n
    networks: [proxy]
    labels:
      - traefik.enable=true
      - traefik.http.routers.n8n.rule=Host(`n8n.example.com`)
      - traefik.http.routers.n8n.entrypoints=websecure
      - traefik.http.routers.n8n.tls.certresolver=le
      - traefik.http.services.n8n.loadbalancer.server.port=5678

Последняя метка обязательна, если образ объявляет несколько портов или не объявляет ни одного. Пароль на панель, у которой нет своего входа, ставится мидлваром: traefik.http.middlewares.auth.basicauth.users=admin:ХЭШ, затем метка traefik.http.routers.n8n.middlewares=auth. Хэш получают командой htpasswd -nb admin пароль из пакета apache2-utils.

Знак доллара в хэше удваивают

В compose-файле одиночный знак $ означает подстановку переменной, поэтому каждый $ в хэше basicauth записывают как $$. Без этого Traefik получит обрезанный хэш и будет отвечать отказом на любой пароль.

04 · 1 мин

Ошибки Traefik: 404, Bad Gateway и сертификат по умолчанию#

Что видитеПричинаЧто сделать
404 page not foundНи один роутер не подошёл: нет метки enable, в Host опечатка или контейнер не в сети proxyСверьте метки командой docker inspect и сеть командой docker network inspect proxy
Bad GatewayTraefik нашёл контейнер, но не достучался: указан не тот порт, или приложение слушает только 127.0.0.1 внутри контейнераЗадайте метку loadbalancer.server.port и адрес 0.0.0.0 в настройках приложения
Сертификат TRAEFIK DEFAULT CERTСвой сертификат ещё не выпущен: DNS не указывает на сервер или закрыт порт 80docker compose logs traefik, поиск строк про acme
Порт 80 закрыт провайдером или файрволомHTTP-проверка не пройдётЗамените httpchallenge на --certificatesresolvers.le.acme.tlschallenge=true: ей нужен только порт 443

Про безопасность: флаг :ro у сокета Docker не делает его безопасным, через сокет по-прежнему доступен весь API. Поэтому ставьте exposedbydefault=false, не открывайте порт панели и не давайте Traefik больше, чем нужно. Панель, если она нужна, включают флагом --api.dashboard=true и публикуют роутером с сервисом api@internal под паролем.

Инструмент · 1 мин

Проверка настройки Traefik перед выпуском сертификата#

Лимиты Let's Encrypt прощают немного ошибок, поэтому сначала пройдите список ниже, а потом запускайте рабочий выпуск. Для переезда на другой сервер достаточно перенести том letsencrypt: в нём лежит acme.json с сертификатами и ключами.

Перед первым запуском Traefik

Отметьте, что уже готово: калькулятор покажет следующий шаг

Обновление сводится к смене тега образа и команде docker compose pull с последующим docker compose up -d. Перед сменой ветки прочитайте заметки о миграции на сайте Traefik. Копии тома и порядок их хранения описаны на странице сервер для бэкапов.

06 · 1 мин

Вопросы об установке Traefik#

Чем Traefik отличается от Nginx для контейнеров?

Nginx читает файл конфигурации и требует перезагрузки, Traefik подхватывает метки Docker на лету. Для нескольких постоянных сайтов Nginx проще, для десятка меняющихся контейнеров удобнее Traefik.

Почему Traefik отвечает 404 вместо моего приложения?

Роутер не нашёл подходящего правила. Проверьте метку traefik.enable=true, написание домена в Host и то, что приложение подключено к той же сети, что и Traefik.

Как включить панель Traefik и не открыть её всему интернету?

Включите флаг api.dashboard, не публикуйте порт 8080 и подключите панель отдельным роутером с сервисом api@internal, мидлваром basicauth и сертификатом.

Как перенести сертификаты Traefik на новый сервер?

Скопируйте том с файлом acme.json и запустите тот же compose-файл. Traefik увидит готовые сертификаты и не станет заказывать их заново, пока DNS указывает на новый IP.

Почему этому можно верить

Как мы проверяли

Требования из документацииРесурсы, порты и команды сверены с официальной документацией, дата проверки указана.
Всё можно повторитьКоманды и расчёты описаны так, что их повторит любой читатель.
Независимый справочникНе связан с разработчиками приложений и провайдерами и пишет о минусах тоже.

Источники цифр на этой странице: VPS и VDS серверы Таймвеб Клауд, timeweb.cloud/services/vds-vps, проверено 14 октября 2026; Маркетплейс приложений Таймвеб Клауд, timeweb.cloud/marketplace, проверено 14 октября 2026; Документация Traefik: публикация сервисов в Docker, doc.traefik.io/traefik/expose/docker/basic, проверено 15 октября 2026.

SBРедакция SelfBase · обновлено 16 октября 2026

Запустите свой сервер за пару минут

Почасовая оплата: тестовый стенд на сутки стоит десятки рублей, а не месячный тариф.

  • NVMe-диски и гарантированная доля процессора
  • Root-доступ и любой софт, от Docker до игровых серверов
  • Маркетплейс: 91 приложение в один клик
  • Бесплатный перенос проекта силами специалистов
Проверка