01.05 Позитивные технологии
01.05 Позитивные технологии
01.05 Позитивные технологии

Как я хотел создать ИИ-ассистента, а в итоге развернул свой первый сервер с n8n, Docker и Nginx

История о том, как попытка автоматизировать рутину привела к открытию и прокачке моих технических навыков в DevOps.

375 открытий3К показов
Как я хотел создать ИИ-ассистента, а в итоге развернул свой первый сервер с n8n, Docker и Nginx

Сначала я думал, что справлюсь за пару часов. В итоге — несколько суток, десятки ошибок, и первый боевой сервер с доменом, Docker и полноценным развертыванием n8n. История о том, как попытка автоматизировать рутину привела к открытию и прокачке моих технических навыков.

Я создал свой проект с полноценной документацией с сылкой на Github по развертыванию n8n на собственном сервере.

Завязка

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

В сети крутился хайп вокруг n8n — open-source, который можно развернуть на любом сервере, и с полной свободой действий. Конечно, до меня не сразу дошло, на официальном сайте очень дорогие тарифы. Поэтому я начал изучать туториалы на Ютубе. В этот момент я даже не подозревал, что эта идея затянет меня на неделю, подарит десятки ошибок и первый полноценный сервер.

Как я хотел создать ИИ-ассистента, а в итоге развернул свой первый сервер с n8n, Docker и Nginx 1

Развитие: от ноды до ноды

Railway: первая проба пера

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

Подходящей оказалась платформа Railway. Бесплатный пробный период, $5 бонуса за привязку GitHub — всё выглядело перспективно. Я:

  • подключил GitHub;
  • получил API-ключ;
  • запустил n8n;
  • настроил Telegram-бота.

И всё шло нормально, пока не начались проблемы с Telegram Trigger — он просто не отвечал. Ошибок в логах почти не было, но и связи — тоже. Я тратил часы, пробовал разные переменные, гуглил, спрашивал у нейросетей — без толку. Тогда в рекламе мне попался Yandex Cloud с двухмесячным бесплатным периодом. Я решил попробовать развернуть n8n на нем.

Как я хотел создать ИИ-ассистента, а в итоге развернул свой первый сервер с n8n, Docker и Nginx 2

Виртуалка, SSH и первый затык

Я развернул ВМ на Ubuntu 20.04 LTS, выбрав её за стабильность и поддержку. Конфигурация:

  • 2 vCPU
  • 50 ГБ SSD
  • Снятие с бонуса: 2683.50 руб/мес

Сгенерировал SSH-ключ через Git Bash. Первый облом: ключ исчез. После нескольких безуспешных попыток изменить его, понял — проще пересоздать ВМ. У Yandex Cloud есть ограничения:

			ssh-keys
		

нельзя обновить на лету.

Подключение выглядело так:

			ssh -i /c/Users/username/.ssh/n8n_key ubuntu@
		

Когда получилось зайти — был настоящий кайф. Я обновил систему, установил Docker, понял, что GUI у сервера не будет — только терминал. Ну что ж, поехали.

Docker, docker-compose, и n8n-raw.env

Следующим шагом стал

			docker-compose.yml
		

и файл

			n8n-raw.env
		

В нём я прописал:

			N8N_BASIC_AUTH_ACTIVE=true
N8N_BASIC_AUTH_USER=admin
N8N_BASIC_AUTH_PASSWORD=securepass123
N8N_HOST=mydomain.ru
		

Это позволило не держать всё в голове и запускать конфигурации быстрее. Первые ошибки появились почти сразу — что-то не так с путями, потом — с переменными. Без ChatGPT и stackoverflow не обошлось.

Домены и HTTPS

Купил домен

			.ru
		

настроил A-записи, скачал сертификаты. Nginx — отдельная песня. Нужно было:

  1. Объединить три сертификата в один;
  2. Подключить его через конфиг;
  3. Настроить редирект на HTTPS.

Вот пример из моего nginx.conf:

			server {
    listen 443 ssl;
    server_name mydomain.ru;
    ssl_certificate /etc/nginx/certs/fullchain.pem;
    ssl_certificate_key /etc/nginx/certs/privkey.pem;
    location / {
        proxy_pass http://localhost:5678;
        proxy_set_header Host $host;
    }
}
		
Как я хотел создать ИИ-ассистента, а в итоге развернул свой первый сервер с n8n, Docker и Nginx 3

Telegram и «почему ты не работаешь?!»

Подключил Telegram Trigger — ноль. Ни один запрос не проходил. Ошибки:

  • Lost connection to the server
  • Webhook error: unexpected status code 403
  • Логи молчали или выдавали бессмысленное.

Проблема оказалась в том, что webhooks шли через HTTP, а всё у меня уже работало через HTTPS. Куки не обрабатывались, туннель API оказался лишним, docker не доверял IP клиента. Пришлось в docker-compose.yml прописывать:

			networks:
      default:
        ipv4_address: 172.20.0.2
		

Потом был конфликт сертификатов, SSE и WebSocket. Я потратил день на всё это — и наконец бот ответил.

Разгрузка: спасение в Obsidian и GitHub

Всю документацию, команды, даже ошибки я хранил в Obsidian. Там же создавал шаблоны, чтобы не печатать одни и те же команды. Это было моим вторым спасением после ChatGPT.

Когда всё начало получаться — создал репозиторий. Сейчас там:

  • README.md с пошаговыми действиями;
  • n8n-raw.env для автоматизации запуска;
  • Docker-конфиги.

Проект пока не идеален, но рабочий и повторяемый.

Финал: в этой истории я вырос

Когда Telegram наконец сработал — было 3 часа ночи. Я сидел в темноте, всматривался в терминал и не верил. Всё. Бот работает. HTTPS есть. Docker жив. Я сам развернул свой первый полноценный сервер. Сам. С нуля. С ошибками. Без опыта.

Теперь я могу:

  • Развернуть ВМ и подключиться через SSH;
  • Настроить Docker и Nginx;
  • Создать и связать домен;
  • Конфигурировать n8n под прод;
  • Документировать всё на GitHub.

Я только начал, но теперь точно знаю — могу не просто тестировать, а создавать решения с нуля.

Следите за новыми постами
Следите за новыми постами по любимым темам
375 открытий3К показов