N8n локально

N8n локально: Полное руководство по установке, настройке и эксплуатации

N8n — это мощный инструмент автоматизации рабочих процессов с открытым исходным кодом, который можно развернуть на собственном сервере или компьютере. Локальная установка предоставляет полный контроль над данными, безопасностью, производительностью и конфигурацией системы, что критически важно для компаний, работающих с конфиденциальной информацией или имеющих специфические инфраструктурные требования.

Преимущества локального развертывания N8n

Выбор установки N8n на собственную инфраструктуру обусловлен рядом ключевых преимуществ:

    • Контроль и безопасность данных: Все данные, включая конфиденциальные ключи API, токены и промежуточные результаты, остаются внутри вашей сети. Это исключает риски, связанные с передачей информации через сторонние облачные сервисы.
    • Соблюдение нормативных требований: Локальное развертывание помогает соответствовать строгим стандартам, таким как GDPR, HIPAA, или отраслевым нормам, требующим хранения данных в определенной юрисдикции.
    • Производительность и надежность: Скорость выполнения рабочих процессов зависит только от мощности вашего оборудования и внутренней сети, что исключает задержки из-за интернет-соединения или нагрузки на облачные серверы.
    • Гибкость конфигурации: Возможность тонкой настройки сервера, базы данных, сетевых параметров и самого N8n под конкретные нужды.
    • Отсутствие лимитов и абонентской платы: Локальная версия не имеет ограничений на количество выполненных рабочих процессов или используемых нод, что характерно для облачного тарифа N8n.

    Системные требования и подготовка

    Перед установкой необходимо убедиться, что ваша система соответствует минимальным требованиям.

    Компонент Минимальные требования Рекомендуемые требования
    Операционная система Linux (Ubuntu 20.04+, Debian 10+), macOS 10.14+, Windows 10/11 (WSL2) Linux-сервер (Ubuntu 22.04 LTS)
    Процессор 2 ядра 4+ ядра
    Оперативная память (RAM) 4 ГБ 8 ГБ и более
    Свободное место на диске 10 ГБ 50 ГБ+ (зависит от объема обрабатываемых данных)
    Программное обеспечение Node.js 18+, npm, база данных (SQLite, PostgreSQL, MySQL) Node.js 20+, менеджер процессов (PM2), PostgreSQL 12+

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

    Установка с помощью npm (Node.js)

    Это базовый способ, подходящий для тестирования и настольного использования.

    • Установите Node.js версии 18 или выше.
    • Откройте терминал и выполните команду: npm install n8n -g
    • Запустите N8n командой: n8n start

    После запуска веб-интерфейс будет доступен по адресу http://localhost:5678. По умолчанию используется встроенная база данных SQLite, что удобно для начала работы.

    Установка с помощью Docker (рекомендуемый способ)

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

    • Установите Docker и Docker Compose на ваш сервер.
    • Создайте файл docker-compose.yml со следующим содержимым:
    
    version: '3.8'
    services:
      n8n:
        image: n8nio/n8n
        container_name: n8n
        restart: unless-stopped
        ports:
          - "5678:5678"
        environment:
          - N8N_PROTOCOL=https
          - N8N_HOST=localhost
          - N8N_PORT=5678
          - N8N_METRICS=true
          - DB_TYPE=postgresdb
          - DB_POSTGRESDB_HOST=postgres
          - DB_POSTGRESDB_PORT=5432
          - DB_POSTGRESDB_DATABASE=n8n
          - DB_POSTGRESDB_USER=n8n_user
          - DB_POSTGRESDB_PASSWORD=secure_password
          - N8N_ENCRYPTION_KEY=your_secure_encryption_key
        volumes:
          - n8n_data:/home/node/.n8n
        depends_on:
          - postgres
      postgres:
        image: postgres:15
        container_name: n8n_postgres
        restart: unless-stopped
        environment:
          - POSTGRES_USER=n8n_user
          - POSTGRES_PASSWORD=secure_password
          - POSTGRES_DB=n8n
        volumes:
          - postgres_data:/var/lib/postgresql/data
    
    volumes:
      n8n_data:
      postgres_data:
    
    • Запустите контейнеры командой: docker-compose up -d

    Этот файл конфигурации развертывает N8n вместе с PostgreSQL, что является надежным решением для продакшн-среды.

    Установка на Linux-сервер с использованием PM2

    Для промышленной эксплуатации без Docker рекомендуется использовать менеджер процессов PM2 для обеспечения постоянной работы и автозапуска.

    • Установите Node.js и npm.
    • Установите N8n глобально: npm install n8n -g
    • Установите PM2: npm install pm2 -g
    • Запустите N8n под управлением PM2: pm2 start n8n -- start
    • Сохраните список процессов PM2 для автозапуска: pm2 save и pm2 startup

    Базовая и расширенная конфигурация

    Конфигурация N8n осуществляется через переменные окружения или файл .env в корневой директории.

    Переменная Описание Пример значения
    N8N_PROTOCOL Протокол для доступа к веб-интерфейсу (http/https) https
    N8N_HOST Хостнейм или IP-адрес сервера automation.yourcompany.com
    N8N_PORT Порт, на котором работает N8n 5678
    WEBHOOK_URL Публичный URL для вебхуков (если отличается от N8N_HOST) https://automation.yourcompany.com
    DB_TYPE Тип базы данных (sqlite, postgresdb, mysqldb) postgresdb
    N8N_ENCRYPTION_KEY Ключ для шифрования учетных данных. Обязателен и должен быть одинаковым при перезапусках. 32-символьная случайная строка
    EXECUTIONS_DATA_PRUNE Включить автоматическую очистку старых данных выполнений true
    EXECUTIONS_DATA_MAX_AGE Срок хранения данных выполнений (в часах) 168 (7 дней)

    Обеспечение безопасности локальной установки

    • Настройка обратного прокси (Nginx/Apache): Используйте Nginx в качестве обратного прокси для обработки SSL/TLS шифрования (HTTPS). Это обязательно для защиты передаваемых данных.
    • Базовая аутентификация: Включите встроенную аутентификацию, установив переменные N8N_BASIC_AUTH_ACTIVE=true, N8N_BASIC_AUTH_USER и N8N_BASIC_AUTH_PASSWORD.
    • Настройка брандмауэра: Ограничьте доступ к порту N8n (5678) только с доверенных IP-адресов или внутренней сети.
    • Регулярное обновление: Своевременно обновляйте образ Docker или пакет N8n для получения исправлений уязвимостей.

    Резервное копирование и восстановление

    Для надежной работы необходимо настроить регулярное резервное копирование.

    • Данные рабочих процессов: Используйте встроенную функцию экспорта всех workflows в формате JSON через интерфейс или API.
    • База данных: Регулярно создавайте дампы базы данных PostgreSQL или MySQL. Для SQLite достаточно копировать файл database.sqlite.
    • Файлы и учетные данные: Резервируйте директорию ~/.n8n (или volume Docker), где хранятся зашифрованные учетные данные, файлы и настройки.

    Мониторинг и логирование

    • Встроенный мониторинг: Включите метрики, установив N8N_METRICS=true. Метрики доступны по эндпоинту /metrics в формате Prometheus.
    • Логирование: Настройте уровень детализации логов через переменную N8N_LOG_LEVEL (debug, info, warn, error). Логи можно направлять в централизованную систему (ELK Stack, Loki).
    • Внешний мониторинг: Используйте инструменты вроде Uptime Kuma или Nagios для отслеживания доступности эндпоинта /healthz.

    Интеграция с внешними системами и масштабирование

    Локальный N8n может взаимодействовать с внутренними системами, недоступными из интернета: локальными CRM, ERP, базами данных, файловыми хранилищами, принт-серверами и т.д. Для масштабирования горизонтального масштабирования (когда один инстанс не справляется с нагрузкой) можно запустить несколько экземпляров N8n в режиме «веб-процесс» (web process) и «воркер-процесс» (worker process), используя внешнюю очередь, такую как Redis, и базовую балансировку нагрузки.

    Ответы на часто задаваемые вопросы (FAQ)

    Чем локальная установка отличается от облачной версии N8n?

    Облачная версия (n8n.cloud) — это управляемый сервис, где N8n размещен на серверах компании-разработчика. Вы платите подписку, и за вами заботятся об обновлениях, инфраструктуре и резервном копировании. Локальная версия — это саморазмещаемое решение, которое вы устанавливаете на свой собственный сервер. Вы полностью контролируете данные и инфраструктуру, но и несете ответственность за настройку, обслуживание, безопасность и обновления.

    Какой способ установки выбрать для продакшн-среды?

    Для продакшн-среды рекомендуется использовать Docker Compose с PostgreSQL в качестве базы данных. Этот подход обеспечивает изоляцию сервисов, простоту развертывания и обновления, а также высокую надежность хранения данных по сравнению со встроенной SQLite.

    Как обновить локально установленный N8n?

    • Для Docker: Остановите контейнеры (docker-compose down), обновите образ (docker-compose pull), и запустите заново (docker-compose up -d). Предварительно сделайте резервную копию данных.
    • Для npm: Выполните команду npm update n8n -g и перезапустите процесс N8n.

Как перенести рабочие процессы и настройки с облачной версии на локальную?

В облачном интерфейсе N8n используйте функцию экспорта для каждого рабочего процесса (workflow) или экспортируйте все сразу через настройки пространства (workspace). Загрузите полученные JSON-файлы в вашу локальную установку через интерфейс импорта. Учетные данные (credentials) необходимо будет заново настроить в локальной среде.

Можно ли использовать N8n локально без доступа в интернет?

Да, это возможно в полностью изолированной сети (air-gapped). Для этого необходимо предварительно загрузить все необходимые Docker-образы (n8n, postgres) или npm-пакеты на машину с доступом в интернет, а затем перенести их на целевой сервер. Пользовательские ноды, требующие API внешних сервисов, в таком режиме работать не будут, но логика, работающая с локальными файлами, базами данных и внутренними системами, останется функциональной.

Как решить проблему с «недоверенным сертификатом» при использовании самоподписанного SSL?

При использовании самоподписанного сертификата в обратном прокси браузер будет предупреждать о небезопасном соединении. Чтобы N8n корректно формировал вебхук-URL, необходимо установить переменную окружения NODE_EXTRA_CA_CERTS, указав путь к вашему корневому сертификату, или отключить проверку SSL для исходящих запросов N8n (не рекомендуется для продакшн) через настройки соответствующей ноды или глобально.

Где хранятся данные локального N8n и как их резервировать?

При установке через npm данные по умолчанию хранятся в директории ~/.n8n. В Docker-контейнере они находятся внутри volume, который монтируется к пути /home/node/.n8n. Для резервного копирования необходимо сохранять: 1) Дамп базы данных (PostgreSQL/MySQL) или файл database.sqlite; 2) Содержимое директории .n8n (особенно папку credentials и файл config); 3) Экспортированные JSON-файлы рабочих процессов.

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

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