init commit
This commit is contained in:
101
.history/README_20250830063733.md
Normal file
101
.history/README_20250830063733.md
Normal file
@@ -0,0 +1,101 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user