**GPTWOL** (_Simple Wake/Sleep On LAN Docker GUI_) — це легковажний веб-інтерфейс (GUI) на Python у Docker-контейнері, призначений для дистанційного вмикання (Wake-on-LAN) та вимикання (Sleep-on-LAN) комп'ютерів у локальній мережі. **Функціонал досить простий :** - **Керування живленням:** - Для того щоб включити комп’ютер чи сервер потрібно надіслати спеціальний пакет **Wake On LAN** (L4 або L2 пакет) для передачі команди на запуск. На комп’ютері в Біосі має бути налаштована така опція. А також включена підтримка у налаштуваннях мережевого адаптера в ОС. - Для переведення комп’ютера у режим сну потрібно відправити вже інший пакет **Sleep On LAN** (UDP-пакет на порт 9) підтримуються ОС Linux/Debian та Windows. Але на практиці Windows 10 чи 11 це працює через раз. - **Моніторинг стану:** - На сторінці інтерфейсу можна перевірка доступності пристроїв у мережі за допомогою **ICMP (ping)**, **ARP** або **TCP-запитів** (із налаштуванням таймаутів). - **Додавання пристроїв:** - Сканування локальної мережі через **ARP-SCAN** для швидкого виявлення та додавання пристроїв. - Перевірка коректності введених IP та MAC-адрес. - **Автоматизація:** - Вбудований **Cron** для планування автоматичного вмикання/вимикання за розкладом. - **Інтерфейс та безпека:** - Інтерфейс підтримує Dark Mode, пошук та сортування (за ім’ям, IP або MAC). - Авторизація: за замовчуванням вимкнена, але підтримує локальний логін/пароль або **OIDC** (OpenID Connect). - Низьке споживання ресурсів (~20 MB RAM). **Особливості розгортання:** - Ставиться з Docker-образу (misterbabou/gptwol). - Список пристроїв зберігається у базі даних SQLite. - Є тільки одна особливість сервіс вимагає мережевого режиму network_mode: host для коректної відправки WOL-пакетів у локальну мережу ``` version: "3.9" services: gptwol: container_name: gptwol image: misterbabou/gptwol:latest # gptwol працює тільки в host-режимі network_mode: host restart: unless-stopped environment: # Часовий пояс — рекомендовано для cron TZ: "Europe/Kyiv" # Ввімкнути локальну авторизацію ENABLE_LOGIN: "true" # Зміни ці параметри USERNAME: "admin" PASSWORD: "rZ1byF9knX4dmI2y" # Дозволити додавати/видаляти комп'ютери з інтерфейсу ENABLE_ADD_DEL: "true" # Автоматичне оновлення статусу (ping/arp/tcp) ENABLE_REFRESH: "true" # Інтервал оновлення статусу в секундах REFRESH_INTERVAL: "30" # Таймаути для перевірок PING_TIMEOUT: "80" ARP_TIMEOUT: "80" TCP_TIMEOUT: "1" GUNICORN_CMD_ARGS: "--timeout 120 --workers 2" # Використовувати WOL L2 пакети (краще для локальних мереж) ENABLE_L2_WOL_PACKET: "false" L2_INTERFACE: "enp0s31f6" volumes: # Тут зберігається база даних (список комп'ютерів) - /home/admin/gptwol/appdata/db:/app/db # Тут зберігаються CRON-завдання (автовмикання/вимкнення) - /home/admin/gptwol/appdata/cron:/etc/cron.d ``` ``` ```