Skip to content

apela812/server-stat-TG

Repository files navigation

🖥️ Server Monitor Bot

Telegram-бот для мониторинга сервера на Linux. Предоставляет статистику по CPU, RAM, дискам, сети, системе и запущенным процессам.

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

  • 📊 Общий статус — быстрая сводка по основным метрикам
  • 🔥 CPU — загрузка, частота, количество ядер
  • 💾 RAM — использование оперативной памяти
  • 💿 Диски — место на дисках и разделах
  • 🌐 Сеть — трафик и сетевые интерфейсы
  • ⚙️ Система — информация о платформе, uptime, температура
  • 📋 Процессы — топ 15 процессов по памяти/CPU с возможностью переключения

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

1️⃣ Получите токен бота

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

2️⃣ Узнайте свой Telegram ID

  1. Откройте @userinfobot
  2. Отправьте любую команду
  3. Скопируйте ваш ID

3️⃣ Запустите бота

# Клонируйте репозиторий
git clone https://github.com/apela812/server-stat-TG.git
cd server_monitor_bot

# Запустите универсальный launcher
./launcher.sh

Выберите опцию для инициализации и конфигурации.

🎮 Использование

Интерактивное меню launcher

./launcher.sh              # Главное меню

Опции меню:

  1. ⚙️ Управление конфигурацией

    • Изменение токена бота
    • Добавление администраторов по TG ID с подписями
    • Редактирование .env
    • Просмотр конфигурации
  2. 👥 Управление пользователями

    • Добавление пользователей с подписями
    • Удаление пользователей
    • Просмотр списка
    • Редактирование подписей
    • Поиск по ID
  3. 🔧 Управление окружением

    • Проверка Python/pip
    • Создание/активация venv
    • Установка/обновление зависимостей
  4. 📊 Состояние системы

    • Просмотр конфигурации
    • Список пользователей
    • Установленные пакеты
    • Версия Python
    • Статус бота
  5. 🚀 Запуск бота (в переднем плане)

  6. 🌙 Запуск бота в фоне

  7. ⏹️ Остановка бота

  8. ❌ Выход

CLI команды

./launcher.sh --help       # Справка
./launcher.sh --setup      # Инициализация с нуля
./launcher.sh --run        # Запуск в переднем плане
./launcher.sh --start      # Запуск в фоне
./launcher.sh --stop       # Остановка
./launcher.sh --status     # Статус и логи
./launcher.sh --logs       # Просмотр логов
./launcher.sh --config     # Конфигурация
./launcher.sh --users      # Управление пользователями

📱 Команды Telegram бота

Команда Описание
/start Запуск, показать меню
/status Общий статус сервера
/cpu Статистика процессора
/ram Статистика памяти
/disk Статистика дисков
/network Статистика сети
/system Информация о системе
/processes Список процессов
/help Справка

Кнопки меню:

  • 📊 Общий статус
  • 🔥 CPU
  • 💾 RAM
  • 💿 Диски
  • 🌐 Сеть
  • ⚙️ Система
  • 📋 Процессы ⭐
  • 🔄 Обновить

🔄 Запуск в фоне

Встроенный способ (рекомендуется)

# Запустить в фоне
./launcher.sh --start

# Проверить статус
./launcher.sh --status

# Просмотреть логи
./launcher.sh --logs

# Остановить
./launcher.sh --stop

Логи сохраняются в logs/bot.log.

Systemd (для постоянной работы)

Создайте /etc/systemd/system/server-monitor-bot.service:

[Unit]
Description=Server Monitor Telegram Bot
After=network.target

[Service]
Type=simple
User=your_user
WorkingDirectory=/path/to/server_monitor_bot
Environment="PATH=/path/to/server_monitor_bot/venv/bin"
ExecStart=/path/to/server_monitor_bot/venv/bin/python main.py
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target

Запуск:

sudo systemctl daemon-reload
sudo systemctl enable server-monitor-bot
sudo systemctl start server-monitor-bot
sudo systemctl status server-monitor-bot

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

server_monitor_bot/
├── main.py              # Точка входа
├── config.py            # Конфигурация
├── launcher.sh          # Управление ботом
├── requirements.txt     # Зависимости
├── README.md            # Документация
├── handlers/
│   └── commands.py      # Команды бота
├── keyboards/
│   └── main_kb.py       # Клавиатуры
├── utils/
│   └── stats.py         # Сбор статистики
├── .env                 # Переменные (не коммитить!)
├── .users.db            # База пользователей
├── logs/
│   └── bot.log          # Логи бота
└── venv/                # Виртуальное окружение

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

Файл .env:

BOT_TOKEN=your_bot_token_here
ALLOWED_USERS=123456789,987654321
DATABASE_PATH=data/bot.db
LOG_LEVEL=INFO

Если ALLOWED_USERS пуст — бот доступен всем.

📦 Требования

  • Python 3.9+
  • Linux (Ubuntu, Debian, Fedora и т.д.)
  • pip/venv

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

  • Проверка ID пользователя перед командами
  • Токен хранится в .env (не коммитьте в git!)
  • Использует ALLOWED_USERS для ограничения доступа
  • Скрытие токена в выводе конфигурации

📄 Лицензия

MIT

🤝 Вклад

Pull Requests приветствуются!

About

No description, website, or topics provided.

Resources

License

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors