Skip to content

Commit a160087

Browse files
committed
update readme with head
1 parent 32be356 commit a160087

1 file changed

Lines changed: 82 additions & 22 deletions

File tree

Lines changed: 82 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,56 +1,116 @@
11
# WoL Dockerized
22

3-
WoL Dockerized is a Docker Container that allows you to start requested Docker Containers.
4-
It also stops Containers after a threshold of Inactivity.
3+
<p align="center">
4+
🖥️ On-Demand Docker Orchestration · Auto-Stop Inactive Containers · HTTP & WebSocket Interface
5+
</p>
6+
7+
<div align="center">
8+
<a href="https://github.com/codeshelldev/wol-dockerized/releases">
9+
<img
10+
src="https://img.shields.io/github/v/release/codeshelldev/wol-dockerized?sort=semver&logo=github&label=Release"
11+
alt="GitHub release"
12+
>
13+
</a>
14+
<a href="https://github.com/codeshelldev/wol-dockerized/stargazers">
15+
<img
16+
src="https://img.shields.io/github/stars/codeshelldev/wol-dockerized?style=flat&logo=github&label=Stars"
17+
alt="GitHub stars"
18+
>
19+
</a>
20+
<a href="https://github.com/codeshelldev/wol-dockerized/pkgs/container/wol-dockerized">
21+
<img
22+
src="https://ghcr-badge.egpl.dev/codeshelldev/wol-dockerized/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-dockerized/pkgs/container/wol-dockerized">
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+
---
41+
42+
## Features
43+
44+
- Start Docker containers via simple HTTP requests.
45+
- Automatically stop inactive containers.
46+
- Integrates with [WoL-Redirect](https://github.com/codeshelldev/wol-redirect) for a graphical interface.
47+
- Provides real-time process updates via WebSocket.
548

649
## Installation
750

8-
Get the latest `docker-compose.yaml` file:
51+
1. Get the latest `docker-compose.yaml` file:
952

10-
```yaml
53+
```
1154
{{{ #://docker-compose.yaml }}}
1255
```
1356

14-
```bash
57+
2. Start the container:
58+
59+
```
1560
docker compose up -d
1661
```
1762

18-
Combine with [WoL-Redirect](https://github.com/codeshelldev/wol-redirect) for a graphical interface.
63+
3. Optionally, combine with [WoL-Redirect](https://github.com/codeshelldev/wol-redirect) for a web interface.
1964

2065
## Setup
2166

22-
### Auto-stop
67+
### Auto Stop
68+
69+
To enable automatic stopping of containers after a period of inactivity, you must redirect requests to:
2370

24-
If you want your Docker Containers to automatically stop after a certain Inactivity Threshold you will have to somehow redirect requests to said service
25-
through `http://localhost:7777/endpoint`.
71+
'''
72+
http://wol-dockerized:7777/activity
73+
'''
2674

2775
> [!NOTE]
28-
> This is currently not that simple
29-
> you cannot just redirect to `/endpoint`,
30-
> you will have to use a _forward auth_ middleware
31-
> this means `wol-dockerized` currently just responds with 200 OK
76+
> This is currently not straightforward. You cannot just redirect to `/activity`. You need to use a _forward auth_ middleware.
77+
> Currently, `wol-dockerized` will respond with `200 OK`.
3278
33-
#### Traefik
79+
### Traefik Integration
3480

35-
Look at [forward auth](https://doc.traefik.io/traefik/middlewares/http/forwardauth/)
81+
See [Traefik Forward Auth Middleware](https://doc.traefik.io/traefik/middlewares/http/forwardauth/) for details on how to integrate.
3682

3783
## Usage
3884

39-
Start Container with `query`: `jellyfin.mydomain.com`:
85+
Start a container by specifying a `query`, for example: `jellyfin.mydomain.com`:
4086

41-
```bash
42-
curl -X POST -H "Content-Type: application/json" -d '{"query": "jellyfin.mydomain.com"}' http://localhost:7777
4387
```
88+
curl -X POST -H "Content-Type: application/json" -d '{"query": "jellyfin.mydomain.com"}' http://wol-dockerized:7777/wake
89+
```
90+
91+
Example `docker-compose` configuration for the container:
4492

45-
```yaml
93+
```
4694
{{{ #://examples/jellyfin.docker-compose.yaml }}}
4795
```
4896

97+
**WoL Dockerized** will respond with a `client_id`, which can be used to establish a **WebSocket connection** at:
98+
99+
```
100+
ws://wol-dockerized:7777/ws
101+
```
102+
103+
The WebSocket sends updates for each step of the process. The response contains:
104+
105+
- `success`: `true` if the process finished successfully.
106+
- `error`: `true` if the process failed.
107+
- `message`: descriptive information about what happened.
108+
49109
## Contributing
50110

51-
Found a bug or have new ideas or enhancements for this Project?
52-
Feel free to open up an issue or create a Pull Request!
111+
Found a bug or have ideas for new features?
112+
Feel free to open an issue or submit a Pull Request!
53113

54114
## License
55115

56-
This project is licensed under the [MIT License](./LICENSE).
116+
This project is licensed under the [MIT License](./LICENSE)

0 commit comments

Comments
 (0)