n8n это сервис для автоматизации: вы соединяете приложения в цепочки действий без программирования. Он есть и как облачный сервис, и как программа, которую можно установить у себя. Задачи под него собраны на странице VPS для n8n.
Здесь собран минимальный вариант с Docker Compose и обратным прокси Caddy: Caddy принимает запросы из интернета, сам получает сертификат HTTPS и передаёт запросы в n8n.
Это короткая схема на одном контейнере n8n, собранная по разделам документации про Docker и работу за обратным прокси (сверено 5 октября 2026 года). Официальный файл Compose от n8n длиннее и включает дополнительные сервисы. n8n меняется быстро, поэтому при расхождениях верьте docs.n8n.io.
Проверено на сервере 5 октября 2026 года: на новом VPS с Ubuntu 26.04 эта схема запустила n8n версии 2.41, резервная копия тома, восстановление и обновление отработали. Выпуск сертификата не проверялся: для него нужен домен.
Что нужно заранее
- VPS с Ubuntu 24.04 или 26.04 и ресурсами не меньше 2 ядер и 4 ГБ памяти. Цены на такую конфигурацию в нашей базе: от 650 ₽ до 1 800 ₽ в месяц на 5 октября 2026 года. Подобрать сервер.
- Установленный Docker с плагином Compose: инструкция.
- Домен или поддомен (пусть
n8n.example.com), у которого A-запись указывает на IP сервера. - Открытые порты 80 и 443:
sudo ufw allow 80,443/tcp. Порт 80 нужен Caddy для получения сертификата.
Шаг 1. Файлы проекта
mkdir -p ~/n8n && cd ~/n8n
nano compose.yaml
Первая строка создаёт папку проекта и переходит в неё, вторая открывает редактор. Вставьте:
services:
n8n:
image: n8nio/n8n
restart: unless-stopped
environment:
- N8N_WEBHOOK_URL=https://n8n.example.com/
- N8N_PROXY_HOPS=1
- GENERIC_TIMEZONE=Europe/Moscow
- TZ=Europe/Moscow
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
volumes:
- n8n_data:/home/node/.n8n
caddy:
image: caddy:2
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy_data:/data
- caddy_config:/config
volumes:
n8n_data:
name: n8n_data
caddy_data:
caddy_config:
Что здесь важно:
image: n8nio/n8nофициальный образ n8n, тот же, что в документации.N8N_WEBHOOK_URLсообщает n8n его внешний адрес: без него за прокси в вебхуках будет неверный адрес. В старых версиях n8n эта переменная называласьWEBHOOK_URL.N8N_PROXY_HOPS=1говорит n8n, что перед ним стоит один прокси и адресу посетителя из его заголовков можно верить.N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=trueзакрывает файл настроек от чтения другими пользователями. Так рекомендует документация.GENERIC_TIMEZONEиTZзадают часовой пояс для расписаний. Подставьте свой.n8n_data:/home/node/.n8nтом, в котором хранятся ваши сценарии, учётные данные и настройки. Без тома всё пропадёт при пересоздании контейнера.- У n8n нет секции
ports: наружу он не открыт, до него можно добраться только через Caddy. - Тому дано явное имя
n8n_data, чтобы его проще было копировать в резервную копию.
Теперь файл Caddyfile рядом с compose.yaml:
nano Caddyfile
n8n.example.com {
reverse_proxy n8n:5678
}
Две строки: для домена n8n.example.com передавать запросы контейнеру n8n на порт 5678. Сертификат HTTPS Caddy получит и будет продлевать сам, если домен указывает на сервер и порты 80 и 443 доступны.
Шаг 2. Запуск
docker compose up -d
docker compose logs -f n8n
Первая команда скачивает образы и запускает контейнеры в фоне. Вторая показывает журнал n8n; выйти из него можно сочетанием Ctrl+C. Когда в журнале появится сообщение о готовности, откройте в браузере https://n8n.example.com. n8n предложит создать учётную запись владельца: сделайте это сразу, пока адрес никому не известен.
Если сертификат не выдался, посмотрите docker compose logs caddy: чаще всего причина в том, что запись домена ещё не обновилась или закрыт порт 80.
Данные и ключ шифрования
n8n шифрует сохранённые учётные данные интеграций ключом, который создаёт при первом запуске и хранит в своей папке .n8n, то есть в томе n8n_data. Потеряете том и ключ, данные не расшифровать. Поэтому том нужно бэкапить. Подробнее о том, как строить резервное копирование в целом, написано в статье резервные копии VPS.
Обновление
cd ~/n8n
docker compose pull
docker compose down
docker compose up -d
pull скачивает свежие образы, down останавливает и удаляет старые контейнеры, up -d запускает новые. Том с данными не затрагивается. Перед обновлением сделайте резервную копию, а перед крупными версиями загляните в примечания к выпуску на docs.n8n.io.
Резервная копия тома
docker compose stop n8n
docker run --rm -v n8n_data:/data -v "$PWD":/backup alpine tar czf /backup/n8n_data-$(date +%F).tgz -C /data .
docker compose start n8n
Первая команда останавливает n8n, чтобы файлы не менялись во время копирования. Вторая запускает временный контейнер Alpine, который упаковывает содержимое тома в архив в текущей папке. Третья запускает n8n обратно. Архив скопируйте с сервера на другой компьютер или в отдельное хранилище: копия на том же диске не спасёт от потери сервера.
Восстановление: создайте пустой том и распакуйте в него архив, например docker run --rm -v n8n_data:/data -v "$PWD":/backup alpine tar xzf /backup/ИМЯ_АРХИВА.tgz -C /data.
Что делать дальше
Подберите сервер под n8n: VPS 2 ядра, 4 ГБ. Если вы строите ИИ-агентов, заложите запас по памяти. До запуска пройдите первую настройку сервера, а о сертификатах в целом читайте в статье бесплатный SSL на VPS.
