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

N8n — это мощный инструмент для автоматизации рабочих процессов с открытым исходным кодом, использующий парадигму workflow-as-code. Его отличительная черта — справедливая модель лицензирования, где код доступен по лицензии Apache 2.0 с Commons Clause, что позволяет бесплатно использовать, модифицировать и самостоятельно размещать продукт. Установка собственного экземпляра n8n предоставляет полный контроль над данными, неограниченное количество исполнений workflow и отсутствие каких-либо абонентских плат.

Выбор метода установки

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

    • Docker (рекомендуемый способ): Наиболее универсальный и изолированный метод, обеспечивающий простоту обновления и конфигурации.
    • npm (Node.js Package Manager): Прямая установка с помощью npm, подходит для разработчиков и быстрого тестирования.
    • Развертывание на облачных платформах: Использование готовых образов в облачных сервисах, таких как DigitalOcean, AWS, Google Cloud, Hetzner.
    • Установка на локальный компьютер: Для персонального использования или тестирования на Windows, macOS или Linux.

    Предварительные требования

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

    • Оперативная память (RAM): Не менее 1 ГБ, рекомендуется 2+ ГБ для стабильной работы.
    • Процессор: 1 ядро, 2+ ядра рекомендуется.
    • Дисковое пространство: Не менее 1 ГБ, плюс место для хранения данных и логов.
    • Операционная система: Любой дистрибутив Linux, macOS, Windows (WSL2 рекомендуется для Windows).
    • Установленный Docker и Docker Compose (для Docker-метода) или Node.js версии 16+ (для npm-метода).

    Установка n8n с помощью Docker и Docker Compose

    Этот метод обеспечивает изоляцию сервисов, простоту управления и является стандартом де-факто для production-развертываний.

    Шаг 1: Установка Docker и Docker Compose

    Если Docker не установлен, следуйте официальной инструкции для вашей ОС:

    • Для Ubuntu/Debian: sudo apt-get update && sudo apt-get install docker.io docker-compose
    • Для CentOS/RHEL: sudo yum install docker && sudo systemctl start docker
    • Для Windows/macOS: Загрузите и установите Docker Desktop с официального сайта.

    Шаг 2: Создание директории и файла конфигурации

    Создайте отдельную директорию для n8n и перейдите в нее:

    mkdir ~/n8n-docker && cd ~/n8n-docker

    Создайте файл docker-compose.yml с помощью любого текстового редактора (nano, vim).

    Шаг 3: Настройка docker-compose.yml

    Приведенная ниже конфигурация запускает n8n вместе с базой данных PostgreSQL для надежного хранения workflow и данных исполнения.

    
    version: '3.8'
    
    services:
      n8n:
        image: n8nio/n8n
        restart: unless-stopped
        ports:
          - "5678:5678"
        environment:
          - N8N_PROTOCOL=https
          - N8N_HOST=localhost
          - N8N_PORT=5678
          - N8N_EDITOR_BASE_URL=https://ваш-домен-или-ip
          - DB_TYPE=postgresdb
          - DB_POSTGRESDB_HOST=postgres
          - DB_POSTGRESDB_PORT=5432
          - DB_POSTGRESDB_DATABASE=n8n
          - DB_POSTGRESDB_USER=n8n
          - DB_POSTGRESDB_PASSWORD=сложный_пароль
          - N8N_ENCRYPTION_KEY=уникальный_ключ_шифрования_32_символа
          - GENERIC_TIMEZONE=Europe/Moscow
        volumes:
          - n8n_data:/home/node/.n8n
        depends_on:
          - postgres
    
      postgres:
        image: postgres:15-alpine
        restart: unless-stopped
        environment:
          - POSTGRES_USER=n8n
          - POSTGRES_PASSWORD=сложный_пароль
          - POSTGRES_DB=n8n
        volumes:
          - postgres_data:/var/lib/postgresql/data
    
    volumes:
      n8n_data:
      postgres_data:
    

    Шаг 4: Запуск n8n

    В директории с файлом docker-compose.yml выполните команду:

    docker-compose up -d

    После завершения загрузки образов и запуска контейнеров, n8n будет доступен по адресу http://ваш-сервер:5678.

    Установка n8n с помощью npm

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

    Шаг 1: Установка Node.js

    Загрузите и установите Node.js версии 16 или выше с официального сайта nodejs.org. Проверьте установку:

    node --version
    npm --version

    Шаг 2: Глобальная установка n8n

    Выполните команду в терминале или командной строке:

    npm install n8n -g

    Шаг 3: Запуск n8n

    После завершения установки запустите n8n командой:

    n8n start

    По умолчанию веб-интерфейс будет доступен по адресу http://localhost:5678. Для настройки порта, протокола и других параметров используйте флаги командной строки, например: n8n start --port=8080.

    Настройка n8n для production-использования

    Базовая установка требует дополнительной конфигурации для безопасной и стабильной работы в интернете.

    1. Настройка обратного прокси (Nginx)

    Для использования HTTPS и раздачи статики рекомендуется настроить Nginx как обратный прокси. Пример конфигурации виртуального хоста:

    
    server {
        listen 80;
        server_name ваш-домен.ru;
        return 301 https://$server_name$request_uri;
    }
    
    server {
        listen 443 ssl http2;
        server_name ваш-домен.ru;
    
        ssl_certificate /путь/к/ssl/cert.pem;
        ssl_certificate_key /путь/к/ssl/privkey.pem;
    
        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;
        }
    }
    

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

    Ключевые переменные окружения для файла docker-compose.yml или системного окружения:

    Переменная Описание Пример значения
    N8N_ENCRYPTION_KEY Обязательный ключ для шифрования учетных данных. Должен быть длиной 32 символа и оставаться неизменным. my-secret-key-32-chars-long-1234
    N8N_PROTOCOL, N8N_HOST, N8N_PORT Публичный URL вашего экземпляра n8n. Используются для генерации корректных ссылок в уведомлениях. https, ваш-домен.ru, 443
    N8N_SECURITY_EXCLUDE_ENDPOINTS Эндпоинты, исключенные из проверки аутентификации (например, для webhook). webhook, webhook-test
    EXECUTIONS_DATA_PRUNE Включить автоматическую очистку старых данных исполнений. true
    EXECUTIONS_DATA_MAX_AGE Максимальный возраст данных исполнений в часах перед удалением. 168 (7 дней)

    3. Настройка аутентификации

    Для ограничения доступа к интерфейсу n8n настройте базовую аутентификацию. Добавьте в сервис n8n в docker-compose.yml следующие переменные:

    
    - N8N_BASIC_AUTH_ACTIVE=true
    - N8N_BASIC_AUTH_USER=ваш_логин
    - N8N_BASIC_AUTH_PASSWORD=ваш_пароль
    

    Обновление n8n

    Процесс обновления зависит от метода установки.

    Обновление в Docker

    Остановите контейнеры, обновите образ и перезапустите:

    
    cd ~/n8n-docker
    docker-compose down
    docker-compose pull
    docker-compose up -d
    

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

    
    npm update n8n -g
    

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

    Критически важные данные n8n хранятся в двух местах: workflow и настройки в базе данных PostgreSQL, а файлы и учетные данные — в volume n8n_data.

    Резервное копирование базы данных PostgreSQL:

    
    docker exec -t ваш_контейнер_postgres pg_dump -U n8n n8n > n8n_backup_$(date +%Y-%m-%d).sql
    

    Резервное копирование volume с данными:

    
    docker run --rm -v n8n_data:/data -v $(pwd):/backup alpine tar czf /backup/n8n_data_backup_$(date +%Y-%m-%d).tar.gz -C /data .
    

    Восстановление из резервной копии:

    
    

    Для базы данных

    cat n8n_backup.sql | docker exec -i ваш_контейнер_postgres psql -U n8n n8n

    Для volume

    docker run --rm -v n8n_data:/data -v $(pwd):/backup alpine sh -c "cd /data && tar xzf /backup/n8n_data_backup.tar.gz"

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

    Вопрос 1: В чем разница между облачной версией n8n и самостоятельной установкой?

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

    Вопрос 2: Нужно ли платить за self-hosted версию n8n?

    Нет. Самостоятельная установка n8n является полностью бесплатной. Платить необходимо только за инфраструктуру (аренду сервера/VPS, доменное имя, SSL-сертификат), на которой он работает.

    Вопрос 3: Какие минимальные требования к серверу для небольшой нагрузки?

    Для автоматизации с несколькими десятками workflow и умеренной частотой запусков (несколько сотен executions в день) достаточно виртуального сервера (VPS) с такими характеристиками: 1-2 ядра CPU, 2 ГБ оперативной памяти, 20 ГБ SSD-диск. Оптимальный выбор — тарифные планы типа «Micro» или «Small» у облачных провайдеров (DigitalOcean, Linode, Hetzner).

    Вопрос 4: Как обеспечить безопасность self-hosted n8n?

    • Всегда используйте HTTPS через обратный прокси (Nginx/Caddy) с валидным SSL-сертификатом (можно бесплатно от Let’s Encrypt).
    • Включите базовую аутентификацию (N8N_BASIC_AUTH_ACTIVE).
    • Настройте файрвол, открыв только порты 80 и 443 для входящего трафика.
    • Регулярно обновляйте образы Docker и сам n8n до последних версий.
    • Используйте сложный и уникальный ключ шифрования (N8N_ENCRYPTION_KEY).

    Вопрос 5: Как настроить отправку email-уведомлений?

    N8n поддерживает встроенный узел Email (SMTP). Для его работы необходимо задать глобальные переменные SMTP в файле конфигурации или через интерфейс Settings -> Variables. Требуемые параметры: SMTP host, port, user, password, sender address. Можно использовать сервисы вроде SendGrid, Mailgun, Gmail SMTP или корпоративный почтовый сервер.

    Вопрос 6: Что делать, если workflow перестали запускаться после обновления?

    В первую очередь, проверьте логи контейнера n8n: docker-compose logs n8n. Частой причиной является изменение API сторонних сервисов или устаревшая структура узлов. Воспользуйтесь функцией «Duplicate workflow» для создания копии проблемного workflow и попробуйте пересоздать узлы заново. Всегда рекомендуется тестировать обновления на staging-окружении и иметь актуальные резервные копии.

    Вопрос 7: Как увеличить производительность n8n при высокой нагрузке?

    • Выделите больше ресурсов CPU и RAM для контейнера n8n в docker-compose.yml (директива deploy.resources.limits).
    • Настройте отдельную, более мощную базу данных (например, облачный PostgreSQL).
    • Включите режим очереди исполнений, используя Redis как message broker (переменные EXECUTIONS_MODE=queue и настройки QUEUE_BULL_REDIS).
    • Рассмотрите горизонтальное масштабирование с запуском нескольких воркеров n8n.

Вопрос 8: Где хранятся сохраненные учетные данные (credentials)?

Учетные данные по умолчанию хранятся в зашифрованном виде в базе данных PostgreSQL (в таблице credentials_entity). Ключом для шифрования служит значение переменной окружения N8N_ENCRYPTION_KEY. Важно никогда не терять и не изменять этот ключ после начала использования, так как это сделает все сохраненные учетные данные нечитаемыми.

Комментарии

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

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

Войти

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

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

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