2025-08-30 14:42:08 +09:00
2025-08-30 14:42:08 +09:00
2025-08-30 14:51:16 +09:00
2025-08-31 21:48:49 +09:00
2025-08-30 10:33:46 +09:00
2025-08-31 21:48:49 +09:00
2025-08-30 14:51:16 +09:00
2025-08-30 14:51:16 +09:00
2025-08-30 10:33:46 +09:00
2025-08-31 21:48:49 +09:00
2025-08-30 10:33:46 +09:00
2025-08-30 10:33:46 +09:00
2025-08-31 15:01:12 +09:00
2025-08-31 21:48:49 +09:00
2025-08-30 10:33:46 +09:00
2025-08-30 14:52:44 +09:00
2025-08-30 14:52:44 +09:00
2025-08-30 10:33:46 +09:00
2025-08-30 10:33:46 +09:00
2025-08-30 10:33:46 +09:00
2025-08-30 10:33:46 +09:00
2025-08-30 10:33:46 +09:00
2025-08-30 10:33:46 +09:00

Synology Power Control Bot

Telegram-бот для удаленного управления питанием сетевого хранилища Synology NAS (DS223j и другие модели).

Возможности

Управление питанием

  • Включение питания через Wake-on-LAN
  • Выключение питания через API DSM
  • Перезагрузка системы с отслеживанием статуса

Мониторинг системы

  • Проверка онлайн статуса NAS
  • Информация о системе (модель, версия DSM, время работы)
  • Мониторинг загрузки CPU и памяти
  • Данные о температуре и сетевой активности
  • Статус хранилища и дисков
  • Информация о безопасности системы
  • Список активных процессов
  • Мониторинг сетевых подключений

Управление данными

  • Просмотр списка общих папок
  • Информация о томах и дисках
  • Статистика использования дисков
  • Просмотр файлов и папок
  • Поиск файлов
  • Мониторинг квот пользователей

Безопасность

  • Ограничение доступа по ID пользователей Telegram
  • Безопасное хранение учетных данных

Дополнительные функции

  • Мониторинг обновлений DSM и пакетов
  • Управление расписанием питания
  • Проверка статуса резервного копирования

Требования

  • Python 3.8+
  • Synology NAS с включенным WoL
  • Учетная запись администратора DSM
  • Telegram Bot API Token
  • Доступ к порту API Synology DSM (обычно 5000 или 5001)

Установка и настройка

Метод 1: Локальный запуск

  1. Клонируйте репозиторий:

    git clone https://github.com/yourusername/synology_power_control_bot.git
    cd synology_power_control_bot
    
  2. Установите зависимости:

    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. Запустите бота:

    python run.py
    

Метод 2: Docker

  1. Убедитесь, что Docker и Docker Compose установлены в вашей системе.

  2. Клонируйте репозиторий:

    git clone https://github.com/yourusername/synology_power_control_bot.git
    cd synology_power_control_bot
    
  3. Создайте файл .env на основе .env-example и заполните необходимыми значениями.

  4. Запустите скрипт развертывания:

    # Linux/macOS
    chmod +x deploy.sh
    ./deploy.sh
    
    # Windows
    deploy.cmd
    

    Или запустите вручную:

    docker-compose up -d --build
    
  5. Проверьте статус:

    docker-compose ps
    
  6. Просмотр логов:

    docker-compose logs -f
    

Дополнительная информация о Docker-развертывании доступна в файле README_DOCKER.md.

Подготовка 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 - Статус безопасности системы
  • /temperature - Температура устройства
  • /processes - Список активных процессов
  • /network - Сетевая информация

Расширенные команды

  • /schedule - Расписание питания
  • /browse - Просмотр файлов
  • /search <запрос> - Поиск файлов
  • /updates - Проверка обновлений
  • /backup - Статус резервного копирования
  • /quota - Квоты пользователей

Быстрые команды

  • /quickreboot - Быстрая перезагрузка
  • /wakeup - Пробуждение NAS (WOL)

Структура проекта

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                # Файл с переменными окружения
├── .env-example        # Пример файла переменных окружения
├── .gitignore          # Файл игнорирования Git
├── .dockerignore       # Файлы, игнорируемые при сборке Docker-образа
├── Dockerfile          # Инструкции для сборки Docker-образа
├── docker-compose.yml  # Конфигурация Docker Compose
├── deploy.sh           # Скрипт развёртывания для Linux
├── deploy.cmd          # Скрипт развёртывания для Windows
├── entrypoint.sh       # Скрипт для запуска в Docker
├── README.md           # Основная документация
├── README_DOCKER.md    # Документация по Docker-развёртыванию
└── requirements.txt    # Зависимости проекта

Безопасность

Бот имеет систему авторизации на основе ID пользователей Telegram. Убедитесь, что указали правильные ID в переменной ADMIN_USER_IDS в файле .env.

Устранение неисправностей

Проблемы с подключением к Synology NAS

  1. Убедитесь, что NAS доступен по сети (можно проверить с помощью команды ping).
  2. Проверьте правильность логина и пароля в .env.
  3. Убедитесь, что DSM API включено в настройках NAS.

Проблемы с Docker

  1. Проверьте статус контейнера: docker-compose ps
  2. Просмотрите логи: docker-compose logs -f
  3. Перезапустите контейнер: docker-compose restart
  4. Проверьте состояние здоровья: docker inspect --format="{{json .State.Health}}" synology-power-control-bot
  5. Проверьте, что все переменные окружения корректно переданы в контейнер.

Обновление в Docker

Для обновления бота в Docker:

  1. Остановите контейнеры:

    docker-compose down
    
  2. Загрузите обновления (если используете Git):

    git pull
    
  3. Запустите контейнеры заново:

    docker-compose up -d --build
    

Лицензия

MIT

Description
No description provided
Readme MIT 794 KiB
Languages
Python 98.5%
Shell 0.7%
Batchfile 0.5%
Dockerfile 0.2%