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

Я установил его на самый простой сервер VPS / 1 vCPU / 1 GB RAM / 15 GB SSD, чего вполне хватит для моих задач, к тому же N8N не очень требователен к ресурсам. Вы можете запустить его на собственном компьютере с помощью Docker HUB (самый простой способ), но я сегодня расскажу как его запустить на сервере и прикрутить свой домен.
Запуск n8n и Nginx Proxy Manager с помощью Docker Compose
Это руководство поможет вам быстро развернуть n8n и Nginx Proxy Manager (NPM) на чистом сервере с Ubuntu, используя Docker Compose. Это самый простой и стабильный метод, который идеально подходит для начинающих.
Шаг 1: Подготовка
Прежде чем мы начнём, убедитесь, что у вас есть:
Сервер с Ubuntu 20.04 или новее. Подойдёт самый простой VPS/VDS.
Доменное имя. Например, example.com
.
Одна DNS A-запись для n8n, указывающая на IP-адрес вашего сервера: n8n.example.com
→ IP_ВАШЕГО_СЕРВЕРА
⚠️ Важно: Убедитесь, что DNS-записи обновились, прежде чем настраивать SSL-сертификаты. На это может уйти от нескольких минут до нескольких часов.
Шаг 2: Установка Docker и Docker Compose
Подключитесь к вашему серверу по SSH и выполните следующие команды, чтобы установить Docker.
#!/bin/bash
set -e # остановка при ошибке
# Обновление системы и установка базовых пакетов
sudo apt update && sudo apt upgrade -y
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common gnupg lsb-release
# Добавление GPG-ключа Docker
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
# Добавление репозитория Docker
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Установка Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io
sudo usermod -aG docker $USER # добавление пользователя в группу Docker
# Установка последней версии Docker Compose
LATEST_COMPOSE=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep -Po '"tag_name": "\K.*?(?=")')
sudo curl -L "https://github.com/docker/compose/releases/download/$LATEST_COMPOSE/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# Установка sqlite3
sudo apt install -y sqlite3
# Проверка версий
docker --version
docker-compose --version
sqlite3 --version
Можете запустить скриптом или команды по очереди
Шаг 3: Создание файла Docker Compose
Теперь создадим специальный файл, который опишет всю нашу систему.
Создайте папку для проекта и перейдите в неё:
mkdir my-n8n-stack
cd my-n8n-stack #переходим в в папку
Создайте файл docker-compose.yml
:
nano docker-compose.yml
Скопируйте и вставьте в этот файл следующее содержимое. Обязательно замените Europe/Moscow
на ваш часовой пояс.
version: '3.8'
services:
# --- Nginx Proxy Manager ---
# Веб-интерфейс для управления прокси и SSL
nginx-proxy-manager:
image: 'jc21/nginx-proxy-manager:latest'
container_name: nginx-proxy-manager
restart: unless-stopped
ports:
# Публичные порты для веб-трафика
- '80:80'
- '443:443'
# Порт для доступа к админ-панели
- '81:81'
environment:
# Указываем, где находится база данных
DB_MYSQL_HOST: "npm-db"
DB_MYSQL_PORT: 3306
DB_MYSQL_USER: "npm"
DB_MYSQL_PASSWORD: "npm_root_password_change_me" # <-- ЗАМЕНИТЕ НА СВОЙ ПАРОЛЬ
DB_MYSQL_NAME: "npm"
# Отключаем показ ошибок для безопасности
DISABLE_IPV6: 'true'
volumes:
- npm-data:/data
- npm-letsencrypt:/etc/letsencrypt
depends_on:
- npm-db
networks:
- proxy-network
# --- База данных для Nginx Proxy Manager ---
npm-db:
image: 'jc21/mariadb-aria:latest'
container_name: npm-db
restart: unless-stopped
environment:
MYSQL_ROOT_PASSWORD: "npm_root_password_change_me" # <-- ЗАМЕНИТЕ НА СВОЙ ПАРОЛЬ
MYSQL_DATABASE: "npm"
MYSQL_USER: "npm"
MYSQL_PASSWORD: "npm_root_password_change_me" # <-- ИСПОЛЬЗУЙТЕ ТОТ ЖЕ ПАРОЛЬ, ЧТО И ВЫШЕ
volumes:
- npm-db-data:/var/lib/mysql
networks:
- proxy-network
# --- n8n ---
# Сервис автоматизации
n8n:
image: n8nio/n8n
container_name: n8n
restart: unless-stopped
ports:
- '127.0.0.1:5678:5678' # Порт доступен только внутри сервера
environment:
- N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}
- N8N_PORT=5678
- N8N_PROTOCOL=https
- NODE_ENV=production
- WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/
- TZ=Europe/Moscow # <-- ЗАМЕНИТЕ НА ВАШ ЧАСОВОЙ ПОЯС
- EXECUTIONS_DATA_PRUNE=true
- EXECUTIONS_DATA_MAX_AGE=120
# --- Настройки для авто-очистки данных, чтобы не переполнялся диск ---
- EXECUTIONS_DATA_PRUNE=true
- EXECUTIONS_DATA_MAX_AGE=720 # Хранить данные за последние 30 дней (720 часов)
volumes:
- n8n-data:/home/node/.n8n
networks:
- proxy-network
# --- Сети и тома ---
# Определяем общую сеть для контейнеров
networks:
proxy-network:
driver: bridge
# Определяем тома для сохранения данных
volumes:
npm-data:
npm-letsencrypt:
npm-db-data:
n8n-data:
Сохраните файл и закройте редактор (Ctrl+X
, затем Y
и Enter
).
Шаг 4: Запуск
Теперь, когда всё готово, запустим наши сервисы.
Создайте файл .env
для переменных n8n:
nano .env
Добавьте в него следующие строки, заменив значения на свои:# Замените на ваш домен и субдомен для n8n DOMAIN_NAME=example.com SUBDOMAIN=n8n
Сохраните и закройте файл.
Запустите все контейнеры в фоновом режиме:
docker-compose up -d
Команда скачает образы и запустит контейнеры. Это может занять несколько минут.
Шаг 5: Настройка Nginx Proxy Manager
Откройте в браузере админ-панель NPM, используя IP-адрес вашего сервера: http://IP_ВАШЕГО_СЕРВЕРА:81
.
Войдите с данными по умолчанию:
Email: admin@example.com
Password: changeme
Система сразу попросит вас сменить email и пароль. Сделайте это.
Шаг 6: Настройка прокси для n8n
Теперь «спрячем» n8n за прокси и подключим SSL.
В интерфейсе NPM перейдите в Hosts -> Proxy Hosts.
Нажмите синюю кнопку Add Proxy Host.
Заполните вкладку Details:
Domain Names: n8n.example.com
(ваш домен для n8n)
Scheme: http
Forward Hostname / IP: n8n
(имя сервиса из docker-compose.yml
)
Forward Port: 5678
Включите опции Cache Assets, Block Common Exploits и Websockets Support.
Перейдите на вкладку SSL:
В выпадающем списке SSL Certificate выберите Request a new SSL Certificate.
Включите опции Force SSL и HTTP/2 Support.
Согласитесь с условиями использования Let’s Encrypt.
Нажмите Save.
NPM автоматически получит SSL-сертификат и применит настройки. Через минуту-две вы сможете безопасно открыть ваш n8n.
Шаг 7: Готово!
Откройте в браузере https://n8n.example.com
. Вы увидите интерфейс n8n, работающий через защищённое соединение!
Теперь у вас есть полностью рабочая, безопасная и легко управляемая система для автоматизации.
Настроим мониторинг доступности сайтов в Telegram
Для самого простого и надежного способа настройки мониторинга сайтов через n8n с оповещением в Telegram вам понадобится:
Таблица со списком сайтов в Google таблице через Google Sheets OAuth2 API (по ссылке есть инструкция и видео, ознакомьтесь, там есть нюанс подключения).
Аккаунт Telegram: Для получения уведомлений.
Бот Telegram: Созданный вами бот для отправки сообщений.

Шаг 1: Создание Telegram-бота
В Telegram найдите @BotFather и напишите ему /newbot
.
Следуйте инструкциям, чтобы выбрать имя и юзернейм для вашего бота.
После создания, BotFather выдаст вам токен (API-key). Скопируйте его, он понадобится для подключения n8n.
Напишите вашему новому боту любое сообщение, чтобы он мог начать работу. Это необходимо, чтобы n8n мог отправить ему первое сообщение.
Шаг 2: Настройка n8n
Создание рабочего процесса (Workflow)
В n8n создайте новый Workflow.
Добавьте узел Cron (Scheduled Trigger). Это будет запускать проверку по расписанию.
В настройках узла Cron выберите интервал проверки, например, каждые 5 минут или 1 час.
Подключаем таблицу (Google sheets)
Нужно создать разрешение (credantial) для того чтобы N8N мог подключаться к инструментам Google из инструкции выше. В таблице пишем список файлов, у меня он выглядит так. Подключаем к google таблице через ID или через ссылку, указываем лист на котором находится список (его можно изменять или расширять).

Split out (проверяем все url и списка)
Просто в поле вставляем переменную [‘Website URL’]
Проверка статуса сайта
После узла Cron добавьте узел HTTP Request.
В поле URL вставьте адрес сайта, который хотите мониторить.
В поле Request Method выберите GET.
Чтобы проверить, что сайт доступен, убедитесь, что в настройках узла HTTP Request включена опция Return Full Response.

Обработка ответа
Добавьте узел IF (Logic). Он будет проверять, успешен ли запрос.
В First Value вставьте выражение, которое проверяет код ответа. Например, {{ $json.statusCode }}
.
В Operation выберите Equals.
В Second Value введите 200
. Это стандартный код успешного ответа сервера.
Отправка уведомления в Telegram
Ветка «Если сайт недоступен» (ветка false
в узле IF)
В поле Text напишите сообщение, которое должно приходить при сбое. Например:
🚨 *Alert: Сайт {{ $('Website URLs').item.json['Website URL'] }} недоступен*
🖥 Код ответа: {{ $json.error.status }}
⏰ Время: {{$now.format("DD HH:mm")}}
Подключите к ветке false
узла IF новый узел Telegram.
Если вы используете этот узел впервые, нажмите Create New Credential. Вставьте токен, который вы получили от BotFather на первом шаге.
Чтобы получить Chat ID, используйте Telegram-бота [@RawDataBot]. Напишите ему любое сообщение, и он выдаст ваш Chat ID. Скопируйте его и вставьте в настройках узла Telegram.

Дополнение
В отправке Telegram появляется надпись «This message was sent automatically with n8n» внизу каждого сообщения
Эта фраза появляется потому, что по умолчанию Telegram node в n8n добавляет подпись.
Как отключить
Открой свой Telegram → Send Message Node.
Найди поле «Append n8n Attribution» (или «Disable Notification» в некоторых версиях).
Сними галочку ✅ → и подпись исчезнет.
Заключение
Теперь есть независимый инструмент, который опрашивает сайты с внешней стороны об их доступности и присылает сообщение в ваш чат или группу Telegram. Гибко настраиваемая и расширяемая система, можно добавить сообщения на почту или другой канал.
N8N невероятный сервис, который будет полезен во многих сферах, рекомендую!
Если вам нужна помощь или вы хотите настроить различные автоматизации, свяжитесь со мной!