# WOL·Ly

WOL·Ly is a Wake-On-LAN server, ready to bring devices to life.

After initializing the .env file with the MAC addresses of the devices you need to wake up, you'll be ready to use either the UI or curl to do so.

The format used in the .env file is

\# Environment variables

WOL_SECRET_KEY="secretkey"

WOL_USER_PASS="userpassword"

REDIS_URL="redis://localhost:6379/0"

DEVICE_MAC="mac"

DEVICE_IP="ipv4"

DEVICE_IFACE="eth0|wlan0 etc"

The only required fields are the _MAC ones. If _IFACE is not provided, eth0 is the default. The _IP is only used for the ping functionality.

The default user is called anon and can be changed in auth.py

## Installation

```sh
git clone https://git.konsthol.eu/konsthol/WOL-Ly
cd WOL-Ly
chmod +x setup.sh
sudo ./setup.sh
```

## Usage

Wake a device up

`curl -k "https://username:password@deviceIP:51820/wol/deviceToWakeUpName?key=SecretKey"`

Ping a device

`curl -k "https://deviceIP:51820/ping/deviceToWakeUpName"`

Check to see if Redis is connected

`curl -k "https://username:password@deviceIP:51820/redis_status"`

Reset the rate limits

`curl -k "https://username:password@deviceIP:51820/reset_limiter?key=SecretKey"`

Or you could go to "https://deviceIP:51820" and click the buttons there for the Ping and Wol functions.

## UI portion

![Usage](./assets/videos/video-06-1224_20-03-34.gif)

## Dependencies

* Python
* Redis
* Gunicorn
* OpenSSL

## Credits go to

* [CodePen](https://codepen.io/)
* [Fernando Cohen](https://codepen.io/designfenix/pen/RwKPapa)
* [John Muir](https://codepen.io/john_r_muir/pen/RwzpNQv)
* [Krasivoron Alexander](https://codepen.io/kvoron/pen/abgoJVj)
* [Filip Zrnzevic](https://codepen.io/filipz/pen/poMLWNX)
* [Eugene Burlak](https://codepen.io/eugene_burlak/pen/MYgYVbQ)

For providing the CodePens I used to make the UI portion of WOL·Ly

* [Oswald](https://github.com/googlefonts/OswaldFont)

For providing the fonts used in the UI.

* [Luke Peavey](https://github.com/lukePeavey/SplitType)

For providing the SplitType library.

* [GSAP](https://gsap.com/community/standard-license/)

For providing a way to implement the animations used in the 4th CodePen.

## License

This project as a whole is licensed under GPLv3 but for the UI part that uses Flexbox the license used is Apache License 2.0. The font used is Oswald which is licensed under SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007.
