Запуск n8n локально: Полное руководство по установке и настройке
n8n — это мощный инструмент для автоматизации рабочих процессов с открытым исходным кодом, который позволяет создавать сложные цепочки задач (workflows), интегрируя различные сервисы, API и базы данных. Локальная установка предоставляет полный контроль над данными, повышенную безопасность и неограниченные возможности кастомизации, что критически важно для многих компаний и разработчиков.
Предварительные требования и системные условия
Перед началом установки n8n убедитесь, что ваша система соответствует необходимым требованиям. Это гарантирует стабильную работу платформы.
Аппаратные и программные требования
- Операционная система: Windows 10/11 (64-bit), macOS 10.14+, или дистрибутив Linux на базе Debian/Red Hat.
- Процессор: Современный 2-ядерный CPU (рекомендуется 4 ядра и более для сложных воркфлоу).
- Оперативная память: Минимум 4 ГБ (рекомендуется 8 ГБ и более).
- Свободное место на диске: Не менее 2 ГБ для установки и хранения данных.
- Node.js: Версия 18.x или 20.x. Более старые или новые версии могут вызвать проблемы с совместимостью.
- Менеджер пакетов npm (обычно устанавливается вместе с Node.js) или yarn.
- Git (опционально, но рекомендуется для клонирования репозитория).
node --versionnpm --version- Откройте терминал (на macOS/Linux) или командную строку/PowerShell (на Windows).
- Выполните глобальную установку n8n:
npm install n8n -g
Флаг
-gустанавливает пакет глобально, делая командуn8nдоступной из любого места в системе. - После завершения установки запустите n8n командой:
n8n start
- По умолчанию веб-интерфейс будет доступен по адресу: http://localhost:5678.
- Установите Docker Desktop для вашей ОС с официального сайта.
- Запустите контейнер n8n следующей командой:
docker run -it --rm --name n8n -p 5678:5678 -v ~/.n8n:/home/node/.n8n n8nio/n8n
Пояснение параметров:
Параметр Назначение -p 5678:5678 Проброс порта контейнера на локальную машину. -v ~/.n8n:/home/node/.n8n Монтирование тома для сохранения данных (воркфлоу, учетные данные) на хост-машине. —name n8n Имя контейнера для удобного управления. n8nio/n8n Официальный образ с Docker Hub. - Для запуска в фоновом режиме замените флаг
-itна-d. - Клонируйте репозиторий с GitHub:
git clone https://github.com/n8n-io/n8n.git
- Перейдите в директорию проекта:
cd n8n
- Установите зависимости:
npm install
- Соберите проект:
npm run build
- Запустите n8n в режиме разработки:
npm run start:dev
- Откройте браузер и перейдите по адресу http://localhost:5678.
- Вас встретит экран приветствия. Вам будет предложено создать первую учетную запись пользователя. Это учетная запись администратора. Заполните поля: имя, email и пароль.
- После входа вы попадете в редактор воркфлоу. Интерфейс разделен на левую панель с нодами, центральную рабочую область и правую панель свойств.
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n
- DB_POSTGRESDB_USER=n8n
- DB_POSTGRESDB_PASSWORD=secret
- N8N_ENCRYPTION_KEY=your_secure_encryption_key_here
Установка Node.js и npm
Проверьте наличие Node.js и npm, выполнив в терминале (командной строке) команды:
Если команды не найдены, скачайте установщик с официального сайта nodejs.org. Выберите LTS (Long Term Support) версию. После установки перезапустите терминал и проверьте версии снова.
Способы локальной установки n8n
Существует несколько методов установки n8n на локальную машину. Выбор зависит от ваших предпочтений, уровня экспертизы и планируемого использования.
Способ 1: Установка с помощью npm (самый простой)
Это рекомендуемый способ для быстрого старта и тестирования.
Способ 2: Запуск через Docker (рекомендуется для production-среды)
Docker обеспечивает изоляцию, простоту обновления и консистентность среды выполнения.
Способ 3: Установка из исходного кода (для разработчиков)
Этот метод подходит для тех, кто планирует вносить изменения в код n8n или разрабатывать собственные ноды.
Базовая настройка после установки
После первого запуска n8n требуется выполнить первоначальную настройку.
Настройка переменных окружения
Для тонкой настройки n8n используются переменные окружения. Их можно задать в системе или в файле .env в корневой директории n8n.
| Переменная | Описание | Пример значения |
|---|---|---|
| N8N_BASIC_AUTH_ACTIVE | Включает базовую HTTP аутентификацию для всего интерфейса. | true |
| N8N_BASIC_AUTH_USER | Имя пользователя для базовой аутентификации. | admin |
| N8N_BASIC_AUTH_PASSWORD | Пароль для базовой аутентификации. | secure_password |
| N8N_ENCRYPTION_KEY | Ключ для шифрования учетных данных. Должен быть длиной 24 символа. КРИТИЧЕСКИ ВАЖНО задать свой ключ перед использованием в production. | my_secret_key_32_chars_long |
| N8N_PROTOCOL | Протокол, по которому доступен n8n. | https |
| N8N_PORT | Порт, на котором работает n8n. | 5678 |
| N8N_METRICS | Включает сбор метрик. | true |
| DB_TYPE | Тип базы данных (по умолчанию SQLite). | postgresdb |
Пример файла .env для Docker:
Настройка базы данных
По умолчанию n8n использует встроенную базу данных SQLite, которая хранится в директории ~/.n8n/database.sqlite. Для production-использования настоятельно рекомендуется перейти на внешнюю БД, такую как PostgreSQL или MySQL.
Миграция на PostgreSQL с использованием Docker Compose
Создайте файл docker-compose.yml:
version: '3.8'
services:
postgres:
image: postgres:13-alpine
restart: always
environment:
POSTGRES_USER: n8n
POSTGRES_PASSWORD: n8n_strong_password
POSTGRES_DB: n8n
volumes:
- postgres_data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U n8n"]
interval: 10s
timeout: 5s
retries: 5
n8n:
image: n8nio/n8n
restart: always
environment:
N8N_DATABASE_TYPE: postgresdb
DB_POSTGRESDB_HOST: postgres
DB_POSTGRESDB_PORT: 5432
DB_POSTGRESDB_DATABASE: n8n
DB_POSTGRESDB_USER: n8n
DB_POSTGRESDB_PASSWORD: n8n_strong_password
N8N_ENCRYPTION_KEY: your_32_character_long_secret_key_here
N8N_PROTOCOL: https
N8N_HOST: localhost
WEBHOOK_URL: https://your-domain.com
ports:
- "5678:5678"
volumes:
- n8n_data:/home/node/.n8n
depends_on:
postgres:
condition: service_healthy
links:
- postgres
volumes:
postgres_data:
n8n_data:
Запустите стек командой docker-compose up -d. n8n автоматически создаст необходимые таблицы в PostgreSQL.
Создание и запуск первого workflow
Workflow (воркфлоу) — это цепочка нод (узлов), которые выполняют определенные действия. Рассмотрим создание простого воркфлоу, который получает случайную шутку с публичного API и отправляет ее в Telegram.
- В интерфейсе n8n нажмите кнопку «Workflow» в левом верхнем углу и выберите «New Workflow».
- Перетащите ноду «HTTP Request» из панели «Nodes» на холст.
- Дважды щелкните по ноде для настройки. В поле «URL» введите:
https://official-joke-api.appspot.com/random_joke. Метод оставьте «GET». - Добавьте ноду «Telegram» на холст и соедините ее с нодой «HTTP Request».
- Настройте ноду Telegram:
- В поле «Resource» выберите «Message».
- В поле «Operation» выберите «Send Message».
- В «Chat ID» укажите ID вашего Telegram-чата.
- В поле «Text» нажмите на иконку «Выражение» и введите:
{{$node["HTTP Request"].json["setup"]}} ... {{$node["HTTP Request"].json["punchline"]}}
- Предварительно необходимо создать Credentials (учетные данные) для Telegram. Для этого в настройках ноды Telegram нажмите «Add New Credential», выберите «Telegram Bot API», введите токен вашего бота, полученный от @BotFather.
- Нажмите кнопку «Execute Node» на ноде «HTTP Request», чтобы проверить получение данных. Затем активируйте весь воркфлоу, переведя тумблер в активное состояние вверху экрана.
Повышение безопасности локальной установки
- Используйте HTTPS: Настройте обратный прокси (например, nginx или Caddy) с SSL-сертификатами от Let’s Encrypt.
- Настройте аутентификацию: Активируйте базовую аутентификацию через переменные
N8N_BASIC_AUTH_*. - Задайте свой Encryption Key: Никогда не используйте n8n в production с ключом по умолчанию.
- Ограничьте доступ по IP: Настройте файрвол или правила в обратном прокси, чтобы разрешить доступ только с доверенных IP-адресов.
- Регулярно обновляйте: Следите за релизами n8n и обновляйте свою установку для получения исправлений уязвимостей.
Резервное копирование и восстановление данных
Основные данные для резервного копирования:
- Workflows: Экспортируйте через интерфейс (кнопка «Export» на странице Workflows) в формате JSON.
- Credentials: Шифруются и хранятся в базе данных. Резервируется вся БД.
- База данных: Регулярно создавайте дампы (для PostgreSQL:
pg_dump, для SQLite — копируйте файлdatabase.sqlite). - Файлы: Если используются ноды, работающие с файлами, резервируйте соответствующие директории.
Для Docker-установки достаточно регулярно копировать том с данными (например, ~/.n8n или n8n_data в Docker Compose) и дамп базы данных.
Часто задаваемые вопросы (FAQ)
Как обновить локальную установку n8n?
Для установки через npm: Выполните команду npm update n8n -g.
Для Docker: Остановите текущий контейнер, удалите его образ и запустите заново с тегом последней версии (например, n8nio/n8n:latest). Данные сохранятся, если вы монтировали том.
Для Docker Compose: В директории с файлом docker-compose.yml выполните docker-compose pull и docker-compose up -d.
Почему n8n не запускается на порту 5678?
Вероятно, порт занят другим приложением. Вы можете:
- Найти и остановить процесс, использующий порт 5678 (команды
lsof -i :5678на macOS/Linux илиnetstat -ano | findstr :5678на Windows). - Изменить порт n8n через переменную окружения
N8N_PORT=5679и перезапустить.
Как перенести данные (workflows, credentials) с облачной версии на локальную?
1. В облачной версии n8n перейдите на вкладку «Workflows».
2. Выберите нужные воркфлоу, нажмите на меню «…» и выберите «Export». Сохраните JSON-файлы.
3. В локальной установке создайте новый workflow и нажмите кнопку «Import from File» в меню Workflow.
4. Учетные данные (credentials) необходимо создать заново в локальной установке, так как они зашифрованы и не подлежат прямому переносу.
Какие есть альтернативы локальному запуску?
Помимо локальной установки, n8n можно использовать:
- n8n.cloud: Платная управляемая облачная версия от создателей n8n.
- Docker на VPS: Установка Docker-контейнера на арендованном виртуальном сервере (например, на DigitalOcean, AWS, Hetzner).
- Готовые образы для PaaS: Развертывание на платформах вроде Railway, Render, Fly.io.
Как настроить планировщик (schedule) для запуска workflow?
Используйте ноду «Schedule Trigger». Добавьте ее в начало вашего воркфлоу и настройте:
- Rule: Выберите частоту (Minutes, Hours, Days, etc.).
- Interval: Число единиц времени между запусками (например, каждые 60 минут).
- Timezone: Ваша временная зона.
После активации workflow будет запускаться автоматически по расписанию.
Как решить проблему с ошибкой «ERR_OSSL_EVP_UNSUPPORTED» в Node.js?
Эта ошибка может возникнуть в новых версиях Node.js. Решение — задать переменную окружения перед запуском n8n:
На Windows (PowerShell): $env:NODE_OPTIONS="--openssl-legacy-provider"; n8n start
На macOS/Linux: NODE_OPTIONS="--openssl-legacy-provider" n8n start
Заключение
Локальный запуск n8n предоставляет максимальную гибкость, контроль и безопасность для автоматизации бизнес-процессов. Выбор метода установки (npm, Docker, исходный код) зависит от конкретных задач и инфраструктуры. Для тестирования и разработки достаточно установки через npm, в то время как для production-среды рекомендуется использовать Docker в связке с внешней базой данных, таким как PostgreSQL. Правильная настройка переменных окружения, резервное копирование и соблюдение мер безопасности являются обязательными шагами для стабильной и надежной работы платформы. n8n, будучи self-hosted решением, становится мощным и независимым инструментом в арсенале разработчика или IT-отдела.
Комментарии