4.4 KiB
4.4 KiB
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
Установка и настройка
-
Клонируйте репозиторий:
git clone https://github.com/yourusername/synology_power_control_bot.git cd synology_power_control_bot -
Установите зависимости:
pip install -r requirements.txt -
Настройте параметры в файле
.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 -
Запустите бота:
python -m src.bot
Подготовка Synology NAS
-
Включите Wake-on-LAN в настройках DSM:
- Панель управления > Сеть > Общие > Wake-on-LAN
-
Убедитесь, что API DSM включено:
- Панель управления > Службы терминала и SNMP > Включить DSM API
-
Узнайте MAC-адрес вашего NAS:
- Панель управления > Сеть > Сетевой интерфейс
Команды бота
/start- Начало работы с ботом/status- Проверка текущего статуса NAS/power- Управление питанием NAS/help- Вывод справочной информации
Структура проекта
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