Маршрут «свой сервер»: ставим n8n на VPS за час

Этот урок для тех, кто выбрал маршрут «свой сервер». Если вы выбрали облако, вам нужен урок 2.2a. Здесь мы поставим n8n на арендованный сервер в России. Командную строку вы увидите, но все команды даны готовыми: их копируют и вставляют, писать самому ничего не нужно. Все шаги пройдены руками на чистом сервере Timeweb Cloud с Ubuntu 24.04, под ними показано, что вы должны увидеть. Подключение к удалённому серверу по ssh (шаги 1 и 5) выполняется стандартными командами Windows и macOS, а что проверено в шаге 6, сказано в нём отдельно.

Чему научитесь в этом уроке:
• подключиться к серверу и выполнить готовые команды;
• поставить Docker и n8n и проверить, что всё работает;
• включить автозапуск, чтобы ассистент не замолчал после перезагрузки сервера;
• открыть n8n безопасно, не выставляя его в интернет без защиты.

Что понадобится

  • Сервер с Ubuntu 24.04, 2 ядра и 2 ГБ памяти — например, Cloud-40 у Timeweb Cloud (около 1 000 ₽ в месяц, 900 ₽ при оплате за год; деньги списываются по часам). При заказе выберите образ «Ubuntu 24.04». После создания хостинг покажет IP-адрес сервера (четыре числа через точку) и пароль пользователя root — сохраните их.
  • Компьютер с Windows 10/11 или macOS. Программа для подключения к серверу (ssh) в них уже есть, ставить ничего не нужно.
  • Около часа. Из них 8–10 минут — ожидание, пока ставятся программы.
Почему 2 ГБ хватает. При подготовке урока мы замерили: после установки n8n и его служебные части вместе занимают около 500 МБ памяти без нагрузки. Остальное остаётся запасом на работу сценариев.

Шаг 1. Подключаемся к серверу

Откройте программу «Терминал» (в Windows 11: правый щелчок по кнопке «Пуск» → «Терминал», в Windows 10 там же «Windows PowerShell»; в macOS: Программы → Утилиты → Терминал). Вставьте команду, заменив цифры на IP-адрес своего сервера, и нажмите Enter:

ssh root@203.0.113.10

При первом подключении появится вопрос «Are you sure you want to continue connecting?». Наберите yes и нажмите Enter. Затем введите пароль из письма хостинга. Символы пароля при вводе не отображаются, так и должно быть. Признак успеха: строка вида root@ваш-сервер:~#. Теперь всё, что вы вводите, выполняется на сервере.

Шаг 2. Ставим Docker

Вспомните из урока 0.3: Docker привозит программу на сервер готовым модулем. Ставим его официальной командой Docker (инструкция Docker). Это займёт 2–3 минуты:

curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh

Когда побегут строки и всё остановится, проверьте результат:

docker --version
Docker version 29.8.2, build 7fc2dff

Цифры версии у вас могут быть новее, это нормально. Главное, чтобы строка начиналась с «Docker version».

Шаг 3. Ставим n8n одной командой

С осени 2026 года n8n официально ставится одной командой (документация n8n). Она сама создаст папку n8n, запишет настройки и скачает программу. Ждать около 5 минут:

curl -fsSL https://get.n8n.io | sh
✔ Started n8n 2.42.3 and sandbox services
Waiting for n8n to become ready (first boot pulls images and runs migrations) ... ✓

n8n is running at: http://localhost:5678
Data stored in:    ./n8n (Docker volume: n8n-data)
Config files:      ./n8n/compose.yml, ./n8n/.env

Фраза «n8n is running» означает успех. Скрипт ещё напишет, что такая установка подходит «чтобы попробовать». Для одного руководителя её достаточно, а то, чего в ней не хватает для постоянной работы, мы добавим в шагах 4 и 6.

Шаг 3а. Закрываем n8n от интернета

Установщик открывает n8n в интернет по адресу http://IP-сервера:5678, без шифрования. Пока вы не создали учётную запись владельца (шаг 5), любой, кто первым откроет этот адрес, станет хозяином вашего n8n. Мы проверили это на подготовке урока: страница создания владельца открывалась снаружи. Закрываем одной командой. Она меняет в настройках «слушать всех» на «слушать только сам сервер» и перезапускает n8n:

cd ~/n8n && sed -i "s/- '5678:5678'/- '127.0.0.1:5678:5678'/" compose.yml && docker compose up -d

Проверка: откройте в браузере http://IP-сервера:5678. Страница не должна открываться. Дальше в n8n вы входите только через защищённый коридор (шаг 5) или по своему адресу с HTTPS (шаг 6).

Шаг 4. Автозапуск после перезагрузки

В настройках, которые создаёт установка, нет автозапуска. Хостинг иногда перезагружает серверы для обслуживания, и после этого n8n сам не поднимется: ассистент молча замолчит, и вы узнаете об этом, только когда не придёт утренний брифинг. Исправляется одной командой. Она включает автозапуск у всех работающих частей n8n:

cd ~/n8n && docker update --restart unless-stopped $(docker compose ps -q)

Проверено: после полной перезагрузки сервера с этой настройкой n8n поднялся сам меньше чем за минуту. Если когда-нибудь обновите n8n командой из шага 3 с ключом --upgrade, повторите и эту команду.

Шаг 5. Открываем n8n безопасно

Сейчас n8n слушает адрес http://IP-сервера:5678. Открывать его так нельзя: соединение не зашифровано, и пароль, который вы сейчас придумаете, пойдёт по интернету открытым текстом. Поэтому на время настройки откроем n8n через защищённый «коридор» SSH: ваш браузер будет думать, что n8n стоит у вас на компьютере. Закройте окно терминала с сервером и откройте новое:

ssh -L 5678:localhost:5678 root@203.0.113.10

Введите пароль и не закрывайте это окно. Теперь откройте в браузере http://localhost:5678. Первую минуту после установки n8n может показывать «n8n is starting up. Please wait». Подождите и обновите страницу.

Форма n8n «Set up owner account»: поля Email, First Name, Last Name, Password с подсказкой «8+ characters, at least 1 number and 1 capital letter», флажок рассылки и кнопка Next.

Заполните форму «Set up owner account»: почта, имя, фамилия, пароль не короче 8 символов, хотя бы одна цифра и одна заглавная буква. Это учётная запись владельца вашего n8n, пароль сохраните в менеджере паролей. Затем n8n покажет анкету «Customize n8n to you»: все поля необязательные, жмите Get started. Окно с предложением подключить помощника n8n можно закрыть кнопкой Skip.

Главная страница n8n после первого входа: заголовок «Let's build your first automation» и две карточки — Build an agent и Build a workflow; слева узкое меню со значками.

Шаг 6. Свой адрес с HTTPS (нужен для Telegram)

Сначала владелец, потом адрес. Делайте шаг 6 только после того, как создали учётную запись владельца в шаге 5. Как только сервер получает сертификат, адрес появляется в публичных журналах, и на него приходят сканирующие программы. На подготовке урока первые пришли через секунду.

Чтобы Telegram мог передавать ассистенту сообщения (урок 2.4), у n8n должен быть постоянный адрес в интернете с защищённым соединением, вида https://n8n.ваш-домен.ru. Нужен домен (у вашего сайта или купленный отдельно за несколько сотен рублей в год) и запись в его настройках, которая указывает на IP сервера.

  1. У регистратора домена добавьте запись типа A: имя n8n, значение — IP сервера. Запись начинает работать через 15 минут — несколько часов.
  2. На сервере поставьте Caddy — программу, которая сама получает сертификат для HTTPS и пропускает запросы к n8n: apt install -y caddy.
  3. Откройте её настройки командой nano /etc/caddy/Caddyfile, удалите всё и вставьте три строки ниже, подставив свой домен. Сохраните: Ctrl+O, Enter, Ctrl+X.
  4. Примените: systemctl reload caddy.
  5. Скажите n8n его внешний адрес: добавьте в файл ~/n8n/.env две строки N8N_WEBHOOK_URL=https://n8n.ваш-домен.ru/ и N8N_PROXY_HOPS=1, затем перезапустите: docker compose -f ~/n8n/compose.yml up -d.
n8n.ваш-домен.ru {
    reverse_proxy 127.0.0.1:5678
}
Что проверено. Шаг 6 пройден руками на сервере Timeweb Cloud: Caddy сам получил сертификат за несколько секунд, n8n открылся по адресу с HTTPS, Telegram доставил сообщение боту. Пишите в настройках именно 127.0.0.1:5678, а не localhost:5678: после шага 3а со словом localhost Caddy не находит n8n и показывает ошибку 502. Сервер для проверки стоял в Амстердаме. Если на российском сервере сертификат не выдаётся, напишите в чат курса со скриншотом.

Вариант: n8n у себя на компьютере

Есть способ попробовать n8n вообще без сервера: поставить его на свой компьютер (в Windows через WSL, встроенную в Windows подсистему Linux) и выпустить в интернет через бесплатный туннель Cloudflare. Туннель похож на переадресацию звонков: Telegram звонит на временный адрес Cloudflare, а тот переводит звонок на ваш компьютер.

  • Из России туннель обычно не работает. Мы проверили 06.10.2026: с сервера в Амстердаме туннель поднялся за секунду, а с компьютера в России соединение с Cloudflare обрывалось и по одному способу, и по другому.
  • Адрес меняется при каждом перезапуске туннеля или компьютера. После этого Telegram перестаёт доставлять сообщения, пока вы заново не подключите бота в n8n.
  • Компьютер должен быть включён. Ноутбук закрыли в 18:00, значит, брифинга в 8:00 не будет.

Поэтому это вариант для пробы, а не для работающего ассистента. Проверить, пускает ли ваша сеть к Cloudflare, можно за минуту. После установки n8n на компьютере выполните:

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

Если через несколько секунд появилась строка «Registered tunnel connection», а адрес вида https://….trycloudflare.com открывает n8n, туннель работает. Строки «failed to dial» или «TLS handshake with edge error» означают, что сеть Cloudflare не пускает. Тогда выбирайте облако или свой сервер. Установка самой программы cloudflared описана в документации Cloudflare.

Если не получилось

  • «Connection timed out» при ssh. Проверьте IP в команде. Сервер мог ещё не запуститься — подождите 2–3 минуты после создания.
  • «Permission denied» при ssh. Неверный пароль. Скопируйте его из письма хостинга заново или сбросьте в панели хостинга.
  • «n8n is starting up. Please wait» не проходит дольше 3 минут. На сервере выполните docker logs --tail 20 n8n-n8n-1: строки «Starting migration» означают, что n8n ещё обновляет базу, ждите строку «Editor is now accessible».
  • Страница localhost:5678 не открывается. Окно с командой ssh -L … закрыто или в нём оборвалось соединение. Запустите команду из шага 5 заново.
  • После перезагрузки сервера n8n не отвечает. Подождите 2 минуты. Не помогло — выполните docker compose -f ~/n8n/compose.yml up -d и повторите команду из шага 4.
  • Советы в интернете поставить «туннель Cloudflare». Из России такие туннели при подготовке урока не заработали: соединение с Cloudflare обрывалось. Используйте свой домен из шага 6.

Контрольный вопрос. Руководитель поставил n8n на свой сервер и открыл его по адресу http://IP-сервера:5678, чтобы создать учётную запись владельца. Чем это опасно?

АНичем, это обычный способ входа
БПароль владельца уйдёт по интернету незашифрованным
Вn8n удалит все сценарии
ГСервер перестанет перезагружаться

Подсказка: Посмотрите на начало адреса: http, а не https.

На курсе задания проверяются автоматически. Подобрать курс

Контрольный вопрос. Ночью хостинг перезагрузил сервер, утренний брифинг не пришёл. Какая настройка предотвращает такую ситуацию?

АСвой домен с HTTPS
БАвтозапуск контейнеров командой docker update —restart unless-stopped
ВУчётная запись владельца n8n
ГУстановка Caddy

Подсказка: Вспомните, чего не хватает настройкам, которые создаёт установка одной командой.

На курсе задания проверяются автоматически. Подобрать курс

Задание. МИССИЯ «Мой n8n на сервере». Пройдите шаги 1–5: подключитесь к серверу, поставьте Docker и n8n, включите автозапуск, откройте n8n через ssh -L и создайте учётную запись владельца. Приложите три скриншота: (1) вывод команды docker —version; (2) последние строки установки n8n со словами «n8n is running»; (3) главную страницу своего n8n. Если сделали шаг 6, приложите и скриншот n8n по адресу https://n8n.ваш-домен.ru. Принято, если: на скриншотах видны версия Docker, успешная установка n8n и главная страница n8n; адрес в браузере — localhost:5678 (через ssh -L) или свой домен с https; в описании сказано, что команда автозапуска (шаг 4) выполнена.

Подсказка: Команды копируйте целиком, со всеми символами. Если шаг не получился, сверьтесь с блоком «Если не получилось» и приложите скриншот ошибки.

✅ Готово, если: программа запускается без ошибок и выводит то, что просят в задании.

На курсе задания проверяются автоматически. Подобрать курс

Что дальше

n8n работает. В уроке 2.3 подключим к нему модель через учебный ключ.

Итог:
• n8n стоит на вашем сервере и поднимается сам после перезагрузки;
• вы входите в него безопасно: через ssh -L или по своему домену с HTTPS;
• вы знаете, что делать, если сервер или страница не отвечают.

← Назад  ·  ↑ В начало урока  ·  ⌂ В начало курса  ·  Вперёд →

Школа Виктора Комлева