Skip to content

Repository files navigation

n8n Updater

Telegram-бот для автоматического мониторинга и обновления n8n инстансов на ваших серверах.

Никаких конфигов! Просто запусти бота и добавляй серверы прямо в Telegram.

Возможности

  • Zero-config: Всё настраивается через Telegram бота
  • Мониторинг версий: Автоматическая проверка новых версий n8n
  • Уведомления: Telegram-уведомления о доступных обновлениях
  • Планирование: Обновление сейчас или по расписанию
  • Мультисервер: Управление несколькими серверами
  • Гибкая авторизация: SSH по паролю или ключу

Быстрый старт

1. Создай Telegram бота

  1. Открой @BotFather в Telegram
  2. Отправь /newbot и следуй инструкциям
  3. Скопируй полученный токен

2. Запусти бота

Вариант A: Docker (рекомендуется)

# Клонируй репозиторий
git clone https://github.com/YOUR_USERNAME/n8n-updater.git
cd n8n-updater

# Создай .env файл с токеном
echo "TELEGRAM_BOT_TOKEN=твой_токен_сюда" > .env

# Запусти
docker compose up -d

Вариант B: Локально

# Клонируй и установи зависимости
git clone https://github.com/YOUR_USERNAME/n8n-updater.git
cd n8n-updater
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt

# Запусти с токеном
TELEGRAM_BOT_TOKEN=твой_токен python -m src.main
# или
python -m src.main --token твой_токен

3. Настрой через бота

  1. Открой своего бота в Telegram
  2. Отправь /start — ты станешь администратором
  3. Добавь сервер через меню "Управление серверами"
  4. Готово!

Добавление сервера

При добавлении сервера бот спросит:

  1. Имя — любое удобное название (Production, Staging, etc.)
  2. Хост — IP-адрес или hostname сервера
  3. Порт — SSH порт (по умолчанию 22)
  4. Пользователь — SSH user (по умолчанию root)
  5. Авторизация — пароль или SSH-ключ
  6. Путь к n8n — папка с docker-compose.yml (по умолчанию /opt/n8n-docker-caddy)

Команды бота

Команда Описание
/start Главное меню
/status Статус всех серверов
/check Проверить наличие обновлений
/update Обновить серверы
/servers Управление серверами
/help Справка

Процесс обновления

При обновлении бот выполняет на сервере:

cd /opt/n8n-docker-caddy/
docker compose pull
docker compose down
docker compose up -d

Хранение данных

Все настройки хранятся в SQLite базе данных:

  • Docker: /app/data/n8n_updater.db
  • Локально: ./data/n8n_updater.db

SSH авторизация

По паролю

Просто введи пароль при добавлении сервера. Пароль хранится в базе данных.

По SSH-ключу

Укажи путь к приватному ключу на машине где запущен бот:

  • Docker: ключи из ~/.ssh монтируются в /root/.ssh
  • Локально: укажи полный путь, например /Users/you/.ssh/id_rsa

Структура проекта

n8n-updater/
├── src/
│   ├── main.py              # Точка входа
│   ├── storage.py           # SQLite хранилище
│   ├── version_checker.py   # Проверка версий Docker Hub
│   ├── ssh_executor.py      # SSH-команды
│   ├── scheduler.py         # Планировщик
│   └── bot/
│       ├── handlers.py      # Обработчики команд
│       └── keyboards.py     # Inline-клавиатуры
├── data/                    # SQLite база данных
├── Dockerfile
├── docker-compose.yml
├── requirements.txt
└── README.md

Переменные окружения

Переменная Описание
TELEGRAM_BOT_TOKEN Токен бота (обязательно)
TZ Часовой пояс (по умолчанию Europe/Moscow)

Безопасность

  • Первый пользователь который напишет /start становится администратором
  • Только администратор может управлять ботом
  • Пароли SSH хранятся в локальной SQLite базе
  • Не публикуй токен бота и базу данных

Troubleshooting

Бот не отвечает

# Проверь логи
docker compose logs -f

Ошибка подключения SSH

  1. Проверь IP-адрес и порт
  2. Проверь имя пользователя и пароль/ключ
  3. Убедись что сервер доступен: ssh user@host

Не определяется версия n8n

Убедись что:

  1. Контейнер n8n запущен
  2. Путь к docker-compose.yml указан правильно

Лицензия

MIT

About

Telegram bot for automated n8n instance updates

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages