Установка n8n на локальный сервер

Установка n8n на локальный сервер: Полное руководство

n8n — это мощный инструмент для автоматизации рабочих процессов с открытым исходным кодом, который позволяет соединять различные приложения, API и сервисы между собой. Установка n8n на локальный сервер обеспечивает полный контроль над данными, безопасность и возможность работы в изолированной среде без ограничений облачных тарифных планов. Данное руководство детально описывает процесс установки, настройки и первоначального использования n8n на локальной машине под управлением Linux (Ubuntu/Debian), а также рассматривает альтернативные методы.

Предварительные требования и подготовка сервера

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

    • Операционная система: Ubuntu 20.04/22.04 LTS, Debian 10/11 или аналогичный дистрибутив Linux.
    • Минимальные аппаратные ресурсы: 2 ГБ ОЗУ, 2-ядерный процессор, 10 ГБ свободного дискового пространства.
    • Установленный и настроенный суперпользователь (root или пользователь с правами sudo).
    • Настроенный фаервол (например, UFW) с открытыми необходимыми портами.
    • Доменное имя или статический IP-адрес для доступа извне (опционально).

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

    • Выполните команду: sudo apt update && sudo apt upgrade -y
    • Установите базовые утилиты: sudo apt install -y curl wget gnupg software-properties-common apt-transport-https ca-certificates

    Установка Node.js и npm

    n8n написан на Node.js, поэтому необходима его установка. Рекомендуется использовать версию Node.js 18 или выше. Установку можно выполнить через менеджер узлов NodeSource.

    • Добавьте репозиторий NodeSource: curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
    • Установите Node.js и npm: sudo apt install -y nodejs
    • Проверьте установку: node --version и npm --version

    Способ 1: Установка n8n с помощью npm (Прямая установка)

    Самый простой способ установить n8n — использовать менеджер пакетов npm. Установка выполняется глобально.

    • Установите n8n: sudo npm install -g n8n
    • После завершения установки запустите n8n: n8n start

    По умолчанию n8n будет доступен по адресу http://localhost:5678. Веб-интерфейс откроется на порту 5678, а REST API — на порту 5678. Этот метод подходит для быстрого тестирования, но не рекомендуется для production-среды, так как процесс завершится при закрытии терминала.

    Способ 2: Установка n8n как системного сервиса (Рекомендуемый способ)

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

    Создайте пользователя для запуска n8n (для повышения безопасности):

    • sudo adduser --system --group --no-create-home n8n

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

    • sudo mkdir -p /home/n8n/.n8n
    • sudo chown -R n8n:n8n /home/n8n/.n8n

    Создайте файл конфигурации сервиса systemd:

    • sudo nano /etc/systemd/system/n8n.service

    Вставьте следующую конфигурацию, адаптировав при необходимости переменные окружения:

    
    [Unit]
    Description=n8n - Workflow Automation Tool
    After=network.target
    
    [Service]
    Type=simple
    User=n8n
    Group=n8n
    ExecStart=/usr/bin/n8n start
    Restart=on-failure
    RestartSec=10
    Environment="NODE_ENV=production"
    Environment="N8N_PROTOCOL=http"
    Environment="N8N_HOST=localhost"
    Environment="N8N_PORT=5678"
    Environment="N8N_USER_FOLDER=/home/n8n/.n8n"
    

    Для настройки базовой аутентификации раскомментируйте и задайте свои значения:

    Environment="N8N_BASIC_AUTH_ACTIVE=true"

    Environment="N8N_BASIC_AUTH_USER=admin"

    Environment="N8N_BASIC_AUTH_PASSWORD=your_secure_password"

    [Install] WantedBy=multi-user.target

    Активируйте и запустите сервис:

    • Перезагрузите демон systemd: sudo systemctl daemon-reload
    • Включите автозагрузку n8n: sudo systemctl enable n8n.service
    • Запустите сервис: sudo systemctl start n8n.service
    • Проверьте статус: sudo systemctl status n8n.service

    Настройка обратного прокси с помощью Nginx и SSL

    Для безопасного доступа к n8n по доменному имени с использованием HTTPS необходимо настроить Nginx в качестве обратного прокси.

    Установите Nginx и Certbot (для получения бесплатных SSL-сертификатов от Let’s Encrypt):

    • sudo apt install -y nginx certbot python3-certbot-nginx

    Создайте конфигурационный файл для вашего домена:

    • sudo nano /etc/nginx/sites-available/n8n.yourdomain.com

    Добавьте следующую конфигурацию, заменив n8n.yourdomain.com на ваш домен:

    
    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;
            

    Важно для корректной работы WebSocket

    proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } }

    Активируйте конфигурацию и получите SSL-сертификат:

    • Создайте символическую ссылку: sudo ln -s /etc/nginx/sites-available/n8n.yourdomain.com /etc/nginx/sites-enabled/
    • Проверьте синтаксис Nginx: sudo nginx -t
    • Перезагрузите Nginx: sudo systemctl reload nginx
    • Получите SSL-сертификат: sudo certbot --nginx -d n8n.yourdomain.com

    Certbot автоматически обновит конфигурацию Nginx для использования HTTPS.

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

    По умолчанию n8n использует SQLite для хранения данных. Для повышения производительности и надежности в production-среде рекомендуется перейти на PostgreSQL.

    Установите и настройте PostgreSQL:

    • Установите PostgreSQL: sudo apt install -y postgresql postgresql-contrib
    • Перейдите в консоль PostgreSQL: sudo -u postgres psql
    • Создайте базу данных и пользователя:
      • CREATE USER n8n_user WITH PASSWORD 'your_strong_password';
      • CREATE DATABASE n8n_db OWNER n8n_user;
      • GRANT ALL PRIVILEGES ON DATABASE n8n_db TO n8n_user;
    • Выйдите из консоли: q

    Остановите сервис n8n и настройте переменные окружения для использования PostgreSQL. Отредактируйте файл сервиса /etc/systemd/system/n8n.service, добавив или изменив следующие строки в секции [Service]:

    
    Environment="DB_TYPE=postgresdb"
    Environment="DB_POSTGRESDB_HOST=localhost"
    Environment="DB_POSTGRESDB_PORT=5432"
    Environment="DB_POSTGRESDB_DATABASE=n8n_db"
    Environment="DB_POSTGRESDB_USER=n8n_user"
    Environment="DB_POSTGRESDB_PASSWORD=your_strong_password"
    Environment="DB_POSTGRESDB_SCHEMA=public"
    
    

    После сохранения изменений выполните sudo systemctl daemon-reload и sudo systemctl restart n8n. n8n автоматически создаст необходимые таблицы в новой базе данных.

    Первоначальная настройка и начало работы

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

    Ключевые шаги после входа:

    • Настройка Credentials: В разделе «Settings» -> «Credentials» добавьте ключи доступа для используемых сервисов (Telegram Bot Token, API ключи и т.д.).
    • Создание первого workflow: Нажмите «New workflow». Перетащите ноды (узлы) из левой панели на холст.
    • Настройка нод: Дважды кликните на ноде для конфигурации. Например, нода «Schedule» позволяет запускать workflow по расписанию.
    • Активация workflow: Переведите тумблер в активное состояние в правом верхнем углу. Workflow начнет выполняться согласно заданной логике.

    Управление и обслуживание

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

    Задача Команда или действие Периодичность
    Проверка статуса сервиса sudo systemctl status n8n.service Ежедневно/при проблемах
    Просмотр логов sudo journalctl -u n8n.service -f При отладке
    Обновление n8n sudo npm update -g n8n с последующим перезапуском сервиса После проверки changelog
    Резервное копирование базы данных pg_dump -U n8n_user n8n_db > backup_$(date +%Y%m%d).sql Еженедельно
    Очистка старых данных выполнения Настройка «Execution History» в настройках n8n Настройка один раз

    Альтернативные методы установки: Docker

    Установка с помощью Docker изолирует n8n и его зависимости, упрощая развертывание и обновление.

    • Установите Docker и Docker Compose: sudo apt install -y docker.io 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=http
          - N8N_HOST=localhost
          - N8N_PORT=5678
          - N8N_WEBHOOK_URL=https://n8n.yourdomain.com
          - GENERIC_TIMEZONE=Europe/Moscow
          - DB_TYPE=postgresdb
          - DB_POSTGRESDB_HOST=postgres
          - DB_POSTGRESDB_PORT=5432
          - DB_POSTGRESDB_DATABASE=n8n_db
          - DB_POSTGRESDB_USER=n8n_user
          - DB_POSTGRESDB_PASSWORD=your_strong_password
        volumes:
          - n8n_data:/home/node/.n8n
        depends_on:
          - postgres
      postgres:
        image: postgres:13-alpine
        container_name: n8n_postgres
        restart: unless-stopped
        environment:
          - POSTGRES_USER=n8n_user
          - POSTGRES_PASSWORD=your_strong_password
          - POSTGRES_DB=n8n_db
        volumes:
          - postgres_data:/var/lib/postgresql/data
    volumes:
      n8n_data:
      postgres_data:
    
    

    Запустите контейнеры командой docker-compose up -d в директории с файлом.

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

    Как сменить порт, на котором работает n8n?

    Измените переменную окружения N8N_PORT в файле сервиса systemd или в Docker Compose файле. Например, Environment="N8N_PORT=8080". После изменения перезапустите сервис.

    Как настроить базовую аутентификацию для доступа к интерфейсу?

    Добавьте в переменные окружения сервиса (или Docker) следующие строки:

    • Environment="N8N_BASIC_AUTH_ACTIVE=true"
    • Environment="N8N_BASIC_AUTH_USER=admin"
    • Environment="N8N_BASIC_AUTH_PASSWORD=your_password"

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

    Где хранятся workflow и настройки?

    При использовании SQLite по умолчанию данные хранятся в файле ~/.n8n/database.sqlite. При использовании PostgreSQL данные находятся в указанной базе данных. Сами workflow также можно экспортировать/импортировать в виде JSON-файлов через интерфейс n8n.

    Как обновить n8n до последней версии?

    При установке через npm: sudo npm update -g n8n, затем перезапустите сервис. При установке через Docker: docker-compose pull n8n, затем docker-compose up -d. Всегда делайте резервную копию базы данных перед обновлением.

    Почему workflow не запускается по расписанию?

    Проверьте несколько возможных причин:

    • Убедитесь, что workflow активирован (тумблер «Active» включен).
    • Проверьте настройки часового пояса (GENERIC_TIMEZONE).
    • Убедитесь, что сервер имеет корректное системное время (используйте NTP).
    • Проверьте логи n8n на наличие ошибок.

    Как организовать резервное копирование?

    Резервное копирование должно включать два компонента:

    1. База данных: Регулярный дамп PostgreSQL или копия файла SQLite.
    2. Файлы workflow (JSON): Экспортируйте важные workflow через интерфейс (кнопка «Export») и сохраните файлы.

Автоматизируйте этот процесс с помощью скриптов и cron.

Как решить проблему с ошибкой «ETIMEDOUT» или сетевыми запросами?

Убедитесь, что сервер имеет выход в интернет (проверьте ping 8.8.8.8). Если используется прокси-сервер, настройте переменные окружения HTTP_PROXY и HTTPS_PROXY в конфигурации n8n. Проверьте настройки фаервола на сервере.

Можно ли запустить n8n на Windows локально?

Да. Для тестирования можно установить n8n через npm для Windows (npm install -g n8n) и запустить командой n8n start. Для production-подобной среды на Windows рекомендуется использовать установку через Docker Desktop, которая обеспечивает более стабильную и изолированную работу.

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

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