88 lines
No EOL
4.4 KiB
Markdown
88 lines
No EOL
4.4 KiB
Markdown
**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
|
||
```
|
||
|
||
```
|
||
|
||
``` |