Запустить n8n на компьютере несложно. Сложнее настроить всё так, чтобы после перезагрузки не исчезли сценарии, Ollama была доступна из Docker, а Telegram действительно передавал сообщения локальному ИИ-агенту.
В этой инструкции мы пройдём весь путь: установим n8n локально на Windows через Docker и соберём работающий workflow:
Telegram получает сообщение → n8n передаёт текст локальной модели Ollama → бот отправляет ответ.
Это не демонстрация с пустой панелью и не набор разрозненных команд. В конце у вас будет автоматизация, которую можно развивать: добавить память, работу с документами, таблицами, календарём или другими сервисами.
Быстрый план установки
Если детали пока не нужны, весь процесс выглядит так:
- Установить Docker Desktop.
- Создать
compose.yamlс постоянным хранилищем. - Запустить n8n командой
docker compose up -d. - Установить Ollama и загрузить языковую модель.
- Подключить Ollama к n8n.
- Создать Telegram-бота.
- Настроить публичный HTTPS webhook.
- Собрать workflow из Telegram Trigger, AI Agent и Telegram.
- Опубликовать сценарий и отправить боту тестовое сообщение.
Для постоянного использования на домашнем компьютере лучше устанавливать n8n через Docker. Вариант через npm проще для быстрого знакомства, но сложнее в обновлении, переносе и автоматическом запуске.
Сразу обозначим границу приватности. Ollama обрабатывает запрос локально, но сообщения Telegram всё равно проходят через серверы Telegram. Для полностью локального сценария вместо Telegram потребуется локальная форма, Chat Trigger или Webhook, доступный только внутри домашней сети.
n8n — это платформа автоматизации, в которой сценарии собираются из готовых узлов. Такие сценарии называются workflows.
Один узел получает сообщение, другой обращается к нейросети, третий проверяет условие, четвёртый отправляет результат. Большинство процессов можно собрать визуально, хотя для сложных интеграций иногда нужны выражения, API и небольшой объём кода.
Через n8n можно:
- отвечать на сообщения при помощи ИИ;
- переносить заявки из форм в CRM;
- обрабатывать документы;
- собирать информацию из API;
- отправлять уведомления;
- создавать черновики публикаций;
- связывать сервисы, между которыми нет готовой интеграции.

Локальная установка означает, что панель 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. Запустите контейнер

Откройте 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 и выполните следующие действия:
- Создайте новый workflow.
- Добавьте узел
Ollama Chat Model. - Создайте новые credentials.
- В поле Base URL укажите:
http://host.docker.internal:11434
- Сохраните credentials.
- Выберите модель
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
Финальная схема выглядит так:

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?
Рабочая последовательность должна выглядеть так:
- Telegram Trigger получает сообщение.
- Filter подтверждает, что это текст.
- AI Agent передаёт запрос Ollama.
- При необходимости агент вызывает Calculator.
- 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 found | Docker 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 можно запустить через npm командами npm install n8n -g и n8n start. Для постоянной домашней установки Docker удобнее обновлять, переносить и восстанавливать.
Локальные workflows и Ollama могут работать без интернета. Telegram, внешние API, облачные модели и другие сетевые сервисы без подключения работать не будут.
Чаще всего Telegram не может обратиться к localhost. Проверьте публичный HTTPS-адрес, WEBHOOK_URL, работу туннеля и публикацию workflow. Компьютер также не должен находиться в спящем режиме.
Можно, если компьютер постоянно включён, Docker запускается вместе с Windows, а интернет работает стабильно. Для круглосуточной автоматизации надёжнее использовать мини-сервер, NAS, VPS или n8n Cloud.







