Запуск 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.js и npm

    Проверьте наличие Node.js и npm, выполнив в терминале (командной строке) команды:

    • node --version
    • npm --version

    Если команды не найдены, скачайте установщик с официального сайта nodejs.org. Выберите LTS (Long Term Support) версию. После установки перезапустите терминал и проверьте версии снова.

    Способы локальной установки n8n

    Существует несколько методов установки n8n на локальную машину. Выбор зависит от ваших предпочтений, уровня экспертизы и планируемого использования.

    Способ 1: Установка с помощью npm (самый простой)

    Это рекомендуемый способ для быстрого старта и тестирования.

    1. Откройте терминал (на macOS/Linux) или командную строку/PowerShell (на Windows).
    2. Выполните глобальную установку n8n:
      • npm install n8n -g

      Флаг -g устанавливает пакет глобально, делая команду n8n доступной из любого места в системе.

    3. После завершения установки запустите n8n командой:
      • n8n start
    4. По умолчанию веб-интерфейс будет доступен по адресу: http://localhost:5678.

    Способ 2: Запуск через Docker (рекомендуется для production-среды)

    Docker обеспечивает изоляцию, простоту обновления и консистентность среды выполнения.

    1. Установите Docker Desktop для вашей ОС с официального сайта.
    2. Запустите контейнер 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.
    3. Для запуска в фоновом режиме замените флаг -it на -d.

    Способ 3: Установка из исходного кода (для разработчиков)

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

    1. Клонируйте репозиторий с GitHub:
      • git clone https://github.com/n8n-io/n8n.git
    2. Перейдите в директорию проекта:
      • cd n8n
    3. Установите зависимости:
      • npm install
    4. Соберите проект:
      • npm run build
    5. Запустите n8n в режиме разработки:
      • npm run start:dev

    Базовая настройка после установки

    После первого запуска n8n требуется выполнить первоначальную настройку.

    1. Откройте браузер и перейдите по адресу http://localhost:5678.
    2. Вас встретит экран приветствия. Вам будет предложено создать первую учетную запись пользователя. Это учетная запись администратора. Заполните поля: имя, email и пароль.
    3. После входа вы попадете в редактор воркфлоу. Интерфейс разделен на левую панель с нодами, центральную рабочую область и правую панель свойств.

    Настройка переменных окружения

    Для тонкой настройки 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:

    • 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

    Настройка базы данных

    По умолчанию 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.

    1. В интерфейсе n8n нажмите кнопку «Workflow» в левом верхнем углу и выберите «New Workflow».
    2. Перетащите ноду «HTTP Request» из панели «Nodes» на холст.
    3. Дважды щелкните по ноде для настройки. В поле «URL» введите: https://official-joke-api.appspot.com/random_joke. Метод оставьте «GET».
    4. Добавьте ноду «Telegram» на холст и соедините ее с нодой «HTTP Request».
    5. Настройте ноду Telegram:
      • В поле «Resource» выберите «Message».
      • В поле «Operation» выберите «Send Message».
      • В «Chat ID» укажите ID вашего Telegram-чата.
      • В поле «Text» нажмите на иконку «Выражение» и введите: {{$node["HTTP Request"].json["setup"]}} ... {{$node["HTTP Request"].json["punchline"]}}
    6. Предварительно необходимо создать Credentials (учетные данные) для Telegram. Для этого в настройках ноды Telegram нажмите «Add New Credential», выберите «Telegram Bot API», введите токен вашего бота, полученный от @BotFather.
    7. Нажмите кнопку «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-отдела.

Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Войти

Зарегистрироваться

Сбросить пароль

Пожалуйста, введите ваше имя пользователя или эл. адрес, вы получите письмо со ссылкой для сброса пароля.