N8N установка на свой локальный сервер, пошаговый гайд

n8n можно поставить на свой сервер двумя основными путями — через Docker или npm. Разберёмся, чем они отличаются и какой вариант подойдёт именно вам.
Установка через Docker
Docker — это инструмент, который упаковывает приложения в «контейнеры». Представьте, что n8n вместе со всеми настройками и зависимостями поместили в отдельную коробку.
Это:
- Проще в управлении: запустили контейнер — и всё работает.
- Безопаснее: n8n не конфликтует с другими программами на сервере.
- Легче обновлять: чтобы получить новую версию, достаточно перезапустить контейнер.
Кому подойдёт:
- Если вы не хотите разбираться с Node.js.
- Нужно быстро развернуть n8n для рабочих задач.
- Вы новичок в администрировании серверов.
Установка через npm — для разработчиков и тонкой настройки
npm — это менеджер пакетов для Node.js. Тут вы ставите n8n напрямую, как обычную программу.
Плюсы:
- Гибкость: можно интегрировать n8n с другими приложениями на Node.js.
- Полный контроль: настраивайте каждую деталь под свои нужды.
Но есть нюансы:
- Нужно заранее установить Node.js и npm.
- Придётся вручную следить за зависимостями.
- Не такая изоляция, как в Docker (риск конфликтов с другими программами).
Кому подойдёт:
- Если вы уже работаете с Node.js.
- Нужно кастомизировать n8n или встроить его в свой проект.
Что выбрать?
- Выбирайте Docker, если хотите сэкономить время и нервы. Это рекомендуемый способ даже от разработчиков n8n.
- Выбирайте npm, если вам важна глубокая настройка или вы планируете дорабатывать платформу.
Про Docker Compose и настройку
Если решите идти через Docker, вам понадобится Docker Compose — он упрощает управление контейнерами. Для установки:
- Поставьте Docker Engine и Docker Compose (инструкции есть на официальном сайте Docker).
- Создайте файл docker-compose.yml с настройками n8n.
- Запустите контейнер одной командой.
Это займёт буквально 5–10 минут. А если что-то пойдёт не так — всегда можно удалить контейнер и начать заново без последствий для системы.
Главное: Оба способа рабочие. Docker — для большинства, npm — для специфических задач.
Для Linux (например, Ubuntu):
Обновите список пакетов и обновите установленные пакеты до последних версий с помощью команд:
sudo apt-get update
sudo apt-get upgrade -y
Установите необходимые зависимости для установки Docker: sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
Добавьте официальный ключ GPG Docker:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg —dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
Настройте стабильный репозиторий Docker:
echo «deb [arch=$(dpkg —print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable» | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Снова обновите список пакетов: sudo apt-get update
Установите Docker Engine, Docker CLI, containerd.io и Docker Compose Plugin: sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
Проверьте успешность установки Docker и Docker Compose, выполнив команды:
docker —version
docker compose version
Для Windows и macOS:
На этих операционных системах рекомендуется установить Docker Desktop, который включает в себя Docker Engine, Docker CLI, Docker Compose, Docker Content Trust, Kubernetes и Credential Helper. Загрузить Docker Desktop можно с официального сайта Docker. Следуйте инструкциям установщика для завершения процесса установки.
Создание файла docker-compose.yml
Файл docker-compose.yml используется для определения и настройки всех сервисов, необходимых для запуска n8n, в данном случае это сам сервис n8n. Создайте новый файл с именем docker-compose.yml в любом удобном для вас каталоге на сервере и добавьте в него следующее содержимое:
YAML
version: ‘3.1’
services:
n8n:
image: docker.n8n.io/n8nio/n8n
restart: always
ports:
— «5678:5678»
volumes:
— n8n_data:/home/node/.n8n
environment:
— N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}
— N8N_PORT=5678
— N8N_PROTOCOL=https
— WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/
— N8N_BASIC_AUTH_ACTIVE=true
— N8N_BASIC_AUTH_USER=username
— N8N_BASIC_AUTH_PASSWORD=»password»
— GENERIC_TIMEZONE=Europe/Berlin
В этом файле описывается сервис n8n:
image: docker.n8n.io/n8nio/n8n указывает на официальный образ n8n из Docker Hub.
restart: always обеспечивает автоматический перезапуск контейнера в случае сбоя.
ports: — «5678:5678» сопоставляет порт 5678 на хост-машине с портом 5678 внутри контейнера, на котором работает веб-интерфейс n8n.
volumes: — n8n_data:/home/node/.n8n монтирует Docker-том с именем n8n_data в каталог /home/node/.n8n внутри контейнера, где n8n хранит свои данные. Это обеспечивает сохранность данных даже после перезапуска или удаления контейнера.
environment: определяет переменные окружения для настройки n8n :
- N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}: используется для установки доменного имени, если вы планируете использовать домен для доступа к n8n. Переменные ${SUBDOMAIN} и ${DOMAIN_NAME} могут быть определены в файле .env (рекомендуется) или непосредственно в docker-compose.yml.
- N8N_PORT=5678: указывает порт, который n8n будет слушать внутри контейнера.
- N8N_PROTOCOL=https: устанавливает протокол HTTPS для n8n.
- WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/: необходим, если вы планируете использовать вебхуки с доменом.
- N8N_BASIC_AUTH_ACTIVE=true: включает базовую аутентификацию.
- N8N_BASIC_AUTH_USER=username: задает имя пользователя для базовой аутентификации.
- N8N_BASIC_AUTH_PASSWORD=»password»: задает пароль для базовой аутентификации. Обязательно замените username и password на свои значения.
- GENERIC_TIMEZONE=Europe/Berlin: устанавливает временную зону для n8n. Замените Europe/Berlin на свою временную зону.
Рекомендуется создать файл .env в том же каталоге, что и docker-compose.yml, и определить в нем переменные SUBDOMAIN и DOMAIN_NAME, а также другие чувствительные данные, такие как пароли. Пример содержимого файла .env:
SUBDOMAIN=n8n
DOMAIN_NAME=yourdomain.com
N8N_BASIC_AUTH_USER=your_username
N8N_BASIC_AUTH_PASSWORD=your_secure_password
Затем в файле docker-compose.yml вы можете использовать эти переменные, как показано выше.
Запуск n8n с помощью Docker Compose
- Перейдите в каталог, где находится файл docker-compose.yml, с помощью команды cd /путь/к/каталогу.
- Выполните команду для запуска n8n в фоновом режиме:
docker compose up -d - После завершения запуска контейнера вы сможете получить доступ к n8n в своем веб-браузере, перейдя по адресу http://localhost:5678 (если вы не настраивали домен и не меняли порт) или по настроенному домену/IP-адресу и порту. При включенной базовой аутентификации вам будет предложено ввести имя пользователя и пароль, которые вы указали в переменных окружения.
Docker Compose значительно упрощает управление конфигурацией n8n и его зависимостей, инкапсулируя все необходимые настройки в одном файле. Использование томов Docker обеспечивает сохранность данных n8n, что особенно важно при обновлении или перезапуске контейнера.
Пошаговая инструкция по установке n8n с использованием npm
Установка n8n с использованием npm является альтернативным методом, который может быть предпочтителен для разработчиков, знакомых с Node.js. Ниже представлена пошаговая инструкция по установке Node.js и npm, а затем n8n CLI глобально.
Установка Node.js и npm
Перед установкой n8n с помощью npm необходимо убедиться, что на вашем сервере установлены Node.js (версии 18 или выше) и npm (менеджер пакетов Node.js).
Проверьте, установлены ли Node.js и npm, выполнив команды в терминале:
node -v
npm -v
Если команды не найдены или версии Node.js ниже, необходимо выполнить установку.
Для Linux (например, Ubuntu):
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash —
sudo apt-get install -y nodejs
Эта команда сначала загружает скрипт установки Node.js 18.x, а затем запускает его. После этого выполняется установка Node.js и npm.
Для других операционных систем: Перейдите на официальный сайт Node.js и загрузите подходящий установщик для вашей операционной системы. Следуйте инструкциям установщика для завершения процесса установки.
Ссылка: Node.Js
Глобальная установка n8n CLI
После установки Node.js и npm вы можете установить n8n CLI (Command Line Interface) глобально с помощью следующей команды: npm install -g n8n
Эта команда загрузит и установит последнюю стабильную версию n8n. Вы также можете установить определенную версию n8n, указав ее после символа @, например: npm install -g n8n@0.126.1
Для установки самой последней, но потенциально нестабильной версии n8n (beta-версии), используйте команду: npm install -g n8n@next
Запуск сервера n8n
После успешной установки n8n CLI вы можете запустить сервер n8n с помощью команды: n8n или n8n start
Эта команда запустит сервер n8n, и вы сможете получить доступ к веб-интерфейсу в своем браузере, перейдя по адресу http://localhost:5678.
Для запуска n8n в фоновом режиме и сохранения его работы после закрытия терминала рекомендуется использовать такие инструменты, как screen или tmux. Например, с помощью screen:
- Запустите новую сессию screen: screen -S n8n.
- Внутри сессии запустите n8n: n8n.
- Чтобы отсоединиться от сессии, нажмите Ctrl+A, затем D. n8n продолжит работать в фоновом режиме.
- Чтобы вернуться к сессии, используйте команду screen -r n8n.
Установка через npm предоставляет прямой доступ к файловой системе n8n, что может быть полезно для расширенных конфигураций или интеграции с другими Node.js приложениями. Глобальная установка делает команду n8n доступной из любой точки терминала, что упрощает запуск и управление сервером.
Первоначальная настройка n8n после установки
После успешной установки n8n одним из выбранных методов необходимо выполнить первоначальную настройку для обеспечения безопасного доступа и корректной работы платформы.
Настройка обратного прокси-сервера (Nginx или Apache)
Настройка обратного прокси-сервера, такого как Nginx или Apache, является важным шагом для обеспечения безопасного доступа к n8n через HTTPS и использования доменного имени. Обратный прокси принимает входящие запросы от пользователей и перенаправляет их на сервер n8n.
Пример настройки Nginx:
- Установите Nginx на свой сервер, если он еще не установлен:
sudo apt-get update
sudo apt-get install nginx - Создайте новый конфигурационный файл для n8n, например, n8n, в каталоге /etc/nginx/sites-available/:
Nginx
server {
listen 80;
server_name yourdomain.com; # Замените на свой домен
location / {
proxy_pass http://localhost:5678;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection ‘upgrade’;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}
Замените yourdomain.com на свой фактический домен или IP-адрес сервера. - Включите созданную конфигурацию, создав символическую ссылку в каталоге /etc/nginx/sites-enabled/: sudo ln -s /etc/nginx/sites-available/n8n /etc/nginx/sites-enabled/
- Удалите конфигурацию по умолчанию, если она есть: sudo rm /etc/nginx/sites-enabled/default
- Проверьте конфигурацию Nginx на наличие ошибок: sudo nginx -t
- Перезапустите сервис Nginx для применения изменений: sudo systemctl restart nginx
Аналогичные шаги можно выполнить для настройки Apache в качестве обратного прокси-сервера. Настройка обратного прокси не только обеспечивает безопасный доступ через HTTPS, но и позволяет использовать более удобные доменные имена вместо IP-адресов и портов.
Конфигурация переменных окружения n8n
Переменные окружения играют важную роль в настройке различных аспектов работы n8n. Существует несколько способов установки переменных окружения:
- Через файл .env (рекомендуется): Создайте файл .env в каталоге, где вы запускаете n8n (например, рядом с docker-compose.yml или в домашнем каталоге пользователя, запускающего n8n при установке через npm). Определите переменные в формате KEY=VALUE.
- Непосредственно в docker-compose.yml (для Docker): В разделе environment сервиса n8n можно перечислить необходимые переменные и их значения.
- Через системные переменные окружения: Переменные могут быть установлены непосредственно в операционной системе сервера.
Основные переменные окружения, которые могут потребоваться:
- N8N_HOST: Установите значение равным вашему домену, если вы используете домен для доступа к n8n.
- N8N_PORT: По умолчанию используется порт 5678. Вы можете изменить его, если это необходимо.
- N8N_PROTOCOL: Укажите протокол, который будет использовать n8n: http или https.
- WEBHOOK_URL: Обязательно укажите URL вашего домена, если вы планируете использовать вебхуки.
- N8N_ENCRYPTION_KEY: Критически важная переменная, используемая для шифрования учетных данных и другой чувствительной информации. Сгенерируйте надежный ключ и сохраните его в безопасном месте.
- N8N_BASIC_AUTH_ACTIVE: Установите значение true, чтобы включить базовую аутентификацию.
- N8N_BASIC_AUTH_USER: Укажите имя пользователя для базовой аутентификации.
- N8N_BASIC_AUTH_PASSWORD: Укажите пароль для базовой аутентификации.6
- GENERIC_TIMEZONE: Установите свою временную зону, например, Europe/Berlin.
Для использования PostgreSQL вместо SQLite (рекомендуется для production-сред):
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST: Хост базы данных PostgreSQL.
- DB_POSTGRESDB_PORT: Порт базы данных PostgreSQL (обычно 5432).
- DB_POSTGRESDB_DATABASE: Имя базы данных PostgreSQL.
- DB_POSTGRESDB_USER: Имя пользователя для подключения к базе данных.
- DB_POSTGRESDB_PASSWORD: Пароль для подключения к базе данных.4
Правильная настройка переменных окружения определяет основные параметры работы n8n и обеспечивает его безопасную и стабильную работу.
Безопасность при установке n8n
Использование HTTPS (Hypertext Transfer Protocol Secure) обеспечивает шифрование трафика между браузером пользователя и сервером, защищая передаваемые данные от перехвата. Для настройки HTTPS необходимо получить SSL-сертификат и настроить обратный прокси-сервер для его использования.
- Получение SSL-сертификата: Одним из наиболее популярных и бесплатных способов получения SSL-сертификата является использование Let’s Encrypt. Для этого установите Certbot и плагин для вашего веб-сервера (например, Nginx):
sudo apt-get update
sudo apt-get install certbot python3-certbot-nginx
Затем выполните команду для получения сертификата:
sudo certbot —nginx -d yourdomain.com
Замените yourdomain.com на свой фактический домен. Certbot автоматически настроит Nginx для использования полученного сертификата. - Настройка обратного прокси-сервера: Убедитесь, что в конфигурации вашего обратного прокси-сервера (Nginx или Apache) включены директивы, указывающие на полученные SSL-сертификат и ключ. Например, в конфигурации Nginx это могут быть директивы ssl_certificate и ssl_certificate_key.
- Перенаправление HTTP на HTTPS: Рекомендуется настроить автоматическое перенаправление всех HTTP-запросов на HTTPS, чтобы обеспечить использование защищенного соединения. В конфигурации Nginx это можно сделать, добавив следующий блок server:
Nginx
server { listen 80; server_name yourdomain.com; return 301https://$server_name$request_uri;}
Конфигурация аутентификации пользователей
Настройка аутентификации пользователей позволяет ограничить доступ к веб-интерфейсу n8n.
- Базовая аутентификация: Самым простым способом является включение базовой аутентификации через переменные окружения n8n. Установите переменную N8N_BASIC_AUTH_ACTIVE в значение true, а также задайте имя пользователя и пароль через переменные N8N_BASIC_AUTH_USER и N8N_BASIC_AUTH_PASSWORD.
- Надежные пароли: При настройке аутентификации крайне важно использовать надежные и уникальные пароли, которые сложно подобрать.
- Другие методы аутентификации: В зависимости от ваших потребностей могут быть рассмотрены и другие методы аутентификации, такие как OAuth 2.0 или LDAP, но их настройка может быть более сложной.
Внедрение HTTPS и аутентификации является неотъемлемой частью процесса установки n8n и позволяет значительно повысить уровень безопасности вашей инсталляции.
Распространенные проблемы при установке n8n и способы их решения
- Проблемы с зависимостями: Убедитесь, что на вашем сервере установлены все необходимые зависимости, такие как Docker (правильной версии) или Node.js (версии 18 или выше) и npm. Проверьте версии установленных программ с помощью команд docker —version и node -v.
- Конфликты портов: По умолчанию n8n использует порт 5678. Если этот порт уже занят другим приложением, вам необходимо изменить порт n8n в конфигурационном файле (docker-compose.yml или через переменную окружения N8N_PORT).
- Ошибки в конфигурационных файлах: Внимательно проверьте синтаксис файлов docker-compose.yml и конфигурации обратного прокси (Nginx, Apache). Ошибки в синтаксисе YAML (например, неправильные отступы) или опечатки в переменных могут привести к проблемам при запуске n8n.
- Проблемы с разрешениями: При использовании монтируемых томов Docker убедитесь, что у пользователя внутри контейнера есть необходимые права на чтение и запись в соответствующие каталоги на хост-машине.
- Ошибки при запуске контейнера Docker: Если контейнер Docker не запускается, проверьте логи контейнера с помощью команды docker logs <имя_контейнера> (обычно n8n). Логи могут содержать информацию об ошибках, возникших при запуске.
- Проблемы с DNS: При использовании доменного имени убедитесь, что DNS-запись для вашего домена правильно указывает на IP-адрес вашего сервера.
Если что-то пошло не так — вот куда смотреть
Загляните на форум n8n
Ссылка: форум n8n
Там уже обсуждали тысячи вопросов: от мелких багов до сложных кейсов. Перед тем как писать свой пост, поищите по ключевым словам — вдруг решение уже есть. Если не нашли — создайте новую тему.
Опишите:
- Что именно не работает (например: «Не запускается workflow с Telegram»).
- Какие шаги вы уже пробовали.
- Текст ошибки (скопируйте его из логов).
Проверьте раздел FAQ в документации (docs.n8n.io).
Там собраны ответы на частые вопросы: от установки до настройки специфических интеграций.
Совет: Чем подробнее вы опишете проблему, тем быстрее вам помогут. Не стесняйтесь прикреплять скриншоты или логи ошибок — это сэкономит время всем.
Сообщество n8n довольно отзывчивое — там редко оставляют вопросы без ответа. А если боитесь ошибиться в английском — пишите на русском: многие участники понимают и помогут перевести.
Другие методы установки n8n
Кроме Docker и npm, существуют и другие методы установки n8n, которые могут быть более подходящими в определенных сценариях.
- Готовые образы на облачных платформах: Некоторые облачные провайдеры, такие как DigitalOcean и AWS, предлагают готовые образы n8n в своих маркетплейсах. Это может значительно упростить процесс установки, особенно для пользователей, уже использующих эти платформы.
- Управляемые сервисы (например, Elestio): Существуют управляемые сервисы, такие как Elestio, которые берут на себя всю работу по установке и обслуживанию n8n. Elestio предоставляет полностью управляемый сервис, размещенный на выбранном пользователем облачном провайдере, что позволяет быстро начать работу с n8n без необходимости самостоятельной настройки сервера.
- PaaS платформы (например, Heroku): n8n можно развернуть на платформах PaaS (Platform-as-a-Service), таких, как Heroku. Для Heroku существует специальный шаблон развертывания, который упрощает процесс установки.
- Kubernetes (AWS EKS, Azure AKS, Google GKE): Для более сложных и масштабируемых развертываний n8n можно установить с использованием Kubernetes на таких платформах, как AWS EKS, Azure AKS и Google GKE. Официальная документация предоставляет подробные руководства по установке на этих платформах.
- VPS-шаблоны (например, Hostinger): Некоторые хостинг-провайдеры, такие как Hostinger, предлагают VPS-шаблоны с уже предустановленным n8n. Это может быть удобным вариантом для пользователей, которые хотят быстро развернуть n8n без ручной установки.
- Railway.app: Railway представляет собой еще одну платформу, которая позволяет легко развернуть n8n, включая бесплатный вариант с некоторыми ограничениями. Это может быть очень простым способом для быстрого старта, особенно для тестирования и личного использования.
Выбор метода установки зависит от вашего уровня технических знаний, требований к контролю над сервером, необходимой масштабируемости и предпочтений в использовании той или иной платформы. Готовые образы и управляемые сервисы предлагают простоту установки, но могут ограничивать контроль над конфигурацией. PaaS платформы удобны для развертывания, но могут иметь ограничения по ресурсам. Kubernetes обеспечивает высокую гибкость и масштабируемость, но требует более глубоких знаний. VPS-шаблоны и Railway.app предлагают простоту использования для быстрого старта.
Вы узнали, как поставить n8n на свой сервер — через Docker и npm. Docker подойдёт большинству: его легко освоить, и он надёжно работает «из коробки». Npm — выбор для тех, кто уже дружит с Node.js и хочет кастомизировать настройки под себя.
Что дальше?
Теперь можно создавать автоматизацию! Например:
— Настроить уведомления в Telegram при новых письмах в почте.
— Автоматически переносить данные из Google Forms в таблицы.
— Синхронизировать задачи между Trello и Notion.
Таблица 1: Сравнение методов установки
Больше инструкций, реальных кейсов и примеров из практики по AI для бизнеса, работы и жизни в Telegram-канале, подпишитесь!
Метод установки | Преимущества | Недостатки | Уровень сложности | Рекомендации по использованию |
Docker | Простота настройки и управления, лучшая изоляция, воспроизводимость, рекомендуется для большинства пользователей | Требуется установка Docker и Docker Compose | Средний | Большинство пользователей, производственные среды, пользователи без опыта работы с Node.js |
npm | Прямой доступ к файловой системе, гибкость в настройке для опытных пользователей | Требуется предварительная установка Node.js и npm, больше ручной настройки | Средний | Разработчики, пользователи, знакомые с Node.js, специфические сценарии интеграции |
Таблица 2: Основные переменные окружения n8n
Переменная | Описание | Пример значения | Примечания |
N8N_HOST | Доменное имя для доступа к n8n | n8n.yourdomain.com | Необязательная, используется при наличии домена |
N8N_PORT | Порт, который слушает n8n | 5678 | По умолчанию 5678 |
N8N_PROTOCOL | Протокол, используемый n8n (http или https) | https | Рекомендуется https |
WEBHOOK_URL | URL для вебхуков | https://n8n.yourdomain.com/ | Обязательная при использовании вебхуков с доменом |
N8N_ENCRYPTION_KEY | Ключ шифрования учетных данных | a-very-secret-encryption-key | Критически важна для безопасности |
N8N_BASIC_AUTH_ACTIVE | Включить/выключить базовую аутентификацию (true или false) | true | Рекомендуется включить |
N8N_BASIC_AUTH_USER | Имя пользователя для базовой аутентификации | admin | Замените на свое имя пользователя |
N8N_BASIC_AUTH_PASSWORD | Пароль для базовой аутентификации | secure_password | Замените на свой надежный пароль |
GENERIC_TIMEZONE | Временная зона для n8n | Europe/Berlin | Установите свою временную зону |
DB_TYPE | Тип базы данных (sqlite или postgresdb) | postgresdb | Рекомендуется postgresdb для production-сред |
DB_POSTGRESDB_HOST | Хост базы данных PostgreSQL | localhost | Или IP-адрес вашего сервера PostgreSQL |
DB_POSTGRESDB_PORT | Порт базы данных PostgreSQL | 5432 | По умолчанию 5432 |
DB_POSTGRESDB_DATABASE | Имя базы данных PostgreSQL | n8n | Укажите имя вашей базы данных |
DB_POSTGRESDB_USER | Имя пользователя для подключения к PostgreSQL | n8n_user | Укажите имя пользователя с правами доступа к базе данных n8n |
DB_POSTGRESDB_PASSWORD | Пароль для подключения к PostgreSQL | postgres_password | Укажите пароль пользователя для подключения к базе данных PostgreSQL n8n |
Больше инструкций, реальных кейсов и примеров из практики по AI для бизнеса, работы и жизни в Telegram-канале, подпишитесь!