Первое знакомство с n8n

Из статьи вы узнаете что такое n8n и как его установить на свой сервер в docker.

Что такое n8n

n8n — это инструмент для автоматизации рабочих процессов (workflow automation). Представлен как визуальный конструктор, доступный через веб-интерфейс.

Вы можете использовать n8n как облачный сервис, или развернуть на своём сервере бесплатно (по лицензии fair-code) — ниже покажу, как.

Полезные сылки:

В n8n всё строится на «нодах» — блоках, которые вы добавляете на холст, настраиваете и связываете в цепочки.

Примеры популярных нод:

  • Manual Trigger — запускает воркфлоу вручную по нажатию кнопки.
  • Schedule Trigger — выполняет действия по расписанию (например, каждый час).
  • HTTP Request — делает запросы к сторонним API (погода, курсы валют, CRM и т.д.).
  • Edit Fields — редактирует данные: оставляет нужные поля, переименовывает, вычисляет.
  • Telegram — отправляет сообщения, принимает команды, работает с файлами.

Интеграций очень много: базы данных, GitHub/GitLab, почта, Google Drive, Slack, Jira, Notion и многие другие.

Создавая workflow вы можете придумывать свою логику:

  • Запуск по расписанию или срабатыванию триггера (новый файл в Google Drive, письмо на email, вебхук).
  • Ветвление: если данные одни -> сделать первое действие, а если другие -> выполнить другое действие.
  • Циклы, обработка ошибок, преобразование данных.

Я пока не пользовался n8n на практике, поэтому реальных кейсов автоматизации у меня нет. Но если что-нибудь придумаю, обязательно напишу.😄

🔒 Функциональные ограничения бесплатной версии:

  • Только стандартная аутентификация по email + пароль. Нет ldap, sso.
  • Можно создать только одного администратора (owner), остальных будут простыми пользователями (member).
  • Нет логов: кто создал/изменил/удалил воркфлоу, когда менялись креденшелы, кто запускал исполнения.

📜 Лицензионные ограничения:

  • Разрешено: внутреннее использование в компании, личные проекты, автоматизация для некоммерческих целей, тестирование, модификация кода.
  • Запрещено без покупки лицензии:
    • Предоставлять n8n как сервис другим клиентам (SaaS на базе n8n).
    • Использовать n8n как ядро коммерческого продукта.
    • Перепродавать или сдавать в аренду.

Установка n8n в docker

Так как я буду показывать установку n8n в dicker, то считаю что у вас уже установлены docker и docker compose. Про их установку я писал здесь - Первое знакомство с Docker — установка и базовые понятия.

Во-первых, создаём и переходим в каталог проекта:

mkdir n8n && cd n8n

Затем, подготовим всё для запуска обратного прокси caddy. Создадим само-подписанный SSL сертификат:

mkdir tls/
openssl genrsa -out tls/key.pem 2048
openssl req -new -x509 -sha256 \
  -key tls/key.pem \
  -out tls/cert.pem \
  -days 3650 \
  -subj "/CN=ваш_домен" -addext "subjectAltName = DNS:ваш_домен"
  • Не забудьте, в команде выше, изменить ваш домен.

Создадим Caddyfile:

{
    # Отключаем автоматический HTTPS (Let's Encrypt), так как используем свой сертификат
    auto_https off
}
ваш_домен {
    tls /etc/caddy/tls/cert.pem /etc/caddy/tls/key.pem
    reverse_proxy n8n:5678
}

Пришло время создать docker-compose.yml:

services:
  n8n:
    image: docker.n8n.io/n8nio/n8n
    container_name: n8n
    environment:
      - N8N_HOST=ваш_домен
      - N8N_PORT=5678
      - N8N_PROTOCOL=https
      - WEBHOOK_URL=https://ваш_домен/
      - N8N_EDITOR_BASE_URL=https://ваш_домен/
      - N8N_SECURE_COOKIE=true
      - N8N_PROXY_HOPS=1
      - N8N_LOG_LEVEL=error
      - GENERIC_TIMEZONE=Europe/Moscow
    volumes:
      - n8n_data:/home/node/.n8n
    restart: unless-stopped
  caddy:
    image: caddy:latest
    container_name: caddy
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - ./tls:/etc/caddy/tls:ro
      - caddy_data:/data
      - caddy_config:/config
    restart: unless-stopped
    depends_on:
      - n8n

volumes:
  caddy_data:
  caddy_config:
  n8n_data:

И наконец, запускаем контейнеры:

sudo docker compose up -d

Первый вход

Открываем ресурс в браузере и создаём нового пользователя:

  • Это будет администратор системы, только он сможет создавать остальных пользователей.

Затем у вас спросят, что у вас за компания и от куда вы узнали про n8n:

Создание первого Workflow

После входа, вы увидите чистый холст. На этот холст вы будите добавлять ноды и соединять их в цепочку.

Добавим на холст ноду Manual Trigger. С его помощью вы сможете запускать workflow вручную, просто кликнув по нему.

Затем, добавим HTTP Request. Через него мы обратимся api.exchangerate-api.com за курсом валют. После добавления укажем:

  • метод - get;
  • url - https://api.exchangerate-api.com/v4/latest/USD.

И ещё добавим Edit Fields. В настройках просто перетащите слева RUB в поле data:

После перетаскивания в поле появляется запись: {{ $json.rates.RUB }}. А в выводе появляется результат: 75.04.

Вот как будет выглядеть наш workflow:

Если снизу открыть панель Logs, и выбрать Edit Fields вы увидите курс Доллара по отношению к Рублю:

Полученный результат вы можете: отправить себе на почту, в telegram, в google drive, сохранить в базе данных и т.д.

Отправка результата в Telegram

Для Telegram API вам потребуется создать Credential. Это делается в верхнем левом меню.

Здесь просто введите токен вашего Telegram бота:

После этого, добавьте ноду Telegram и выберите метод Send a text message. Перетяните RUB в поле Text. А в Chat ID напишите ID того чата, куда необходимо прислать сообщение (узнать его можно с помощью бота @IDd_Helper_Bot).

Теперь, как только вы запустите workflow, то получите сообщение в Telegram.

Вся сила n8n в узлах интеграции. Вы можете работать с GitLab, GitHub, Google Drive, Telegram API, SSH, Postgres, Zabbix API, OpenAI и ещё много с чем.


Если понравилась статья, подпишись на мой канал в VK или Telegram.