Telegram-бот для автоматического мониторинга и обновления n8n инстансов на ваших серверах.
Никаких конфигов! Просто запусти бота и добавляй серверы прямо в Telegram.
- Zero-config: Всё настраивается через Telegram бота
- Мониторинг версий: Автоматическая проверка новых версий n8n
- Уведомления: Telegram-уведомления о доступных обновлениях
- Планирование: Обновление сейчас или по расписанию
- Мультисервер: Управление несколькими серверами
- Гибкая авторизация: SSH по паролю или ключу
- Открой @BotFather в Telegram
- Отправь
/newbotи следуй инструкциям - Скопируй полученный токен
Вариант 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 твой_токен- Открой своего бота в Telegram
- Отправь
/start— ты станешь администратором - Добавь сервер через меню "Управление серверами"
- Готово!
При добавлении сервера бот спросит:
- Имя — любое удобное название (Production, Staging, etc.)
- Хост — IP-адрес или hostname сервера
- Порт — SSH порт (по умолчанию 22)
- Пользователь — SSH user (по умолчанию root)
- Авторизация — пароль или SSH-ключ
- Путь к 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
Просто введи пароль при добавлении сервера. Пароль хранится в базе данных.
Укажи путь к приватному ключу на машине где запущен бот:
- 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 базе
- Не публикуй токен бота и базу данных
# Проверь логи
docker compose logs -f- Проверь IP-адрес и порт
- Проверь имя пользователя и пароль/ключ
- Убедись что сервер доступен:
ssh user@host
Убедись что:
- Контейнер n8n запущен
- Путь к docker-compose.yml указан правильно
MIT