Установка n8n локально: Docker Compose и первый workflow
Как запустить учебный n8n на компьютере, сохранить данные в Docker volume и проверить первый workflow без внешних API и ключей.
Для знакомства с n8n достаточно локального редактора и небольшого workflow без внешних подключений. Установим учебный экземпляр через Docker Compose, преобразуем одну запись и проверим, что данные не исчезают после остановки. Ключи ИИ-провайдеров для этого упражнения не нужны.
Мой подход. Я бы проверял установку на преобразовании одной записи, прежде чем подключать модель и Telegram. Так ошибки окружения не смешиваются с оплатой API, доступами и настройками внешних сервисов.
1. Подготовь Docker
Установи Docker Desktop и запусти его. На Linux можно использовать Docker Engine с Compose. В терминале проверь две команды:
docker version
docker compose version
Первая должна показать связь с сервером Docker, вторая — версию Compose. Если клиент установлен, но сервер недоступен, сначала запусти Docker: повторная установка n8n это не исправит. На Windows команды ниже удобно выполнять в WSL с подключённым Docker Desktop.
Текущая документация n8n рекомендует Docker Compose и описывает полный стек с n8n Assistant. Ниже — отдельный минимальный учебный вариант для обычных workflows, без Assistant и его sandbox-сервисов. Для их подключения используй полную инструкцию n8n.
Создай папку n8n-learning, открой её в терминале. Не используй каталог уже работающей установки: упражнение должно иметь собственные контейнеры и данные. На Windows с WSL держи папку внутри домашнего каталога Linux.
2. Запусти учебный экземпляр
Создай compose.yaml:
name: n8n-learning
services:
n8n:
image: n8nio/n8n:2.39.6
ports:
- "127.0.0.1:5678:5678"
environment:
TZ: Europe/Belgrade
GENERIC_TIMEZONE: Europe/Belgrade
N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS: "true"
volumes:
- n8n_data:/home/node/.n8n
volumes:
n8n_data:
Версия закреплена для воспроизводимости примера: на дату проверки 17 сентября 2026 года справка n8n указывает 2.39.6 как stable. Перед новой установкой позже проверь релизы n8n, особенно исправления безопасности. Путь тома и назначение часового пояса описаны в справке Docker-установки.
Адрес 127.0.0.1 ограничивает опубликованный порт этим компьютером. Это локальная лаборатория: внешние сервисы не смогут прислать сюда webhook по адресу localhost. Если твоему workflow нужен другой часовой пояс, измени оба значения осознанно до добавления расписания.
В папке с файлом выполни:
docker compose config --quiet
docker compose up -d
docker compose ps
docker compose logs --tail=60 n8n
Первая команда проверяет конфигурацию, вторая скачивает образ и запускает сервис. Посмотри состояние контейнера и логи. Затем открой в браузере http://localhost:5678 и пройди первоначальную настройку учётной записи. Сохрани данные входа.
Если порт занят, измени только левое число в публикации порта на 127.0.0.1:5679:5678, повтори запуск и открой localhost с портом 5679. Если контейнер завершается, ориентируйся на сообщение в логах; пустая страница браузера сама по себе не объясняет причину.
3. Проверь первый workflow
Создай workflow с именем Local installation check. Добавь Manual Trigger, затем Edit Fields (Set). В нём задай два поля вручную:
| Поле | Тип | Значение |
|---|---|---|
| product | String | Учебный набор |
| quantity | Number | 3 |
Добавь второй Edit Fields. В поле summary типа String включи Expression и вставь:
{{ $json.product + ': ' + $json.quantity + ' шт.' }}
Запусти весь workflow вручную. В выходных данных последнего узла ожидается summary со строкой Учебный набор: 3 шт.. Для такой проверки не нужен Code node, поэтому настройка отдельного исполнителя Python или JavaScript не влияет на результат.
Теперь измени количество на 0 и повтори запуск. Ожидаемая строка — Учебный набор: 0 шт.. Проверка нуля помогает заметить, если поле случайно заменили фиксированным текстом. Если вывод остался прежним, проверь выражение и наличие закреплённых тестовых данных у узлов.
4. Проверь сохранение данных
Дождись сохранения workflow в редакторе, затем останови и запусти сервис:
docker compose stop
docker compose start
Обнови страницу, найди Local installation check и снова выполни его. Ожидаются те же узлы и результат с нулём. В конфигурации именованный том сохраняет данные отдельно от контейнера. Он нужен для работы после перезапуска, но сам по себе не заменяет резервную копию.
Для окончания учебной сессии достаточно docker compose stop. Не добавляй -v к команде удаления стека, если хочешь сохранить том: удаление тома уничтожит его данные. Перед обновлением рабочей установки потребуется отдельный план резервного копирования и восстановления.
Когда оба запуска прошли, можно переходить к первому ИИ-агенту в n8n. Для получения данных извне пригодится разбор webhook, но постоянный публичный доступ требует отдельной серверной настройки с HTTPS. Локальную лабораторию не стоит считать готовым сервером для бизнеса.
Собери своего ИИ-агента и проверь результат
«AI Agents: от vibe coding к AI-команде»: desktop agents, MCP, skills, evals и harness. Отдельные воркшопы — от подключения инструментов до контроля качества.
7 практических воркшопов · записи · вопросы автору в чате
Посмотреть программу курса ↗