N8n: Полное руководство по локальному запуску
N8n — это мощный инструмент автоматизации рабочих процессов с открытым исходным кодом, который использует парадигму низкого кода (low-code). Локальная установка предоставляет полный контроль над данными, максимальную конфиденциальность, возможность глубокой кастомизации и не зависит от облачной подписки. Данное руководство детально описывает все методы и нюансы запуска n8n на локальной машине.
Предварительные требования и системные условия
Перед началом установки убедитесь, что ваша система соответствует необходимым требованиям. N8n является кроссплатформенным приложением и может работать на Windows, macOS и Linux.
- Операционная система: Windows 10/11, macOS 10.14+, или дистрибутив Linux (Ubuntu 20.04+, Debian 10+, Fedora 33+).
- Node.js: Версия 18.x или 20.x. Версии 19 и 21 не поддерживаются. Рекомендуется использовать LTS-релиз.
- npm: Обычно устанавливается вместе с Node.js. Требуется версия 7.x или выше.
- Системные ресурсы: Минимум 2 ГБ оперативной памяти, 2 ГБ свободного места на диске. Для сложных воркфлоуов с большим объемом данных рекомендуется 4+ ГБ ОЗУ.
- Дополнительно: Для установки через Docker требуется Docker Desktop (Windows/macOS) или Docker Engine (Linux).
- Установите Node.js с официального сайта nodejs.org. Проверьте установку командами в терминале или командной строке:
node --version
npm --version - Установите n8n глобально, используя npm:
npm install n8n -gФлаг
-gустанавливает пакет глобально, делая командуn8nдоступной из любого места в системе. - После завершения установки запустите n8n:
n8n start - Откройте веб-браузер и перейдите по адресу:
http://localhost:5678. Вы увидите интерфейс n8n, где можно начать создание воркфлоуов. - Установите Docker Desktop для Windows/macOS или Docker Engine для Linux с официального сайта docker.com.
- Откройте терминал и выполните команду для запуска контейнера n8n:
docker run -it --rm --name n8n -p 5678:5678 -v ~/.n8n:/home/node/.n8n docker.n8n.io/n8nio/n8nРазберем ключевые параметры команды:
-p 5678:5678— пробрасывает порт 5678 из контейнера на локальную машину.-v ~/.n8n:/home/node/.n8n— создает постоянный том (volume) для сохранения данных (воркфлоуов, учетных данных, настроек) между перезапусками контейнера. Для Windows путь будет выглядеть как-v C:UsersYourUser.n8n:/home/node/.n8n.docker.n8n.io/n8nio/n8n— официальный образ n8n из реестра.
- После загрузки образа и запуска контейнера откройте браузер по адресу
http://localhost:5678.
Способ 1: Установка с помощью npm (прямая установка Node.js)
Этот метод рекомендуется для разработчиков, которые планируют вносить изменения в код или разрабатывать собственные узлы (nodes).
Преимущества и недостатки установки через npm
| Преимущества | Недостатки |
|---|---|
| Прямой доступ к файлам приложения и логам. | Требует наличия Node.js и управления его версиями. |
| Проще всего для отладки и разработки кастомных узлов. | Зависит от состояния глобальных npm-пакетов, что может привести к конфликтам. |
| Нет необходимости в дополнительном ПО (кроме Node.js). | Менее изолированная среда по сравнению с Docker. |
Способ 2: Запуск с использованием Docker
Это рекомендуемый метод для большинства пользователей, так как он обеспечивает изоляцию, простоту обновления и консистентность среды.
Расширенная конфигурация Docker с Docker Compose
Для более сложных сценариев, особенно при использовании внешней базы данных, рекомендуется использовать Docker Compose.
Создайте файл docker-compose.yml:
version: '3.8'
services:
n8n:
image: docker.n8n.io/n8nio/n8n
container_name: n8n
restart: unless-stopped
ports:
- "5678:5678"
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=secure_password
- N8N_PROTOCOL=https
- NODE_ENV=production
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=db
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=n8n_db
- DB_POSTGRESDB_USER=postgres
- DB_POSTGRESDB_PASSWORD=db_password
- GENERIC_TIMEZONE=Europe/Moscow
volumes:
- n8n_data:/home/node/.n8n
depends_on:
- db
networks:
- n8n_network
db:
image: postgres:15-alpine
container_name: n8n_postgres
restart: unless-stopped
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=db_password
- POSTGRES_DB=n8n_db
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- n8n_network
volumes:
n8n_data:
postgres_data:
networks:
n8n_network:
driver: bridge
Запустите стек командой: docker-compose up -d. Это развернет n8n с PostgreSQL, включит базовую аутентификацию и настроит персистентное хранение данных.
Базовая настройка после первого запуска
После первого входа в n8n по адресу localhost:5678 необходимо выполнить несколько шагов настройки.
- Создание первого пользователя: Введите имя, email и пароль. Эта учетная запись будет обладать правами владельца (owner).
- Настройка хранилища данных: По умолчанию n8n использует SQLite, который хранится в папке
~/.n8n/database.sqlite. Для production-среды в настройках (Settings->Database) рекомендуется переключиться на PostgreSQL или MySQL. - Настройка переменных окружения: Ключевые параметры работы n8n управляются через переменные окружения. Их можно задать в терминале перед запуском (для npm) или в секции
environmentDocker-композа.
Таблица ключевых переменных окружения
| Переменная | Описание | Пример значения |
|---|---|---|
| N8N_BASIC_AUTH_ACTIVE | Включает HTTP Basic аутентификацию для всего интерфейса. | true |
| N8N_BASIC_AUTH_USER / N8N_BASIC_AUTH_PASSWORD | Логин и пароль для базовой аутентификации. | admin / my_secure_pass |
| N8N_ENCRYPTION_KEY | Ключ для шифрования учетных данных в базе данных. Обязателен для продакшена. | my_secret_key_32_chars_long |
| WEBHOOK_URL | Публичный URL, по которому доступен ваш инстанс. Необходим для корректной работы вебхуков. | https://n8n.mydomain.com |
| DB_TYPE | Тип базы данных (sqlite, postgresdb, mysqldb). | postgresdb |
| EXECUTIONS_DATA_PRUNE | Включает автоматическую очистку старых данных выполнений. | true |
| EXECUTIONS_DATA_MAX_AGE | Время в часах, после которого данные выполнения будут удалены. | 168 (7 дней) |
Управление инстансом n8n
Обновление версии
- Для npm: Выполните команду
npm update n8n -g, затем перезапустите n8n. - Для Docker: Остановите контейнер, удалите его, обновите образ (
docker pull docker.n8n.io/n8nio/n8n) и запустите заново с теми же томами. - Для Docker Compose: В папке с
docker-compose.ymlвыполнитеdocker-compose pullиdocker-compose up -d.
Резервное копирование и восстановление
Критически важные данные хранятся в двух местах:
- Воркфлоуы и учетные данные: Находятся в базе данных (SQLite файл или PostgreSQL/MySQL). Регулярно создавайте дампы БД.
- Файлы и двоичные данные: Хранятся в папке
~/.n8n(по умолчанию). Для Docker это смонтированный том.
Для простого экспорта воркфлоуов используйте встроенную функцию в интерфейсе n8n: выберите workflow, нажмите на три точки и выберите «Export».
Решение распространенных проблем
- Ошибка «Port already in use»: Порт 5678 занят другим приложением. Остановите его или измените порт n8n с помощью переменной
N8N_PORT(например,N8N_PORT=5679). - Ошибки при установке npm (например, права доступа): На Linux/macOS избегайте использования
sudoс npm. Вместо этого настройте правильные права на каталог Node.js или используйте менеджер версий Node.js (nvm). - D-контейнер не запускается, пишет про отсутствие лицензии или падает: Проверьте корректность синтаксиса в файле
docker-compose.yml, особенно отступов. Убедитесь, что для томов (volumes) указаны абсолютные пути или названия. - Вебхуки не работают на localhost: Внешние сервисы не могут отправить запрос на ваш локальный
localhost. Для тестирования вебхуков используйте туннелинг (ngrok, localtunnel) или разверните n8n на сервере с публичным IP. - Медленная работа интерфейса или выполнение воркфлоуов: Увеличьте лимиты памяти для Docker-контейнера или Node.js процесса. Проверьте, не исчерпаны ли ресурсы хоста (CPU, RAM, диск I/O).
Часто задаваемые вопросы (FAQ)
В чем основное отличие локальной установки от облачной версии n8n.cloud?
Локальная установка (self-hosted) означает, что вы полностью контролируете инфраструктуру, данные никогда не покидают ваши серверы, и вы платите только за хостинг (или ничего, если это локальная машина). Облачная версия управляется командой n8n, предлагает встроенную высокую доступность и упрощенное обновление, но требует ежемесячной подписки и хранит данные на их серверах.
Можно ли запустить n8n на Raspberry Pi?
Да, это возможно, особенно на моделях с 4 ГБ ОЗУ (например, Raspberry Pi 4/5). Рекомендуется использовать Docker-образ для архитектуры arm64 или armv7. Производительность будет достаточной для легких и средних воркфлоуов, но может стать узким местом для тяжелых операций с данными.
Как организовать многопользовательский доступ к локальному n8n?
После создания первого пользователя (owner) вы можете пригласить других пользователей через интерфейс (Settings -> Users). Вам необходимо настроить способ аутентификации: по умолчанию это встроенная система n8n. Для корпоративного использования можно настроить SAML, LDAP или OAuth2 (например, через Google, GitHub), используя соответствующие переменные окружения.
Какие базы данных поддерживаются для production-развертывания?
N8n официально поддерживает PostgreSQL (рекомендуется), MySQL/MariaDB и SQLite. SQLite подходит только для тестирования или очень легких нагрузок из-за ограничений при параллельной записи. Для любого серьезного использования обязательны PostgreSQL или MySQL.
Как настроить обратный прокси (Nginx, Apache) перед n8n?
Это стандартная практика для выдачи n8n на стандартных портах (80, 443) и настройки SSL. Пример конфигурации Nginx:
server {
listen 80;
server_name n8n.yourdomain.com;
location / {
proxy_pass http://localhost:5678;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
После этого настройте в n8n переменные N8N_PROTOCOL=https и WEBHOOK_URL=https://n8n.yourdomain.com.
Где хранятся логи и как их анализировать?
При запуске через npm логи выводятся в консоль. В Docker их можно просмотреть командой docker logs n8n. Файлы логов также пишутся в директорию ~/.n8n/logs. Уровень детализации логов настраивается через переменную окружения N8N_LOG_LEVEL (значения: debug, info, warn, error).
Заключение
Локальный запуск n8n предоставляет максимальную гибкость, безопасность и контроль над платформой автоматизации. Выбор метода установки (npm, Docker, Docker Compose) зависит от ваших целей: разработка кастомных узлов, быстрое тестирование или развертывание отказоустойчивого production-окружения. Ключом к стабильной работе является правильная первоначальная настройка, особенно конфигурация базы данных, шифрования учетных данных и механизмов аутентификации. Следуя инструкциям, изложенным в этом руководстве, вы сможете развернуть и эффективно управлять собственным инстансом n8n для автоматизации бизнес-процессов любой сложности.
Добавить комментарий