Установка 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 - Добавьте репозиторий 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 - Установите n8n:
sudo npm install -g n8n - После завершения установки запустите n8n:
n8n start sudo adduser --system --group --no-create-home n8nsudo mkdir -p /home/n8n/.n8nsudo chown -R n8n:n8n /home/n8n/.n8nsudo nano /etc/systemd/system/n8n.service
Первым шагом является обновление индексов пакетов и установка обновлений системы:
Установка Node.js и npm
n8n написан на Node.js, поэтому необходима его установка. Рекомендуется использовать версию Node.js 18 или выше. Установку можно выполнить через менеджер узлов NodeSource.
Способ 1: Установка n8n с помощью npm (Прямая установка)
Самый простой способ установить n8n — использовать менеджер пакетов npm. Установка выполняется глобально.
По умолчанию n8n будет доступен по адресу http://localhost:5678. Веб-интерфейс откроется на порту 5678, а REST API — на порту 5678. Этот метод подходит для быстрого тестирования, но не рекомендуется для production-среды, так как процесс завершится при закрытии терминала.
Способ 2: Установка n8n как системного сервиса (Рекомендуемый способ)
Для постоянной работы n8n в фоновом режиме и автоматического запуска при перезагрузке системы необходимо настроить его как системный сервис с помощью systemd.
Создайте пользователя для запуска n8n (для повышения безопасности):
Создайте директорию для данных n8n и назначьте права:
Создайте файл конфигурации сервиса systemd:
Вставьте следующую конфигурацию, адаптировав при необходимости переменные окружения:
[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 на наличие ошибок.
Как организовать резервное копирование?
Резервное копирование должно включать два компонента:
- База данных: Регулярный дамп PostgreSQL или копия файла SQLite.
- Файлы 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, которая обеспечивает более стабильную и изолированную работу.
Добавить комментарий