Запустить n8n на компьютере несложно. Сложнее настроить всё так, чтобы после перезагрузки не исчезли сценарии, Ollama была доступна из Docker, а Telegram действительно передавал сообщения локальному ИИ-агенту.

В этой инструкции мы пройдём весь путь: установим n8n локально на Windows через Docker и соберём работающий workflow:

Telegram получает сообщение → n8n передаёт текст локальной модели Ollama → бот отправляет ответ.

Это не демонстрация с пустой панелью и не набор разрозненных команд. В конце у вас будет автоматизация, которую можно развивать: добавить память, работу с документами, таблицами, календарём или другими сервисами.

Быстрый план установки

Если детали пока не нужны, весь процесс выглядит так:

  1. Установить Docker Desktop.
  2. Создать compose.yaml с постоянным хранилищем.
  3. Запустить n8n командой docker compose up -d.
  4. Установить Ollama и загрузить языковую модель.
  5. Подключить Ollama к n8n.
  6. Создать Telegram-бота.
  7. Настроить публичный HTTPS webhook.
  8. Собрать workflow из Telegram Trigger, AI Agent и Telegram.
  9. Опубликовать сценарий и отправить боту тестовое сообщение.

Для постоянного использования на домашнем компьютере лучше устанавливать n8n через Docker. Вариант через npm проще для быстрого знакомства, но сложнее в обновлении, переносе и автоматическом запуске.

Сразу обозначим границу приватности. Ollama обрабатывает запрос локально, но сообщения Telegram всё равно проходят через серверы Telegram. Для полностью локального сценария вместо Telegram потребуется локальная форма, Chat Trigger или Webhook, доступный только внутри домашней сети.

Что такое n8n и зачем устанавливать его локально

n8n — это платформа автоматизации, в которой сценарии собираются из готовых узлов. Такие сценарии называются workflows.

Один узел получает сообщение, другой обращается к нейросети, третий проверяет условие, четвёртый отправляет результат. Большинство процессов можно собрать визуально, хотя для сложных интеграций иногда нужны выражения, API и небольшой объём кода.

Через n8n можно:

  • отвечать на сообщения при помощи ИИ;
  • переносить заявки из форм в CRM;
  • обрабатывать документы;
  • собирать информацию из API;
  • отправлять уведомления;
  • создавать черновики публикаций;
  • связывать сервисы, между которыми нет готовой интеграции.
Как работает локальный ИИ-агент n8n с Telegram и Ollama

Локальная установка означает, что панель n8n, workflows, настройки и база данных находятся на вашем устройстве. Это удобно для домашних автоматизаций, тестирования ИИ-агентов и работы с конфиденциальными данными.

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

Docker, npm или n8n Cloud: что выбрать

СпособДля когоПреимуществаНедостатки
Docker DesktopБольшинство домашних пользователейПростое обновление, изоляция, постоянное хранилищеНужно установить Docker
npmПользователи Node.jsБыстрый запуск без контейнераСложнее обновлять и настраивать автозапуск
n8n CloudТем, кто не хочет обслуживать системуНе нужен сервер, публичные webhook работают сразуПодписка и облачное хранение
VPS или домашний серверДля круглосуточной работыАвтоматизации доступны постоянноНужны администрирование и защита

Для этой инструкции выбираем Docker Desktop. Контейнер можно обновить или пересоздать, а данные останутся в отдельном хранилище.

Что потребуется для запуска

Подготовьте:

  • компьютер с Windows 10 или Windows 11;
  • Docker Desktop;
  • Ollama;
  • аккаунт Telegram;
  • несколько гигабайт свободного места для Docker и модели.

Сам n8n потребляет относительно немного ресурсов. Основная нагрузка приходится на Ollama.

Для компактной языковой модели желательно иметь 16 ГБ оперативной памяти. На компьютере с 8 ГБ тоже можно экспериментировать, но выбор моделей будет ограничен, а ответы могут генерироваться медленно.

NPU для такой установки не обязателен. Гораздо важнее доступная оперативная и видеопамять. Подробнее — в материале «Что такое NPU в ноутбуке и нужен ли он».

Как установить n8n локально на Windows через Docker

Шаг 1. Установите Docker Desktop

Загрузите Docker Desktop с официального сайта и выполните стандартную установку.

Если установщик предложит использовать WSL 2, оставьте этот параметр включённым. После перезагрузки компьютера запустите Docker Desktop и дождитесь готовности Docker Engine.

Откройте PowerShell и проверьте установку:

docker --version
docker compose version

Обе команды должны вывести номера установленных версий.

Если PowerShell сообщает, что команда docker не найдена, перезапустите Docker Desktop и откройте новое окно терминала.

Шаг 2. Создайте папку n8n

Создайте папку:

C:\n8n-local

Внутри неё должны находиться:

C:\n8n-local
├── compose.yaml
├── .env
└── backup

Файлы можно создать в обычном Блокноте. При сохранении выберите тип «Все файлы», иначе Windows может добавить расширение .txt.

В результате файл должен называться именно compose.yaml, а не compose.yaml.txt.

Шаг 3. Создайте ключ шифрования

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

В PowerShell выполните:

$bytes = New-Object byte[] 32
[System.Security.Cryptography.RandomNumberGenerator]::Fill($bytes)
[Convert]::ToBase64String($bytes)

Скопируйте полученную строку и добавьте её в файл .env:

N8N_ENCRYPTION_KEY=ВСТАВЬТЕ_СЮДА_ПОЛУЧЕННЫЙ_КЛЮЧ

Сохраните отдельную копию файла .env. Если потерять N8N_ENCRYPTION_KEY, восстановленная база n8n не сможет расшифровать сохранённые токены и пароли.

Шаг 4. Создайте compose.yaml

Вставьте следующий код в compose.yaml:

name: n8n-local

services:
  n8n:
    image: docker.n8n.io/n8nio/n8n
    container_name: n8n
    restart: unless-stopped
    ports:
      - "127.0.0.1:5678:5678"
    environment:
      - TZ=Europe/Moscow
      - GENERIC_TIMEZONE=Europe/Moscow
      - N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
      - N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
    volumes:
      - n8n_data:/home/node/.n8n
      - ./backup:/backup

volumes:
  n8n_data:

Разберём только самое важное:

  • 127.0.0.1:5678:5678 открывает панель только на этом компьютере;
  • restart: unless-stopped автоматически перезапускает контейнер;
  • n8n_data хранит базу, workflows и credentials;
  • ./backup:/backup связывает папку резервных копий с контейнером;
  • N8N_ENCRYPTION_KEY отвечает за шифрование credentials.

Каталог /home/node/.n8n используется для постоянных данных и в официальной инструкции n8n для Docker.

Шаг 5. Запустите контейнер

Установка и запуск n8n на Windows через Docker Compose

Откройте PowerShell:

cd C:\n8n-local
docker compose up -d

При первом запуске Docker загрузит образ n8n. После завершения проверьте контейнер:

docker compose ps

Если контейнер имеет статус Up или Running, откройте:

http://localhost:5678

n8n предложит создать учётную запись владельца. Используйте уникальный пароль, даже если панель пока работает только локально.

Как проверить, что данные сохраняются

Создайте пустой workflow с любым названием, затем перезапустите контейнер:

docker compose restart n8n

Обновите страницу. Если workflow остался на месте, постоянное хранилище подключено правильно.

Это простая проверка, но она позволяет обнаружить ошибку до того, как в n8n появятся важные сценарии и credentials.

Как установить n8n без Docker

Запустить n8n на Windows можно и через npm:

npm install n8n -g
n8n start

Для разового теста используется:

npx n8n

После запуска панель откроется по адресу:

http://localhost:5678

Этот вариант подходит разработчикам, у которых уже настроен Node.js. Обычному пользователю придётся дополнительно разбираться с совместимыми версиями Node.js, фоновым запуском и расположением пользовательской папки .n8n.

Поддерживаемые версии Node.js меняются, поэтому перед установкой нужно проверить актуальную инструкцию n8n для npm.

Как установить Ollama на Windows

Ollama позволяет запускать языковые модели непосредственно на компьютере. По умолчанию локальный API работает по адресу:

http://localhost:11434

Скачайте Ollama с официального сайта, установите программу и откройте PowerShell.

Загрузите компактную модель:

ollama pull llama3.2

Проверьте запуск:

ollama run llama3.2

Введите любой вопрос. Если появился ответ, Ollama работает. Для выхода нажмите Ctrl+C.

Если вы ещё не выбирали программу и модель, сначала прочитайте инструкцию «Как запустить нейросеть локально на компьютере».

Как подключить Ollama к n8n

Это место чаще всего вызывает проблемы.

Если n8n и Ollama установлены непосредственно в Windows, используется адрес:

http://localhost:11434

Но наш n8n находится внутри Docker. Для контейнера localhost означает сам контейнер, а не основную систему Windows. Поэтому нужен адрес:

http://host.docker.internal:11434

Откройте n8n и выполните следующие действия:

  1. Создайте новый workflow.
  2. Добавьте узел Ollama Chat Model.
  3. Создайте новые credentials.
  4. В поле Base URL укажите:
http://host.docker.internal:11434
  1. Сохраните credentials.
  2. Выберите модель llama3.2.

Использование доступного из контейнера адреса рекомендуется и в официальной справке n8n по подключению Ollama.

Если модели нет в списке, проверьте загруженные модели:

ollama list

Проверяем локальную модель до подключения Telegram

Не стоит подключать сразу всё. Если workflow не заработает, будет сложно понять, где находится проблема: в Docker, Ollama, Telegram или публичном webhook.

Сначала соберите локальную схему:

Manual Trigger → Edit Fields → AI Agent
                                  │
                         Ollama Chat Model
                                  │
                              Calculator

В Edit Fields создайте поле question со значением:

Сколько будет 125 умножить на 18? Ответь одним предложением.

В узле AI Agent укажите запрос:

{{ $json.question }}

Подключите Ollama Chat Model. В качестве первого инструмента можно добавить Calculator.

Запустите workflow вручную. На выходе AI Agent должно появиться поле output с ответом.

Если оно появилось, n8n и Ollama связаны правильно. Теперь можно переходить к Telegram.

Как создать Telegram-бота

Откройте в Telegram официальный аккаунт @BotFather и отправьте:

/newbot

BotFather попросит указать имя и username. Username должен заканчиваться на bot.

После создания вы получите токен. Сохраните его, но не добавляйте в .env, compose-файл или текст workflow. Токен лучше хранить в разделе Credentials внутри n8n.

Telegram рекомендует относиться к токену как к паролю: его владелец может управлять ботом. Порядок создания описан в официальном руководстве Telegram.

Зачем Telegram публичный webhook

Адрес localhost доступен только вашему компьютеру. Сервер Telegram не может отправить на него новое сообщение.

Для Telegram Trigger нужен публичный HTTPS-адрес. Получить его можно несколькими способами:

  • использовать n8n Cloud;
  • разместить n8n на VPS;
  • настроить домен и reverse proxy;
  • создать постоянный Cloudflare Tunnel;
  • временно использовать Cloudflare Quick Tunnel.

Для первого теста достаточно Quick Tunnel. Для круглосуточного бота он не подходит: адрес меняется после перезапуска.

Настройка временного Cloudflare Tunnel

Установите cloudflared по официальной инструкции Cloudflare и выполните:

cloudflared tunnel --url http://localhost:5678

В окне появится адрес:

https://random-name.trycloudflare.com

Не закрывайте PowerShell: вместе с окном остановится и туннель.

Cloudflare относит Quick Tunnels к инструментам для разработки и тестирования. Для постоянного webhook нужен именованный туннель со стабильным адресом.

Передаём публичный адрес в n8n

Добавьте в .env:

WEBHOOK_URL=https://random-name.trycloudflare.com/

Подставьте адрес своего туннеля.

Теперь добавьте в раздел environment файла compose.yaml две строки:

      - WEBHOOK_URL=${WEBHOOK_URL}
      - N8N_PROXY_HOPS=1

Раздел должен выглядеть так:

    environment:
      - TZ=Europe/Moscow
      - GENERIC_TIMEZONE=Europe/Moscow
      - N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
      - N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY}
      - WEBHOOK_URL=${WEBHOOK_URL}
      - N8N_PROXY_HOPS=1

Примените настройки:

cd C:\n8n-local
docker compose up -d

Quick Tunnel временно публикует n8n в интернете. Используйте его только для проверки. Для постоянной работы нужен стабильный HTTPS-адрес и защищённая конфигурация.

Создаём ИИ-агента для Telegram

Финальная схема выглядит так:

Workflow n8n для Telegram-бота с Ollama и AI Agent

1. Добавьте Telegram Trigger

Создайте новый workflow и добавьте Telegram Trigger.

В настройках credentials вставьте токен от BotFather. В качестве события выберите Message.

Для первой проверки отправляйте только текст. У фотографии, голосового сообщения и стикера нет поля message.text.

2. Отфильтруйте сообщения без текста

Добавьте Filter и проверьте поле:

{{ $json.message.text }}

Условие должно пропускать только непустые значения. Так агент не получит пустой запрос при отправке стикера или изображения.

3. Настройте AI Agent

Добавьте AI Agent и укажите пользовательский запрос:

{{ $json.message.text }}

В System Message можно написать:

Ты русскоязычный помощник. Отвечай кратко и по существу.
Если информации недостаточно, скажи об этом прямо.
Не выдумывай факты и не сообщай о действиях, которых не выполнял.

Подключите к агенту Ollama Chat Model с моделью llama3.2.

В качестве безопасного первого инструмента добавьте Calculator. Тогда агент сможет самостоятельно использовать калькулятор, когда это необходимо.

Без инструментов он будет работать как обычный локальный чат-бот. Инструменты превращают его в агента, способного выбирать и выполнять действия.

4. Добавьте отправку ответа

После AI Agent добавьте обычный узел Telegram.

Настройки:

Resource: Message
Operation: Send Message

В поле Chat ID:

{{ $('Telegram Trigger').item.json.message.chat.id }}

В поле Text:

{{ $json.output }}

Используйте те же Telegram credentials.

5. Опубликуйте workflow

Сохраните и опубликуйте сценарий.

Откройте бота в Telegram, нажмите «Запустить» и отправьте:

Сколько будет 125 умножить на 18?

Рабочая последовательность должна выглядеть так:

  1. Telegram Trigger получает сообщение.
  2. Filter подтверждает, что это текст.
  3. AI Agent передаёт запрос Ollama.
  4. При необходимости агент вызывает Calculator.
  5. Telegram отправляет поле output обратно пользователю.

Если бот ответил, первая автоматизация готова: n8n управляет сценарием, Ollama обрабатывает запрос локально, а Telegram служит пользовательским интерфейсом.

Как закрыть бота от посторонних

Бот с ИИ-агентом не стоит оставлять доступным всем пользователям. Иначе любой нашедший его человек сможет нагружать ваш компьютер запросами.

Отправьте боту сообщение и откройте входные данные Telegram Trigger. Найдите:

message.from.id

Добавьте в Filter условие:

{{ $json.message.from.id }}

Значение должно совпадать с вашим Telegram User ID. Сообщения от других пользователей workflow будет останавливать до обращения к Ollama.

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

Где n8n хранит данные

Постоянные данные находятся в Docker volume:

n8n-local_n8n_data

В контейнере он подключён к каталогу:

/home/node/.n8n

Здесь хранятся:

  • база SQLite;
  • workflows;
  • credentials;
  • учётная запись;
  • настройки экземпляра;
  • история выполнений.

Посмотреть тома:

docker volume ls

Проверить нужный том:

docker volume inspect n8n-local_n8n_data

Удаление контейнера не уничтожает volume. Но существует опасное исключение:

docker compose down -v

Параметр -v удаляет подключённое хранилище. Для обычного перезапуска или обновления он не нужен.

Резервное копирование workflows и credentials

Создайте папки:

mkdir C:\n8n-local\backup\workflows
mkdir C:\n8n-local\backup\credentials

Экспортируйте workflows:

docker exec -u node n8n n8n export:workflow --backup --output=/backup/workflows/

Экспортируйте credentials:

docker exec -u node n8n n8n export:credentials --backup --output=/backup/credentials/

Команда --backup создаёт отдельные JSON-файлы.

В отдельном безопасном месте храните:

  • .env;
  • compose.yaml;
  • содержимое папки backup;
  • копию Docker volume, если нужна история выполнений.

Не добавляйте .env и резервные копии credentials в публичный GitHub-репозиторий. Также не используйте --decrypted без необходимости: этот параметр экспортирует секреты в открытом виде.

Как обновить n8n без потери данных

Сначала сделайте резервную копию. Затем выполните:

cd C:\n8n-local
docker compose pull
docker compose down
docker compose up -d

Проверьте результат:

docker compose ps
docker compose logs --tail=100 n8n

Данные сохранятся, потому что новый контейнер подключится к прежнему n8n_data.

Если после обновления открылась пустая установка, не создавайте новую учётную запись сразу. Сначала проверьте, подключён ли правильный Docker volume.

Автоматический запуск вместе с Windows

В настройках Docker Desktop включите запуск программы при входе в Windows.

В compose.yaml уже указан параметр:

restart: unless-stopped

После запуска Docker Engine контейнер n8n поднимется автоматически.

Однако компьютер должен оставаться включённым. В спящем режиме Telegram-бот перестанет принимать сообщения.

Для автоматизации, которая должна работать круглосуточно, лучше использовать мини-ПК, NAS, VPS или n8n Cloud.

n8n не запускается: основные ошибки

ПроблемаПричинаРешение
Не открывается localhost:5678Контейнер остановленПроверить docker compose ps
Docker command not foundDocker Desktop не запущенЗапустить Docker и новое окно PowerShell
Порт 5678 занятПорт использует другая программаЗаменить внешний порт на 5680
Ollama connection refusedИз Docker указан localhostИспользовать host.docker.internal:11434
Модель не отображаетсяМодель не загруженаПроверить ollama list
Telegram Trigger не работаетНет публичного HTTPS-адресаПроверить туннель и WEBHOOK_URL
Бот работал в тесте, но не отвечает после публикацииTelegram получил другой webhookЗакончить тест и заново опубликовать workflow
После обновления пропали workflowsПодключён другой volumeПроверить docker volume ls
Credentials не читаютсяИзменился ключ шифрованияВернуть исходный N8N_ENCRYPTION_KEY
Бот периодически отключаетсяПК переходит в сонИзменить параметры электропитания

Последние сообщения контейнера:

docker compose logs --tail=100 n8n

Перезапуск n8n:

docker compose restart n8n

Проверка безопасности:

docker exec -u node n8n n8n audit

Встроенный аудит ищет незащищённые webhook, опасные узлы и проблемы конфигурации. Его возможности описаны в официальной документации n8n.

Дополнительные меры рассмотрены в статье о защите персональных данных в интернете.

Что можно автоматизировать дальше

Первый workflow намеренно сделан простым. После проверки базовой схемы можно добавить:

  • память последних сообщений;
  • расшифровку голосовых сообщений;
  • поиск по локальным документам;
  • сохранение результатов в таблицу;
  • отправку ежедневных отчётов;
  • обработку файлов;
  • подтверждение действий человеком;
  • разные модели для разных задач.

Локальная модель не требует оплаты за каждый запрос, но её возможности зависят от ресурсов компьютера. Облачные модели обычно мощнее, зато расходы растут вместе с объёмом контекста. Это хорошо видно на примере оптимизации расхода токенов в Claude Code.

Проверка готовой установки

Перед использованием убедитесь, что:

  • http://localhost:5678 открывается;
  • workflow сохраняется после перезапуска контейнера;
  • Ollama отвечает отдельно и через n8n;
  • Telegram Trigger получает сообщения;
  • Filter блокирует посторонние User ID;
  • AI Agent возвращает результат в нужный чат;
  • Docker запускается вместе с Windows;
  • резервные копии появились в папке backup;
  • файл .env сохранён отдельно;
  • порт 5678 не открыт напрямую в интернет.

Если все пункты выполнены, локальный n8n готов к работе.

FAQ

Можно ли установить n8n на Windows без Docker?

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

Работает ли n8n без интернета?

Локальные workflows и Ollama могут работать без интернета. Telegram, внешние API, облачные модели и другие сетевые сервисы без подключения работать не будут.

Почему Telegram-бот не отвечает через локальный n8n?

Чаще всего Telegram не может обратиться к localhost. Проверьте публичный HTTPS-адрес, WEBHOOK_URL, работу туннеля и публикацию workflow. Компьютер также не должен находиться в спящем режиме.

Можно ли держать n8n на домашнем компьютере постоянно?

Можно, если компьютер постоянно включён, Docker запускается вместе с Windows, а интернет работает стабильно. Для круглосуточной автоматизации надёжнее использовать мини-сервер, NAS, VPS или n8n Cloud.

Еще записи из этой же рубрики

Что будем искать? Например,Технология

Минуту внимания
Мы используем cookies для корректной работы сайта и понимания, как им пользуются читатели.