Selfhosted ИИ-агент, или ЕВА дома!

Всем снова, здрасьте!

В прошлой статье я рассказал о возможностях, которые тебе может предоставить ИИ агент.

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

Оглавление:

Ева по быстрому, за деньги.

Самый простой способ завести себе Еву это воспользоваться услугами хостинга Бегет, где уже есть тарифный план с предустановленным n8n за 7 руб в день. Все необходимые инструкции есть у них прямо на сайте.

Если же не хочешь тратить ни копейки денег, то продолжай читать дальше.

Ева дома.

post image

Для начала скачай и установи docker desktop для своей операционной системы.

Когда докер установлен, запусти и найди образ n8n, как показано на картинке.

post image

Далее пиши n8n в строке поиска образов и скачивай нужный образ n8nio/n8n на свой компьютер:

post image

Первоначальная настройка и запуск:

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

/home/node/.n8n
post image

Также заполни переменные, как указано на картинке ниже, список всех необходимых переменных перечислил здесь. Обязательно поменяй YOUR_IP на твой IP адрес или домен, на который получал сертификат. Также, при необходимости, поменяй часовой пояс.

N8N_PROTOCOL=https
N8N_HOST=0.0.0.0
N8N_PORT=443
WEBHOOK_URL=https://YOUR_IP
N8N_RUNNERS_ENABLED=true
N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
GENERIC_TIMEZONE="Europe/Moscow"
TZ="Europe/Moscow"
N8N_SSL_CERT=/home/node/.n8n/certs/n8n_public.pem
N8N_SSL_KEY=/home/node/.n8n/certs/private.key
post image

Далее жми кнопку “Run”, это создаст и запустит твой контейнер. Сейчас он завершится с ошибкой, из-за отсутствия сертификатов безопасности. Поэтому для начала необходимо получить и настроить сертификаты, чтобы всё работало как надо.

Ева в серверной.

post image

Если у тебя есть домашний сервер на убунте или VPS/VDS, то этот раздел для тебя. Если нет, то просто подпишись уже на канал ПошКодим и листай дальше, больше ты в этом параграфе ничего нужного не узнаешь. А все остальные присаживайтесь поудобнее, кладите руки на клавиатуру и погнали!

Если докер до сих пор не установлен, установи его:

sudo apt update
sudo apt install docker

Когда docker установлен, добавь хранилище:

docker volume create n8n_data

На этом установку можно считать завершённой.

Мне одному кажется, что установка в Linux выглядит немного проще, чем в Windows?

Доступ через интернет, защищаем Еву.

Обязательное условие! Для того, чтобы получить доступ к созданию и редактированию потоков для автоматизации через интернет, у тебя должен быть белый IP адрес и открыт доступ к необходимым портам. Можно также воспользоваться DDNS, но если ты знаешь, что это такое, то и остальные объяснения скорее всего не нужны.

Итак, если ты установил n8n на домашний компьютер то, возможно, захочешь получить доступ к управлению рабочими потоками через интернет с других компьютеров. Но есть маленькая проблемка, по умолчанию доступ к вёб интерфейсу происходит через протокол http, то есть по незащищенному соединению. Но ты же не хочешь, чтобы мамкин хацкер из кафешки через вифи украл доступ к твоему серверу? Он ведь так и Еву может себе забрать!!! А оно тебе надо? Поэтому для безопасности необходимо передавать все данные только по шифрованному соединению. А для этого необходимо получить сертификат безопасности, подтверждённый удостоверяющим центром.

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

Получение сертификата

Поэтому переходи на сайт ссл задаром. Проходи простенькую почтовую регистрацию и в разделе “Certificates” жми кнопку “New Certificate”.

post image

Далее указываешь свой IP адрес. Узнать его можно на сайте https://2ip.ru/ Записываешь его в поле “Enter Domain”, и просто нажимаешь далее, до последнего шага. Никакие настройки для бесплатного плана менять не нужно. Обязательно измени 192.168.1.1 на свой реальный белый IP адрес или домен! Это я показал как пример.

post image

На последнем шаге выбирай бесплатный план и жми кнопку следующий шаг:

post image

После этого создателю сертификата необходимо удостовериться что это именно твой домен (ip адрес). Для этого выбирай ручную проверку через загрузку файла на сервер. Скачай аутентификационный файл.

post image

Далее необходимо установить python и настроить проверку подлинности.

Windows

Просто скачай python для Windows и установи его. При установке обязательно включи галочку напротив пункта “Add Python 3.11 to PATH”

post image

После установки открой командную строку, для этого нажми Win+R и в окошке напиши cmd и нажми Enter

post image

В командной строке набери:

mkdir %USERPROFILE%\n8n\.well-known\pki-validation

Скопируй в созданную директорию скачанный аутентификационный файл. И запусти веб сервер для проверки

cd %USERPROFILE%\n8n
python -m http.server 80

Linux

В любом современном дистрибутиве линукс идёт какой-нибудь python, а значит есть возможность создать простейший вёб сервер. Для этого запусти в консоли следующие команды:

mkdir ~/n8n/.well-known/pki-validation/

Скопируй любым доступным способом в эту директорию аутентификационный файл, который скачал. И запусти сервер

cd ~/n8n
sudo python3 -m http.server 80

Продолжаем получать сертификат

Если всё сделал правильно, то смело жми кнопку “Verify Domain”

post image

Если всё прошло успешно, то теперь ты можешь скачать свои сертификаты и установить их.

post image

Теперь можно остановить запущенный вёб сервер, нажав Ctrl+C в консоли где его запустил. Также не забудь удалить директорию .well-known со всем её содержимым:

windows

del %USERPROFILE%\n8n\.well-known\

Linux

rm -rf ~/n8n/.well-known

Установка сертификата

Создай директорию, где будут храниться сертификаты:

Windows

mkdir %USERPROFILE%\n8n\certs

Linux

mkdir ~/n8n/certs

И распакуй в неё скачанный архив с сертификатами. В нём должны лежать файлы: ca_bundle.crt, certificate.crt, private.key

Далее необходимо объединить файлы с сертификатами в один.

Windows

В открытой консоли выполни следующие команды:

cd %USERPROFILE%\n8n\certs
type certificate.crt > n8n_public.pem
type ca_bundle.crt >> n8n_public.pem

Linux

cd ~/n8n/certs
cat certificate.crt > n8n_public.pem
cat ca_bundle.crt >> n8n_public.pem

Супер. Сертификаты готовы к работе. Осталось только настроить Docker.

Настройка Docker

В Linux создай файл ~/n8n/run.sh, выполнив следующий код:

cat <<'EOF' > ~/n8n/run.sh
docker run -it --rm --name n8n -p 443:443 \
 -e N8N_PROTOCOL=https \
 -e N8N_HOST=0.0.0.0 \
 -e N8N_PORT=443 \
 -e WEBHOOK_URL=https://YOUR_IP \
 -e N8N_RUNNERS_ENABLED=true \
 -e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \
 -v /home/techman/n8n/certs:/home/node/certs \
 -e N8N_SSL_CERT=/home/node/certs/n8n_public.pem \
 -e N8N_SSL_KEY=/home/node/certs/n8n_private.pem \
 -v NODE_EXTRA_CA_CERTS=/home/node/certs/ca_bundle.pem \
 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n
EOF

Только измени YOUR_IP на свой IP адрес или домен, на который получал сертификат, а также поменяй “Europe/Moscow” на свой часовой пояс, при необходимости. И можно запускать.

Если запускаешь на удалённом сервере, то лучше делать это через screen

screen
bash ~/n8n/run.sh

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

В Windows всё настроили в предыдущих шагах, поэтому достаточно запустить созданный контейнер:

post image

После того, как контейнер запустился, можешь зайти и настроить аккаунт владельца. На своём домашнем компьютере используй адрес https://localhost, если заходишь удалённо, то используй адрес на который получал сертификат.

При первом входе локально вылезет предупреждение о безопасности из-за того, что сертификат был выдан на внешний IP адрес, просто прими это как данность и продолжай.

post image

Здесь как обычно укажи свои данные для входа в систему. Не смотря на то, что сервер работает на твоём компьютере, ты сможешь получить доступ только после авторизации. Поэтому проходи несложную авторизацию и получай доступ ко всем возможностям.

post image

На этом статья по первоначальной настройке n8n на своём домашнем компьютере или сервере завершена.

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