Notefix/1.Projects/Персональний сайт портфоліо/Self Hosted/GPTWOL.md

88 lines
4.4 KiB
Markdown
Raw Normal View History

2026-07-28 20:05:02 +03:00
**GPTWOL** (_Simple Wake/Sleep On LAN Docker GUI_) — це легковажний веб-інтерфейс (GUI) на Python у Docker-контейнері, призначений для дистанційного вмикання (Wake-on-LAN) та вимикання (Sleep-on-LAN) комп'ютерів у локальній мережі.
2026-07-29 08:49:28 +03:00
**Функціонал досить простий :**
- **Керування живленням:**
- Для того щоб включити комп’ютер чи сервер потрібно надіслати спеціальний пакет **Wake On LAN** (L4 або L2 пакет) для передачі команди на запуск. На комп’ютері в Біосі має бути налаштована така опція. А також включена підтримка у налаштуваннях мережевого адаптера в ОС.
- Для переведення комп’ютера у режим сну потрібно відправити вже інший пакет **Sleep On LAN** (UDP-пакет на порт 9) підтримуються ОС Linux/Debian та Windows. Але на практиці Windows 10 чи 11 це працює через раз.
2026-07-28 20:05:02 +03:00
- **Моніторинг стану:**
2026-07-29 08:49:28 +03:00
- На сторінці інтерфейсу можна перевірка доступності пристроїв у мережі за допомогою **ICMP (ping)**, **ARP** або **TCP-запитів** (із налаштуванням таймаутів).
2026-07-28 20:05:02 +03:00
- **Додавання пристроїв:**
2026-07-29 08:49:28 +03:00
- Сканування локальної мережі через **ARP-SCAN** для швидкого виявлення та додавання пристроїв.
- Перевірка коректності введених IP та MAC-адрес.
2026-07-28 20:05:02 +03:00
- **Автоматизація:**
2026-07-29 08:49:28 +03:00
- Вбудований **Cron** для планування автоматичного вмикання/вимикання за розкладом.
2026-07-28 20:05:02 +03:00
- **Інтерфейс та безпека:**
2026-07-29 08:49:28 +03:00
- Інтерфейс підтримує Dark Mode, пошук та сортування (за ім’ям, IP або MAC).
- Авторизація: за замовчуванням вимкнена, але підтримує локальний логін/пароль або **OIDC** (OpenID Connect).
- Низьке споживання ресурсів (~20 MB RAM).
**Особливості розгортання:**
- Ставиться з Docker-образу (misterbabou/gptwol).
- Список пристроїв зберігається у базі даних SQLite.
2026-07-29 14:51:25 +03:00
- Є тільки одна особливість сервіс вимагає мережевого режиму 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
2026-07-29 17:12:41 +03:00
```
```
2026-07-29 14:51:25 +03:00
```