102 lines
3.7 KiB
Markdown
102 lines
3.7 KiB
Markdown
# Synology Power Control Bot
|
||
|
||
Telegram-бот для удаленного управления питанием сетевого хранилища Synology NAS (DS223j и другие модели).
|
||
|
||
## Возможности
|
||
|
||
- ✅ Включение питания через Wake-on-LAN
|
||
- ✅ Выключение питания через API DSM
|
||
- ✅ Перезагрузка системы
|
||
- ✅ Проверка статуса и получение информации о системе
|
||
- ✅ Ограничение доступа по ID пользователей
|
||
|
||
## Требования
|
||
|
||
- Python 3.8+
|
||
- Synology NAS с включенным WoL
|
||
- Учетная запись администратора DSM
|
||
- Telegram Bot API Token
|
||
|
||
## Установка и настройка
|
||
|
||
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` - Вывод справочной информации
|
||
|
||
## Структура проекта
|
||
|
||
```
|
||
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
|