Skip to content

Commit 042bc88

Browse files
Update README.md
1 parent feaa55f commit 042bc88

1 file changed

Lines changed: 141 additions & 32 deletions

File tree

README.md

Lines changed: 141 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,47 @@
1-
# WoL Redirect
2-
3-
WoL Redirect is a Docker Container with graphical interface, which allows users to wake up their services.
4-
Integrates with all of the WoL Containers.
5-
s
6-
_Well, except for meteorite_
1+
<h1 align="center">WoL Redirect</h1>
2+
3+
<p align="center">
4+
🖥️ On-demand service wake-up · Web UI · ⚙️ flexible and configurable · Multi-Environment
5+
</p>
6+
7+
<div align="center">
8+
<a href="https://github.com/codeshelldev/wol-redirect/releases">
9+
<img
10+
src="https://img.shields.io/github/v/release/codeshelldev/wol-redirect?sort=semver&logo=github&label=Release"
11+
alt="GitHub release"
12+
>
13+
</a>
14+
<a href="https://github.com/codeshelldev/wol-redirect/stargazers">
15+
<img
16+
src="https://img.shields.io/github/stars/codeshelldev/wol-redirect?style=flat&logo=github&label=Stars"
17+
alt="GitHub stars"
18+
>
19+
</a>
20+
<a href="https://github.com/codeshelldev/wol-redirect/pkgs/container/wol-redirect">
21+
<img
22+
src="https://ghcr-badge.egpl.dev/codeshelldev/wol-redirect/size?color=%2344cc11&tag=latest&label=Image+Size&trim="
23+
alt="Docker image size"
24+
>
25+
</a>
26+
<a href="https://github.com/codeshelldev/wol-redirect/pkgs/container/wol-redirect">
27+
<img
28+
src="https://img.shields.io/badge/dynamic/json?url=https%3A%2F%2Fghcr-badge.elias.eu.org%2Fapi%2Fcodeshelldev%2Fwol-dockerized%2Fwol-dockerized&query=downloadCount&label=Downloads&color=2344cc11"
29+
alt="Docker image Pulls"
30+
>
31+
</a>
32+
<a href="./LICENSE">
33+
<img
34+
src="https://img.shields.io/badge/License-MIT-green.svg"
35+
alt="License: MIT"
36+
>
37+
</a>
38+
</div>
39+
40+
---
741

842
## Installation
943

10-
Get the latest `docker-compose.yaml` file:
44+
Download the latest `docker-compose.yaml`:
1145

1246
```yaml
1347
services:
@@ -39,13 +73,15 @@ networks:
3973
network:
4074
```
4175
76+
Start the container:
77+
4278
```bash
4379
docker compose up -d
4480
```
4581

46-
### Reverse Proxy
82+
## Reverse Proxy
4783

48-
In this example we'll be using traefik:
84+
The following example uses **Traefik** as a reverse proxy:
4985

5086
```yaml
5187
services:
@@ -78,13 +114,15 @@ networks:
78114
external: true
79115
```
80116
81-
Let's use jellyfin for example
117+
Example service configuration using **Jellyfin**:
82118
83119
```yaml
84120
file not found: /home/runner/work/wol-redirect/wol-redirect/examples/jellyfin.yaml
85121
```
86122
87-
### Configuration
123+
## Configuration
124+
125+
Basic service-to-host mappings:
88126
89127
```json
90128
{
@@ -106,7 +144,7 @@ file not found: /home/runner/work/wol-redirect/wol-redirect/examples/jellyfin.ya
106144
}
107145
```
108146

109-
`.env`
147+
Environment variables:
110148

111149
```dotenv
112150
CLIENT_ID=CLIENT_ID
@@ -123,49 +161,120 @@ SESSION_KEY=MY_SESSION_KEY # generate this with openssl
123161
SCOPE=openid
124162
```
125163

126-
#### PVE (VMs + LXCs)
164+
## Advanced Setups
165+
166+
WoL Redirect supports two main scenarios depending on how your services are hosted.
167+
168+
## Virtualized Hosts (VMs, LXCs, Hypervisors)
127169

128-
If you are trying to wakeup a host running PVE, you will probably want to wakeup LXCs or VMs too.
129-
Sadly LXCs (and VMs) don't have `Wake-on-LAN` functionalities.
130-
For that you will need [WoL PVE](https://github.com/codeshelldev/wol-pve)
170+
If your services run inside virtual machines or containers managed by a hypervisor (for example Proxmox VE, ..., or similar platforms), you may want to wake up the physical host **and** start specific VMs or LXCs.
171+
172+
Since VMs and LXCs do not support Wake-on-LAN directly, an external helper is required.
173+
174+
This setup requires an additional helper to be installed on the hypervisor: [**WoL VE**](https://github.com/codeshelldev/wol-ve)
175+
176+
Example mapping configuration:
131177

132178
```json
133-
file not found: /home/runner/work/wol-redirect/wol-redirect/examples/config/mapping-pve.json
179+
{
180+
"hosts": {
181+
"hypervisor": {
182+
"ip": "192.168.1.1",
183+
"mac": "XX:XX:XX:XX:XX:XX",
184+
"startupTime": 40
185+
},
186+
"lxc": {
187+
"ip": "192.168.1.1",
188+
"id": "100",
189+
"startupTime": 10
190+
},
191+
"vm": {
192+
"ip": "192.168.1.1",
193+
"id": "200",
194+
"startupTime": 10
195+
}
196+
},
197+
"routes": {
198+
"hypervisor-lxc": {
199+
"route": ["hypervisor", "lxc"]
200+
}
201+
},
202+
"records": {
203+
"*.mydomain.com": "hypervisor-lxc"
204+
}
205+
}
134206
```
135207

136-
#### Docker
208+
This approach is applicable to:
209+
210+
- Proxmox VE
211+
- Other hypervisors with API-controlled VM/container startup
212+
- Mixed virtualization environments
213+
214+
## Docker Hosts (Non-Virtualized)
215+
216+
If Docker is running directly on a physical server, you may want to:
217+
218+
- Wake up the server only when needed
219+
- Start specific Docker containers on demand
137220

138-
If you are running docker on your resource-hungry server, you might want to start docker-containers only if needed.
139-
For this to work you will need [WoL Dockerized](https://github.com/codeshelldev/wol-dockerized)
221+
For this use case, use [**WoL Dockerized**](https://github.com/codeshelldev/wol-dockerized).
222+
223+
Example mapping configuration:
140224

141225
```json
142-
file not found: /home/runner/work/wol-redirect/wol-redirect/examples/config/mapping-docker.json
226+
{
227+
"hosts": {
228+
"docker-server": {
229+
"ip": "192.168.5.10",
230+
"docker": true
231+
}
232+
},
233+
"routes": {
234+
"docker": {
235+
"route": ["docker-server"]
236+
}
237+
},
238+
"records": {
239+
"jellyfin.mydomain.com": "docker",
240+
"*.mydomain.com": "docker"
241+
}
242+
}
143243
```
144244

145-
#### Or both
245+
## Combined Setup (Virtualization + Docker)
246+
247+
If your environment uses both virtualization and Docker (for example Docker running inside VMs, or mixed workloads), you can combine both approaches.
248+
249+
Example mapping configuration:
146250

147251
```json
148-
file not found: /home/runner/work/wol-redirect/wol-redirect/examples/config/mapping-pve-docker.json
252+
file not found: /home/runner/work/wol-redirect/wol-redirect/examples/config/virtual-docker.mapping.json
149253
```
150254

151-
_You will need both [WoL PVE](https://github.com/codeshelldev/wol-pve) and [WoL Dockerized](https://github.com/codeshelldev/wol-dockerized)_
255+
This setup requires:
256+
257+
- [WoL VE](https://github.com/codeshelldev/wol-ve)
258+
- [WoL Dockerized](https://github.com/codeshelldev/wol-dockerized)
152259

153260
## Usage
154261

155-
Use a Reverse Proxy to redirect you from a service `https://jellyfin.mydomain.com` on another machine to `https://wol-red.mydomain.com`,
156-
WoL Redirect will use the `config.json` to get the host of the requested service.
262+
Configure your reverse proxy to forward requests from a service domain (e.g. `https://jellyfin.mydomain.com`) to `https://wol-red.mydomain.com`.
157263

158-
## Contributing
264+
WoL Redirect inspects the incoming request, matches it against the configuration, and:
159265

160-
Have feedback, new ideas or found a bug? Feel free to open up an issue or to start a Pull Request!
266+
1. Wakes up the target host if necessary
267+
2. Starts the required VM, container, or service
268+
3. Redirects traffic once the service is available
269+
270+
## Contributing
161271

162-
_But remember we are all volunteers, so be kind and respectful_
272+
Have feedback, ideas, or found a bug? Open an issue or submit a pull request.
163273

164274
## Supporting
165275

166-
Like this project and want to support?
167-
⭐️ this Repository to let others know about this Project.
276+
If you find this project useful, consider starring ⭐️ the repository to help others discover it.
168277

169278
## License
170279

171-
[MIT](https://choosealicense.com/licenses/mit/)
280+
This project is licensed under the [MIT License](./LICENSE)

0 commit comments

Comments
 (0)