Как установить n8n? Полное руководство для новичков по локальному развертыванию и первому запуску

Установить n8n само по себе несложно, сложно после установки — вопрос «не потеряются ли данные». Я видел слишком многих, кто запускал одной командой, пользовался неделю, удалял container и пересоздавал, и все workflow пропадали — потому что volume данных был смонтирован неправильно.

В этой статье разобраны три распространённых способа установки в порядке «минимум проблем»: Docker, Docker Compose, npm. После установки у вас будет: n8n, открываемый в браузере, данные хранятся локально и не теряются, часовой пояс правильный.

Кому подходит и что нужно перед началом

Подходит тем, кто вообще никогда не разворачивал сервисы, но умеет открыть терминал и ввести команды. Windows, macOS, Linux — всё подходит, статья в основном про Docker, потому что дальнейшее обновление и миграция проще всего.

Если вы просто хотите попробовать на чужой машине и не использовать долго, сразу переходите к третьему разделу — способу npm, запускается двумя командами, но не храните там важные данные.

Сначала решите, где устанавливать

Способ Кому подходит Преимущества Цена
Docker (один container) Личный компьютер, лёгкое использование Чистая изоляция, удалил так удалил, обновление — только замена image Нужно немного знать Docker
Docker Compose Долгосрочная работа, требуется подключение к базе данных Конфигурация записывается в файл, возможен контроль версий, автоматический запуск при перезапуске Нужно поддерживать ещё один yaml
Глобальная установка через npm Уже есть окружение Node, хочется сэкономить ресурсы Без container, прямое подключение к хосту, минимальные потери производительности Зависит от версии Node в системе, при обновлении легко всё сломать

Моя рекомендация: для личного использования выбирайте Docker Compose, а не одиночный docker run. Причина сугубо практическая — после запуска одной командой вы через два месяца абсолютно не вспомните, какие параметры тогда задавали. Compose записывает параметры в файл: при проблеме можно посмотреть, изменить, сделать резервную копию.

Проверка окружения

Сначала убедитесь, что Docker установлен. Выполните в терминале:

docker -v

Если видите номер версии (в виде Docker version 29.5.3, build d1c06ef), значит установлен. В Windows и macOS Docker Desktop идёт в комплекте; в Linux используется Docker Engine.

Затем убедитесь, что port 5678 не занят. Linux:

ss -lntp | grep 5678

В macOS или Linux также можно использовать lsof -i :5678. Если есть вывод — значит занят, смените port, например -p 5679:5678. Windows использует netstat -ano | findstr 5678。

Способ первый: запустить одной командой docker run

Сначала создайте том данных, затем запустите container. Не объединяйте эти два шага в один — создайте том отдельно, чтобы при последующем удалении и пересоздании container данные не потерялись:

docker volume create n8n_data

docker run -d --name n8n 
  -p 5678:5678 
  -e GENERIC_TIMEZONE="Asia/Shanghai" 
  -e TZ="Asia/Shanghai" 
  -e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true 
  -e N8N_DEFAULT_LOCALE=zh-CN 
  -v n8n_data:/home/node/.n8n 
  --restart unless-stopped 
  n8nio/n8n

Разберём по порядку, что делает каждый параметр — именно здесь реально возникают проблемы:

  • -d: работа в фоне. В официальной документации указано -it --rm(работа в foreground, удаление при выходе) — это для пробного запуска. Для долгосрочного использования обязательно замените на -d --restart unless-stopped, тогда после перезагрузки сервера container запустится сам.
  • -p 5678:5678: сопоставляет port 5678 внутри container с хостом. Слева — port хоста, менять нужно левую часть.
  • GENERIC_TIMEZONE 和 TZ: нужно задать оба.TZ управляет временем системных команд внутри container,GENERIC_TIMEZONE определяет, по какому часовому поясу рассчитываются узлы расписания (например, Schedule Trigger). Если задать только один, возникнет ситуация «я поставил на 9 утра, а запустилось в 5 вечера».
  • -v n8n_data:/home/node/.n8n:Самая важная строка. База данных SQLite n8n, ключи шифрования и логи находятся в этом каталоге. Без mount тома при удалении container всё пропадёт.
  • N8N_DEFAULT_LOCALE=zh-CN: интерфейс по умолчанию на китайском. Учтите, что в n8n переведена только оболочка, параметры узлов остаются на английском.

После запуска откройте в браузере http://localhost:5678При первом запуске вам будет предложено создать учётную запись администратора, пароль не менее 8 символов. Эта учётная запись хранится локально, при утере пароля возможен только сброс, запомните его.

Способ 2: Docker Compose (рекомендуется)

Создайте каталог, поместите в него docker-compose.yml:

services:
  n8n:
    image: n8nio/n8n:latest
    container_name: n8n
    restart: unless-stopped
    ports:
      - "5678:5678"
    environment:
      - GENERIC_TIMEZONE=Asia/Shanghai
      - TZ=Asia/Shanghai
      - N8N_DEFAULT_LOCALE=zh-CN
      - N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
      - N8N_SECURE_COOKIE=false
    volumes:
      - ./n8n_data:/home/node/.n8n

Затем выполните в этом каталоге:

docker compose up -d

Несколько пояснений:

N8N_SECURE_COOKIE=false Эта строка нужна только при «локальном доступе по http». Если вы уже настроили домен и HTTPS, удалите её — если HTTPS включён, а здесь указано false, это наоборот снижает безопасность. У многих при локальной установке страница входа бесконечно крутится именно из-за этой настройки cookie.

Каталог данных использует ./n8n_data, то есть папку на том же уровне, что и yml. Преимущество в том, что для резервного копирования достаточно упаковать этот каталог, не нужно гадать, где спрятан Docker-том.

Просмотр логов и проверка, запустилось ли:

docker compose logs -f --tail=50

Если видите строку с адресом редактора и номером версии — значит, запустилось. Нажатие Ctrl+C только выходит из логов, контейнер продолжает работать.

Способ 3: глобальная установка через npm

Тот экземпляр, которым я пользуюсь сам, установлен именно так — без контейнера, напрямую на хосте. Требуется среда Node.js, n8n 2.x требует Node 20 или выше (у меня на этой машине Node 24.21.0).

npm install -g n8n
n8n start

Но при таком прямом запуске есть проблема: данные по умолчанию попадают в каталог текущего пользователя .n8n, и при закрытии терминала всё останавливается. В production обычно задают каталог данных через переменные окружения, а затем управляют процессом через systemd или pm2. Ключевые переменные, фактически используемые на этом экземпляре, выглядят так (значения замените на свои):

N8N_USER_FOLDER=/data/n8n
N8N_HOST=127.0.0.1
N8N_PORT=5678
N8N_PROTOCOL=http
N8N_EDITOR_BASE_URL=https://你的域名/
N8N_DEFAULT_LOCALE=zh-CN

N8N_HOST=127.0.0.1 В сочетании с N8N_EDITOR_BASE_URL— это распространённый способ спрятать n8n за Nginx и не открывать порт напрямую; подробно расскажу в следующей статье при развёртывании на сервере. Если вы используете только на локальной машине, установите HOST в localhost и всё.

Как выглядит после установки

После входа открывается страница «Обзор». Слева — навигация по функциям, в центре — вкладки рабочих процессов, выполнений, учётных данных, справа вверху — кнопка «Создать рабочий процесс».

n8n 登录后进入的概览页,左侧为功能导航,中间为工作流列表
Так выглядит первый вход после завершения установки. Если вы видите английский интерфейс, зайдите в настройки и смените язык на упрощённый китайский.

Нажмите «Создать рабочий процесс» — получите пустой холст, в центре только строка «Добавить первый шаг»:

n8n 新建工作流后的空白画布,中间显示添加第一步
Пустой холст не означает, что что-то сломано — это нормальная отправная точка. Все рабочие процессы начинаются с этого плюса.

Первый рабочий процесс: три узла

Нажмите на плюс в центре холста — справа появится библиотека узлов. В поле поиска введите manualвыберите «Manual Trigger (ручной запуск)» — это будет отправной точкой данной цепочки.

n8n 节点库搜索 http 的结果,列出 HTTP Request、Webhook 等节点
В библиотеке узлов можно искать по английскому имени или просматривать по категориям. В китайском интерфейсе имена и описания узлов остаются на английском, поиск по английскому точнее.

Затем на маленьком плюсе справа от узла ручного запуска добавьте «Edit Fields (редактирование полей)», напишите пару полей, например city заполните «Фучжоу»,temp заполните 27. Ещё правее добавьте узел «Code (код)», в поле кода вставьте:

return items.map(item => ({
  json: {
    message: `${item.json.city} 现在 ${item.json.temp} 度`
  }
}));

В конце нажмите кнопку «Выполнить» внизу холста. Три узла поочерёдно загорятся и станут зелёными галочками — значит вся цепочка работает. Теперь откройте любой узел — в области вывода справа увидите фактические данные.

Цель этого шага — не научиться писать код, а убедиться: то, что установлено, работает.

Как понять, что установка действительно успешна

Возможность открыть интерфейс — это не успех. Пройдите четыре пункта ниже, и только если все пройдены — успех:

  1. Редактор открывается: браузер открывает без ошибок, виден список workflow.
  2. Сохранение работает: создайте новый workflow, добавьте любой узел, дождитесь автосохранения, затем обновите страницу — содержимое на месте.
  3. После перезапуска ничего не теряется:docker compose restart, снова обновите — только что созданный workflow на месте. Это единственный способ проверить, правильно ли смонтирован data volume.
  4. Выполнение работает: запустите workflow вручную, узел становится зелёным, при открытии видны выходные данные.

Третий пункт чаще всего пропускают, и он самый критичный. Если после перезапуска workflow исчез, не сомневайтесь в n8n — проверьте, -v не ошиблись ли в пути после него или не использовали ли анонимный volume.

Типичные ошибки

port занят.В сообщении об ошибке указано port is already allocated. Смените port хоста, например -p 5679:5678, затем обращайтесь через 5679.

Открывается, но при входе бесконечная загрузка.При локальном доступе по http, если N8N_SECURE_COOKIE имеет значение по умолчанию true, браузер откажется записывать cookie. При локальном тестировании установите false, после настройки HTTPS удалите эту строку.

Время задачи cron неверное.Установлен только TZ не установлен GENERIC_TIMEZONE, узел расписания считает по UTC. Установите оба в Asia/Shanghai。

После перезапуска container не поднялся.Забыли добавить --restart unless-stopped или в yml restart. После перезапуска сервера нужно вручную docker start n8n。

Загрузка image очень медленная или завершается ошибкой.При загрузке из Docker Hub в материковом Китае часто возникают тайм-ауты; настройте зеркало-ускоритель и повторите загрузку или используйте docker pull n8nio/n8n терпеливо дождитесь — image может весить несколько сотен MB.

Китайский язык не вступил в силу.N8N_DEFAULT_LOCALE Это влияет только на язык по умолчанию для новых сессий; в существующих аккаунтах нужно вручную изменить в настройках. И, как упоминалось ранее, только оболочка интерфейса на китайском.

Не спешите сразу открывать доступ из публичной сети

После установки сразу захотелось получить доступ с телефона, поэтому port 5678 был открыт в публичную сеть — это самая распространённая ошибка. В n8n хранятся API Key ваших различных систем; держать его открытым в публичной сети — всё равно что повесить ключи у входной двери.

Правильный подход: сначала использовать локально или во внутренней сети; после подтверждения долгосрочного использования — привязать домен, включить HTTPS, настроить обратный прокси через Nginx и разрешить прослушивание только на 127.0.0.1, следуя процедуре из следующей статьи.

Кроме того, после первого входа сразу смените пароль администратора на надёжный; не используйте admin123 такой.

О версиях

n8n выпускает минорную версию каждую неделю. На момент написания этой статьи в официальной документации указана стабильная версия 2.44.5, beta — 2.45.2; на моём экземпляре запущена 2.43.7, и все скриншоты интерфейса взяты с него.

Рекомендация:В production не используйте latest. Закрепите image на конкретном номере версии, например n8nio/n8n:2.44.5При обновлении измените число и снова выполните pull. Последствие использования latest: в один день после перезапуска версия незаметно изменится, поведение workflow тоже изменится, и разбираться в этом будет очень трудно.

Как посмотреть свою версию: после входа перейдите в настройки в самом низу слева или выполните docker exec n8n n8n --version。

Следующий шаг

Установлено, сначала потратьте десять минут, чтобы освоиться с интерфейсом:Обзор интерфейса n8n: что означают canvas, node и execution records. После ознакомления с помощью установленного сегодня набора наберите приведённый выше пример с тремя node — руки запоминают лучше, чем глаза.

Если вы хотите сначала понять «почему стоит учиться», вернитесь к предыдущей статье:Что такое n8n: введение с нуля и сценарии применения。

Справочные материалы

Последнее обновление: 22 октября 2026 г. Несколько команд Docker сверены с официальной документацией (указанная тогда стабильная версия — 2.44.5), скриншоты сделаны с моей собственной машины с версией 2.43.7.

THE END