VPS с самостоятельным администрированием
Webhook n8n: HTTPS, аутентификация и доставка
Укажите отправителю настоящий production URL
Webhook позволяет другому сервису запустить workflow HTTP-запросом. До регистрации адреса завершите установку HTTPS. Test URL и production URL в редакторе работают по-разному: тестовый listener включён на время проверки, а production требует опубликованного сценария. Копируйте нужный URL из Webhook-ноды, не собирайте его по памяти.
В комплекте заданы WEBHOOK_URL=https://your-domain/, HTTPS-адрес редактора и N8N_PROXY_HOPS=1 для единственного Caddy proxy. БД и task broker доступны внутри Docker, прямой порт редактора — только через loopback. При добавлении CDN или второго proxy заново проверьте число доверенных proxy и forwarded headers; не увеличивайте значение наугад.
Сначала соберите безвредный приёмник
Создайте workflow с POST Webhook и Respond to Webhook. В первой ноде выберите ответ через вторую. В Authentication выберите Header Auth и создайте credential со случайным значением приватного заголовка, например X-Workflow-Key. Верните фиксированный JSON {"accepted":true} без платных запросов и записи данных.
Проверьте test URL при включённом listener. Затем сохраните и опубликуйте workflow, проверьте production URL. Нужны четыре случая: правильный заголовок, отсутствующий, неверный и некорректное тело запроса. Аутентификация по заголовку не проверяет бизнес-поля JSON. Перед внешними действиями добавьте проверки обязательных полей, типов и длины.
Если провайдер подписывает тело webhook, проверяйте подпись по его спецификации. Пример с общим секретным заголовком такую проверку не заменяет. Не считайте трудноугадываемый путь достаточной аутентификацией.
Учитывайте дубликаты и timeout
Отправитель может повторить событие после timeout, хотя первое выполнение уже изменило внешний сервис. Повторный запуск workflow тоже способен повторить ранее успешное действие. Сохраняйте стабильный ID события и организуйте долговременную дедупликацию на стороне назначения или в хранилище с уникальным ограничением. Раздельные операции «проверить, затем вставить» без атомарной координации могут столкнуться.
Для платного inference timeout не доказывает, что токены не были потрачены. Ручной AI-пример отключает автоматические повторы ноды, но это не устраняет дубликаты отдельных webhook-событий. Комплект не гарантирует выполнение ровно один раз.
Ограничьте входящие HTTP-запросы
Caddy ограничивает тело запроса одним мегабайтом. Для больших файлов нужен продуманный путь через файловое хранилище, а не бесконтрольное увеличение лимита всех endpoint. Не передавайте токены в query string: их могут сохранить proxy и журналы запросов. Данные ошибочного выполнения также могут содержать входной payload.
404 часто означает неправильный test/production URL, неопубликованный workflow или выключенный тестовый listener. 502 обычно говорит, что proxy не соединяется с n8n. Ошибка TLS возникает ещё до запуска сценария. Проверяйте эти уровни последовательно по инструкции устранения ошибок.
Официальные источники: Reverse proxy configuration.
Тарифы из текущего каталога
Сейчас не удалось загрузить планы. Смотрите актуальные тарифы на странице цен.