Кроссплатформенный Telegram бот для удалённого управления ПК с поддержкой Windows и Linux.
- Статус системы - CPU, RAM, диск, uptime, батарея
- Скриншот - сделать скриншот рабочего стола
- Перезагрузка - перезагрузить ПК
- Выключение - выключить ПК
- Спящий режим - перевести ПК в спящий режим
- Гибернация - перевести ПК в режим гибернации
- Процессы - список запущенных процессов
- Завершить процесс - завершить процесс по PID или имени
- Сбор данных - комплексная информация о системе
- Сеть - активные сетевые соединения
- Выполнить команду - выполнить shell-команду
- Авторизация по паролю (bcrypt, cost=12)
- 2FA (TOTP) + backup-коды
- Защита от брутфорса с экспоненциальной блокировкой
- Восстановление пароля по одноразовому токену (1 час, rate-limit)
- Логирование действий и проверок входа
- Подтверждение опасных действий в админ-командах
- Многопользовательская поддержка
- Уведомления о событиях
- Интеграция с Dota 2 (опционально)
- Wake-on-LAN
- Python 3.10+
- Telegram Bot Token
- Системные зависимости:
- Для скриншотов (Linux):
scrotили альтернатива (gnome-screenshot,spectacle,importиз ImageMagick) - Для голосового ввода (Whisper):
ffmpeg
- Для скриншотов (Linux):
git clone https://github.com/Rimus0cod/control.git
cd controlWindows:
pip install -r requirements.txtДополнительно установите ffmpeg для голосового ввода (опционально).
Linux:
pip install -r requirements.txtДополнительно установите системные зависимости:
# Для Ubuntu/Debian
sudo apt install ffmpeg scrot
# Для Arch Linux
sudo pacman -S ffmpeg scrot
# Для Fedora
sudo dnf install ffmpeg scrotСоздайте файл .env на основе примера:
# Токен бота (получить у @BotFather)
BOT_TOKEN=your_bot_token_here
# ID администраторов (через запятую)
ADMIN_IDS=123456789,987654321
# База данных
DATABASE_URL=sqlite+aiosqlite:///bot.db
# IP адрес ПК (для Wake-on-LAN)
PC_IP_ADDRESS=192.168.1.100
PC_MAC_ADDRESS=xx:xx:xx:xx:xx:xx
# Настройки логирования
LOG_LEVEL=INFO
LOG_FILE=bot.logИли быстро скопируйте шаблон:
cp .env.example .envpython bot/main.pypython bot/main.pyили
python3 bot/main.pypython scripts/init_db.py- Откройте "Планировщик заданий" (Task Scheduler)
- Создайте новую задачу
- Настройте запуск при входе в систему
- Укажите путь к Python и скрипту
Создайте файл /etc/systemd/system/telegram-pc-bot.service:
[Unit]
Description=Telegram PC Control Bot
After=network.target
[Service]
Type=simple
User=your_username
WorkingDirectory=/path/to/control
ExecStart=/usr/bin/python3 /path/to/control/bot/main.py
Restart=always
[Install]
WantedBy=multi-user.targetЗатем:
sudo systemctl daemon-reload
sudo systemctl enable telegram-pc-bot
sudo systemctl start telegram-pc-bot| Команда | Описание |
|---|---|
/start |
Запуск бота |
/help |
Справка |
/status |
Статус ПК |
/screenshot |
Скриншот |
/reboot |
Перезагрузка |
/shutdown |
Выключение |
/sleep |
Спящий режим |
/hibernate |
Гибернация |
/cancel |
Отменить выключение |
/processes |
Топ процессов |
/list_processes |
Все процессы |
/kill_process |
Завершить процесс |
/collect_data |
Сбор данных ПК |
/network |
Сетевые соединения |
/cmd <команда> |
Выполнить команду |
| Команда | Описание |
|---|---|
/login <пароль> |
Авторизация |
/2fa_setup |
Настройка 2FA |
/2fa_verify <код> |
Подтверждение и включение 2FA |
/2fa_disable <код> |
Отключение 2FA |
/2fa <код/backup> |
Подтверждение 2FA при логине |
/recover |
Получить токен восстановления |
/reset_password <token> <new_password> |
Сбросить пароль |
/admin |
Панель админа |
# В боте выполните (будучи админом):
/setpassword your_secure_password# В боте:
/2fa
# Следуйте инструкциям для сканирования QR-кодаpytest
flake8
black --check .docker compose up --build -dБот использует .env и запускается как python bot/main.py.
Для работы скриншотов установите:
# Arch Linux
pacman -S scrot
# Ubuntu/Debian
apt install scrot
# Fedora
dnf install scrotАльтернативно, бот может использовать:
import(ImageMagick)gnome-screenshotspectacle(KDE)
Скриншоты работают автоматически через библиотеку mss или Pillow.
control/
├── bot/ # Основной код бота
│ ├── main.py # Точка входа
│ ├── keyboards.py # Клавиатуры
│ └── filters.py # Фильтры
├── handlers/ # Обработчики команд
│ ├── pc_control.py # Управление ПК
│ ├── authorization.py # Авторизация
│ └── admin.py # Админ-панель
├── services/ # Сервисы
│ ├── pc_manager.py # Управление ПК
│ ├── two_factor.py # 2FA
│ └── notifications.py # Уведомления
├── database/ # База данных
│ ├── models.py # Модели SQLAlchemy
│ └── repository.py # Репозиторий
├── config/ # Конфигурация
│ └── settings.py # Настройки
└── utils/ # Утилиты
├── logger.py # Логирование
└── validators.py # Валидаторы
- Проверьте токен бота в
.env - Убедитесь, что установлены все зависимости
- Проверьте логи в
bot.log
# Установите scrot
sudo apt install scrot
# Или ImageMagick
sudo apt install imagemagickУбедитесь, что установлен ffmpeg:
# Ubuntu/Debian
sudo apt install ffmpeg
# Arch Linux
sudo pacman -S ffmpeg
# Fedora
sudo dnf install ffmpeg- Linux: запустите бота с правами
sudo - Windows: запустите от имени администратора
# Права на файл базы данных
chmod 666 bot.dbMIT License
Pull requests приветствуются!