129 lines
5.1 KiB
Markdown
129 lines
5.1 KiB
Markdown
# 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
|