n8n — это self-hosted-платформа low-code-автоматизации, ставшая «швейцарским ножом» для интеграций. Она позволяет без программирования объединять десятки SaaS-сервисов, запускать триггеры по расписанию или webhook-событиям и формировать полноценные цепочки обработки данных.
Для личных проектов и тестовых стендов чаще всего выбирают развёртывание в Docker Compose: один YAML-файл, минимальные ресурсы, запускается за пару минут и остаётся управляемым стандартными командами docker compose
— идеальный сценарий для быстрого старта системного администратора.
По состоянию на 30 июня 2025 г. актуальной стабильной версией считается n8n 1.101.0.github.com
1. Почему именно Docker Compose?
Изоляция: n8n, база данных (если понадобится) и обратный прокси работают в собственных контейнерах, не загрязняя хостовую ОС.
Повторяемость: одинаковый
docker-compose.yml
запускается на ноутбуке, VPS или Kubernetes-нодулях.Обновления одной командой:
docker compose pull && docker compose up -d
.
2. Минимальные системные требования
Ресурс | Минимум для стенда |
---|---|
CPU | 1 vCPU |
RAM | 1 ГиБ |
Диск | 5 ГиБ SSD |
Порты | 5678/tcp |
Эти показатели подходят для десятка лёгких воркфлоу на SQLite. Продакшн-настройки рассматриваются во второй статье.
3. Подготовка окружения
sudo mkdir -p /opt/n8n && sudo chown $USER /opt/n8n
cd /opt/n8n
# Устанавливаем Compose (если ещё нет)
apt install -y ca-certificates curl gnupg lsb-release
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg
echo \
"deb [arch=$(dpkg --print-architecture) \
signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
apt update
apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64 \
-o /usr/local/bin/docker-compose && sudo chmod +x /usr/local/bin/docker-compose
4. Файл .env
N8N_VERSION=1.101.0
WEBHOOK_URL=http://<IP-или-домен>:5678/
N8N_BASIC_AUTH_USER=admin
N8N_BASIC_AUTH_PASSWORD=<СЛУЧАЙНЫЙ_ПАРОЛЬ>
Совет: храните
.env
вне VCS и добавляйте его в.gitignore
, чтобы не «засветить» пароли.
Так же:
mkdir -p ./n8n_data
chown -R 1000:1000 ./n8n_data
5. Базовый docker-compose.yml
services:
n8n:
image: n8nio/n8n:${N8N_VERSION}
restart: unless-stopped
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=${N8N_BASIC_AUTH_USER}
- N8N_BASIC_AUTH_PASSWORD=${N8N_BASIC_AUTH_PASSWORD}
- WEBHOOK_URL=https://your.website/
- N8N_SECURE_COOKIE=true
volumes:
- ./n8n_data:/home/node/.n8n
networks:
- n8nnet
caddy:
image: caddy:alpine
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
networks:
- n8nnet
networks:
n8nnet:
где WEBHOOK_URL=https://your.website/
- ваш домен.
Создайте файл Caddyfile
:
your.website {
reverse_proxy n8n:5678
}
где your.website
- ваш домен A-запись которого уже указывает на ваш сервер.
Запуск:
docker compose up -d
docker compose logs -f n8n # ждём строку "Editor is now accessible"
После этого n8n будет доступен по адресу:
https://your.website
С авторизацией по логину admin
и паролю который вы указали в файле .env
Теперь интерфейс доступен на http://<IP-хоста>:5678/
.
6. Ежедневные задачи администратора
Операция | Команда |
---|---|
Проверить статус | docker compose ps |
Посмотреть логи | docker compose logs --tail 100 -f n8n |
Обновить до новой версии | docker compose pull && docker compose up -d |
Создать резервную копию | tar -czf n8n_home.tgz ./n8n_data |
Откатиться на предыдущий tag | изменить N8N_VERSION + docker compose up -d |
7. Минимальная безопасность
Включите базовую авторизацию (
N8N_BASIC_AUTH_ACTIVE=true
).Ограничьте внешний доступ к порту 5678 файрволом или прокси.
Меняйте пароли при первом запуске и храните их в менеджере секретов.
Заключение
Быстрый выигрыш времени.
Для одиночных проектов установка из одногоdocker-compose.yml
— самый короткий путь от идеи до рабочего прототипа. Вы экономите часы ручной настройки и сразу видите результат.Небольшая инфраструктурная «цена».
Один vCPU, гигабайт RAM и пять гигабайт SSD-пространства достаточно, чтобы познакомиться с платформой, опробовать десятки нод и понять, подходит ли n8n именно под ваш сценарий.Обратная сторона минимализма.
SQLite не любит параллельных записей. При росте количества воркфлоу возможны блокировки БД и замедления UI. Базовую схему следует рассматривать как лабораторную.Лёгкость обслуживания.
Обновления, бэкапы и откаты реализуются всего одной-двумя командами Docker Compose, что снижает риск человеческой ошибки при рутинных операциях.Безопасность не «по остаточному принципу».
Даже в песочнице включайте базовую авторизацию и закрывайте порт 5678 файрволом. Чем раньше вы привьёте эти привычки, тем легче будет масштабироваться без внезапных «дыру в брандмауэре».Плавный путь к production.
Все переменные окружения и тома уже вынесены наружу; значит, переход на Postgres + Redis + Queue Mode сведётся к редактированию YAML, а не к полной миграции.Следующий шаг — автоматизация CI/CD.
Добавьтеdocker compose pull
иdocker compose up -d
в GitHub Actions или GitLab CI — и вы получите повторяемые деплой-пайплайны даже для персональных проектов.
Такой стенд подходит для прототипирования, обучения и домашних автоматизаций. Однако SQLite ограничивает параллелизм изполнения и масштабирование. Если вы планируете продакшн или коллективную работу, переходите к следующей статье, где мы соберём Production Stack с Postgres, Redis и очередями, оптимизированный для высокой нагрузки и надёжного горизонтального масштабирования.