All apps · 0 apps
GPTWOL
Docker app from Mainfrezzer's Repository
Overview
Readme
View on GitHub
GPTWOL a simple Wake/Sleep On Lan docker GUI
GPTWOL is a simple and lightweight Wake/Sleep on Lan gui made with python to wake up and shutdown your computers on your LAN.
Screenshot
| Light Web | Dark Web |
|---|---|
![]() |
![]() |
| Light Mobile | Dark Mobile |
|---|---|
![]() |
![]() |
Features
- Docker Image to deploy
- Send Wake On Lan packets to wake up computers
- Send Sleep On Lan packets to shutdown computers
- Add or Delete Computer
- Computers status check with ping, arp or tcp request (timeout settings available)
- ARP-SCAN to add computers
- Very low power usage (20 mb RAM)
- Check if IP and MAC provided are valid
- cron job to wake up device
- Check if Cron provided is valid
- Search on computer Name, MAC or IP
- Dark mode
- Authentication (disable by default)
Special configuration you can change
- Ping Refresh to check Status availability
- Disable Delete or Add Computers
- Change the port of the Web UI
- Enable authentication (Local auth with only one user or OIDC)

Docker Configuration
[!NOTE]
It's recommended to use docker compose to run this application. Install documentation
[!CAUTION]
- The app container needs to run in host network mode to send the wakeonlan command on your local network.
- Make sure that the PORT you are using is free on your host computer
- Make sure that BIOS settings and remote OS is configure to allow Wake On Lan
- Don't expose gptwol directly on internet without proper authentication
With docker compose
Create docker-compose.yml file:
services:
gptwol:
container_name: gptwol
image: misterbabou/gptwol:latest
network_mode: host
restart: unless-stopped
environment:
- TZ=Europe/Paris #Set your timezone for Cron; default is UTC
#- PORT=5000 #Free Port on Your host; default is 5000
#- IP=0.0.0.0 #App listening IPV4 or IPV6 (ex [::]) address; default is 0.0.0.0
#- LOG_LEVEL=INFO #Can be DEBUG, INFO, WARN or ERROR
#- ENABLE_LOGIN=false # Enable or disable local login; You would be able to access with USERNAME and PASSWORD; default is false
#- USERNAME=admin # Set a username; default is admin
#- PASSWORD=admin # Set a password; default is admin
#- OIDC_ENABLED=false # Enable OIDC LOGIN; default is false
#- OIDC_ISSUER=https://auth.exemple.com # Base URL of the OIDC server - Should not include the `/.well-known/openid-configuration` part and no trailing `/`; default is not set
#- OIDC_CLIENT_ID=oidcclientid # Your OIDC client ID; default is not set
#- OIDC_CLIENT_SECRET=oidcclientsecret # Your OIDC Client Secret; default is not set
#- OIDC_REDIRECT_URI=http(s)://urlofyourgptwol(:port) # Base URL of your GPTWOL instance; default is not set
#- SCRIPT_NAME=/my-app # Uncomment this line to run the app under a prefix; default is not set
#- ENABLE_ADD_DEL=true # Enable or disable ADD computer and Delete computer buttons; default is true
#- ENABLE_REFRESH=true # Enable or disable automatic status refresh; default is true
#- REFRESH_INTERVAL=30 # Uncomment to change time between each status check for icmp, arp or tcp, can (in s); default value is 30 seconds
#- PING_TIMEOUT=300 #Uncomment to change the time to wait for a ping answer in (in ms); default value is 300 milliseconds
#- ARP_INTERFACE=eth0 #Uncomment this line to set an arp interface manually for scan and test; default is not set
#- ARP_TIMEOUT=300 #Uncomment to change the time to wait for a arp answer (in ms); default value is 300 milliseconds
#- TCP_TIMEOUT=1 #Uncomment to change the time to wait for a tcp check (in s); default value 1 second
#- ENABLE_L2_WOL_PACKET=false # Enable L2 WOL packet instead of L4, default is false
#- L2_INTERFACE=eth0 # Set the default interface for L2 WOL (set this only if you set ENABLE_L2_WOL_PACKET to true), default is eth0
volumes:
- ./appdata/db:/app/db
- ./appdata/cron:/etc/cron.d
Run the application
docker compose up -d
With docker
Run the application
docker run -d \
--name=gptwol \
--network="host" \
--restart unless-stopped \
-e PORT=5000 \
-e TZ=Europe/Paris \
-v ./appdata/db:/app/db \
-v ./appdata/cron:/etc/cron.d \
misterbabou/gptwol:latest
Configure Sleep on Lan
- Check the Sleep on Lan Github repo to download and configure
- GPTWOL send a reverse MAC wakeonlan packet on port 9 to shutdown your computer (you don't need to configure API)
Sleep on Lan for a debian based computer
sol.json
{
"Listeners": [
"UDP:9"
],
"LogLevel": "INFO",
"Commands": [
{
"Operation": "shutdown",
"Command": "poweroff",
"Default": true
}
]
}
Sleep on Lan for a windows based computer
sol.json
{
"Listeners": [
"UDP:9"
],
"LogLevel": "INFO",
"Commands": [
{
"Operation": "shutdown",
"Command": "shutdown /s /t 0 /f"",
"Default": true
}
]
}
- Configure Windows Defender Firewall by adding a new Inbound Rule (UDP port 9 to allow).
Configure OIDC
- You need to configure your OIDC provider to add new OIDC configuration. You need to enter
http(s)://yourgptwolurl(:port)/auth/oidc/callbackas Redirect URI - Configure the following ENV variables in docker compose:
OIDC_ENABLED OIDC_ISSUER OIDC_CLIENT_ID OIDC_CLIENT_SECRET OIDC_REDIRECT_URI(see default docker-compose.yml)
Roadmap
:heavy_check_mark: Add ARM version (Added in 1.0.1)
:heavy_check_mark: Add feature to plan automatic Wake on Lan (Cron) (Added in 1.0.3)
:heavy_check_mark: Add Search feature (Added in 1.0.4)
:heavy_check_mark: Remove Cron on Computer deletion (Added in 1.0.4)
:heavy_check_mark: Improve load page performance due to ping timeout. (added in 1.0.5)
:heavy_check_mark: Add a TCP port option to check availability without using ICMP (added in 2.0.1)
:heavy_check_mark: Run app on subpath (added in 2.1.0)
:heavy_check_mark: Make app responsive for smaller screen (added in 2.1.0)
:heavy_check_mark: Add Dark Mode Switch (added in 2.1.3)
:heavy_check_mark: move computers.txt in an other directory not to mount a file but a directory to the docker container (added in 4.0.0)
:heavy_check_mark: Shutdown computers with Sleep on LAN (added in 4.1.0)
:heavy_check_mark: Add optional simple authentication (added in 4.2.0)
:heavy_check_mark: Add ARP SCAN to add you computer of for availability check (added in 5.0.0)
:heavy_check_mark: Add Sort button to sort computer by Name, IP or MAC (added in 5.2.0)
:heavy_check_mark: Migrate computers to a SQLite database (added in 7.0.0)
:heavy_check_mark: OIDC sign in (added in 7.1.0)
Questions
Is there a GUI to configure automatic wakeup and shutdown?
Automatic shutdown and wakeup are made in the GUI using cron syntax. As I want to keep the application simple, I will not implement a GUI with a calendar, month an days. You can check this link to help you build your cron.
Install GPTWOL on Unraid in a few clicks.
Find GPTWOL in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.
Download Statistics
Total Downloads Over Time
Related apps
Explore more like this
Explore allLinks
Details
misterbabou/gptwolRuntime arguments
- Web UI
http://[IP]:[PORT:5000]/- Network
host- Shell
bash- Privileged
- false
Template configuration
Free Port on your host system. The default is 5000
- Target
- PORT
- Default
- 5000
- Value
- 5000
Change this value to 1 to disable the ability to add or delete computers. The default is 0 to allow it
- Target
- DISABLE_ADD_DEL
- Default
- 0|1
- Value
- 0
Frequency of ping status checks. Can be 15 or 60 (seconds). The default value is 30 seconds
- Target
- REFRESH_PING
- Default
- 30
- Value
- 15
Change the time to wait for a ping answer in ms. The default value is 300 milliseconds
- Target
- PING_TIMEOUT
- Default
- 300
- Value
- 200
If you migrate from an earlier version, just move the old computer.txt to the new location
- Target
- /app/db
- Value
- /mnt/user/appdata/gptwol/db
- Target
- /etc/cron.d
- Value
- /mnt/user/appdata/gptwol/cron



