Skip to content

sliva-dev/proxmox-telegram-bot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤖 Proxmox VE Telegram Bot

Python 3.11+ python-telegram-bot Proxmox VE License MIT Version

Самый продвинутый и безопасный Telegram-бот для управления Proxmox VE в 2025 году Всё, что нужно системному администратору: мониторинг, алерты, управление VM/LXC и безопасный шелл — прямо в чате.

Это мой первый публичный репозиторий, поэтому не ругайте строго ✨


✨ Возможности

Категория Функционал Описание
📊 Мониторинг Статус хоста (/status) Аптайм, нагрузка CPU, RAM, диски, температуры
Списки VM/LXC (/vm, /lxc) Кнопочное управление, метрики реального времени
⚡ Управление Управление VM/LXC Start / Stop / Reboot с подтверждением
Поддержка кластера Автоматический поиск ноды по VMID
🔧 Утилиты Безопасная консоль (/console) Таймаут 30с, чёрный список команд, обрезка вывода
Автоматические алерты Мониторинг перегрева, нагрузки CPU/RAM
🔐 Безопасность Whitelist-доступ Только указанные Telegram ID
Уведомления о попытках доступа Админы получают оповещения о неавторизованных действиях

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

Установка

cd /opt
git clone https://github.com/sliva/proxmox-telegram-bot.git
cd proxmox-telegram-bot

python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Конфигурация

Создайте файл .env:

# Telegram
BOT_TOKEN=your_bot_token_from_BotFather
WHITELIST=your_telegram_id

# Proxmox (рекомендуется API Token!)
HOST=your_proxmox_ip
PROXMOX_TOKEN_NAME=telegram-bot@pve!
PROXMOX_TOKEN_VALUE=your_token_value
PROXMOX_PORT=8006

# Настройки алертов
CPU_TEMP_THRESHOLD=80
CPU_USAGE_THRESHOLD=70
RAM_USAGE_THRESHOLD=70
CHECK_INTERVAL=30

💡 Как создать токен в Proxmox: > Datacenter → Permissions → API Tokens → Add Права: /

Запуск

python main.py

🎯 Команды бота

Команда Описание
/start Приветствие и список команд
/status Полная сводка по хосту
/vm Список всех виртуальных машин
/lxc Список всех LXC-контейнеров
/console <cmd> Выполнить команду (ls, mkdir, etc)

🔧 Автозапуск через systemd

Создайте файл /etc/systemd/system/proxmox-bot.service:

[Unit]
Description=Proxmox VE Telegram Bot
After=network.target

[Service]
Type=simple
User=root
WorkingDirectory=/opt/proxmox-telegram-bot
ExecStart=/opt/proxmox-telegram-bot/venv/bin/python /opt/proxmox-telegram-bot/main.py
Restart=always
RestartSec=10
StandardOutput=journal
StandardError=journal

[Install]
WantedBy=multi-user.target

Активируйте сервис:

systemctl daemon-reload
systemctl enable --now proxmox-bot.service

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

Многоуровневая защита:

  • Whitelist-авторизация — только разрешённые Telegram ID
  • Уведомления о попытках взлома — мгновенные оповещения админам
  • Защищённая консоль — жёсткий чёрный список команд:
    • rm -rf /, mkfs, fdisk, dd of=/dev/, wipefs
    • shutdown, reboot, halt, poweroff
    • Форк-бомбы и опасные конструкции
  • Таймауты выполнения — максимум 30 секунд на команду
  • Обрезка вывода — ограничение 4000 символов

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

proxmox-telegram-bot/
├── main.py                               # Запуск бота
├── config.py                             # Загрузка конфигурации из .env
├── requirements.txt                      # Зависимости проекта
├── .env                                  # Конфигурация (не в репозитории)
├── README.md                             # Документация проекта
│
├── core/                                 # Ядро бота
│   ├── __init__.py
│   ├── auth.py                          # Whitelist + уведомления безопасности
│   └── logger.py                         # Настройки логирования
│
├── handlers/                              # Обработчики команд бота
│   ├── __init__.py
│   ├── common.py                         # Общие команды (/start, /help, /status)
│   ├── console.py                         # Консоль сервера
│   ├── resources.py                        # Единый обработчик ресурсов
│   └── routers.py                          # Маршрутизация команд
│
├── proxmox/                               # Взаимодействие с Proxmox API
│   ├── __init__.py
│   ├── client.py                          # API клиент
│   ├── vms.py                              # Работа с виртуальными машинами
│   ├── lxcs.py                             # Работа с контейнерами LXC
│   └── utils.py                            # Утилиты для работы с Proxmox
│
├── services/                               # Дополнительные сервисы
│   ├── __init__.py
│   └── alerts.py                           # Система мониторинга и алертов
│
└── system/                                 # Системные утилиты
    ├── __init__.py
    ├── checks.py                           # Проверки системы (диск, память, нагрузка)
    └── sensors.py                           # Мониторинг температуры и датчиков

📸 Демонстрация

🖥️ Интерфейс бота в действии

Главное меню Выбор режима Процесс работы

📄 Лицензия

MIT License — полная свобода использования с ответственностью.

MIT License © 2025-2026 Sliva

⭐ Если проект понравился — поставьте звезду!

🐛 Нашли баг? — Создайте Issue

💡 Хотите помочь? — Pull Request приветствуется!

Автор: Sliva Версия: 2.0 (февраль 2026)

About

🤖 Telegram-бот для управления Proxmox VE: мониторинг хоста, управление VM/LXC, консоль и автоматические алерты.

Resources

License

Stars

Watchers

Forks

Contributors

Languages