# Synology Power Control Bot Telegram-бот для удаленного управления питанием сетевого хранилища Synology NAS (DS223j и другие модели). ## Возможности ### Управление питанием - ✅ Включение питания через Wake-on-LAN - ✅ Выключение питания через API DSM - ✅ Перезагрузка системы с отслеживанием статуса ### Мониторинг системы - ✅ Проверка онлайн статуса NAS - ✅ Информация о системе (модель, версия DSM, время работы) - ✅ Мониторинг загрузки CPU и памяти - ✅ Данные о температуре и сетевой активности - ✅ Статус хранилища и дисков - ✅ Информация о безопасности системы - ✅ Список активных процессов - ✅ Мониторинг сетевых подключений ### Управление данными - ✅ Просмотр списка общих папок - ✅ Информация о томах и дисках - ✅ Статистика использования дисков ### Безопасность - ✅ Ограничение доступа по ID пользователей Telegram - ✅ Безопасное хранение учетных данных ## Требования - Python 3.8+ - Synology NAS с включенным WoL - Учетная запись администратора DSM - Telegram Bot API Token - Доступ к порту API Synology DSM (обычно 5000 или 5001) ## Установка и настройка 1. Клонируйте репозиторий: ```bash git clone https://github.com/yourusername/synology_power_control_bot.git cd synology_power_control_bot ``` 2. Установите зависимости: ```bash pip install -r requirements.txt ``` 3. Настройте параметры в файле `.env`: ``` # Telegram Bot Configuration TELEGRAM_TOKEN=your_telegram_bot_token ADMIN_USER_IDS=123456789,987654321 # Synology NAS Configuration SYNOLOGY_HOST=192.168.1.100 SYNOLOGY_PORT=5000 SYNOLOGY_USERNAME=admin SYNOLOGY_PASSWORD=your_password SYNOLOGY_SECURE=False SYNOLOGY_TIMEOUT=10 # Wake-on-LAN Configuration SYNOLOGY_MAC=00:11:22:33:44:55 WOL_PORT=9 ``` 4. Запустите бота: ```bash python -m src.bot ``` ## Подготовка Synology NAS 1. Включите Wake-on-LAN в настройках DSM: - Панель управления > Сеть > Общие > Wake-on-LAN 2. Убедитесь, что API DSM включено: - Панель управления > Службы терминала и SNMP > Включить DSM API 3. Узнайте MAC-адрес вашего NAS: - Панель управления > Сеть > Сетевой интерфейс ## Команды бота ### Основные команды - `/start` - Начало работы с ботом - `/status` - Проверка текущего статуса NAS - `/power` - Управление питанием NAS (включение, выключение, перезагрузка) - `/help` - Вывод справочной информации ### Расширенные команды - `/system` - Подробная информация о системе - `/storage` - Информация о хранилище и дисках - `/shares` - Список общих папок - `/load` - Текущая нагрузка на систему - `/security` - Статус безопасности системы ## Структура проекта ``` synology_power_control_bot/ ├── logs/ # Директория для логов ├── src/ # Исходный код │ ├── api/ # Модули для работы с API │ │ └── synology.py # API для работы с Synology NAS │ ├── config/ # Модули конфигурации │ │ └── config.py # Основная конфигурация │ ├── handlers/ # Обработчики команд бота │ │ └── command_handlers.py │ ├── utils/ # Вспомогательные утилиты │ │ └── logger.py # Настройка логирования │ └── bot.py # Основной файл запуска бота ├── .env # Файл с переменными окружения ├── .gitignore # Файл игнорирования Git └── requirements.txt # Зависимости проекта ``` ## Безопасность Бот имеет систему авторизации на основе ID пользователей Telegram. Убедитесь, что указали правильные ID в переменной `ADMIN_USER_IDS` в файле `.env`. ## Лицензия MIT