You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -11,6 +13,36 @@ No auth required. No infrastructure to manage. Just simple, reliable task schedu
11
13
12
14
Schedy lets you schedule HTTP POST requests to any endpoint at any time, with custom headers and payloads. Perfect for webhooks, bots, reminders, integrations, and all sorts of automation—without the bloat.
13
15
16
+
## 🐳 Try Schedy in 1 Minute
17
+
18
+
You can run Schedy instantly using Docker from either GitHub Container Registry or Docker Hub:
19
+
20
+
**From GitHub Container Registry:**
21
+
22
+
```sh
23
+
docker run -p 8080:8080 ghcr.io/ksamirdev/schedy:latest
24
+
```
25
+
26
+
**From Docker Hub:**
27
+
28
+
```sh
29
+
docker run -p 8080:8080 ksamirdev/schedy:latest
30
+
```
31
+
32
+
You can also use a specific version tag (e.g., `v0.0.1`):
33
+
34
+
```sh
35
+
docker run -p 8080:8080 ghcr.io/ksamirdev/schedy:v0.0.1
36
+
# or
37
+
docker run -p 8080:8080 ksamirdev/schedy:v0.0.1
38
+
```
39
+
40
+
Set an API key for security (optional but recommended):
41
+
42
+
```sh
43
+
docker run -p 8080:8080 -e SCHEDY_API_KEY=your-secret ghcr.io/ksamirdev/schedy:latest
44
+
```
45
+
14
46
---
15
47
16
48
## Features
@@ -33,22 +65,24 @@ Head to [Releases](https://github.com/ksamirdev/schedy/releases) and grab the la
33
65
### 2. Run
34
66
35
67
```bash
36
-
./schedy --port 8081
68
+
SCHEDY_API_KEY=your-secret ./schedy --port 8081
37
69
```
38
70
39
71
Schedy will listen on the port you specify with `--port` (default: `8080`).
72
+
If you set the `SCHEDY_API_KEY` environment variable, all API endpoints require the `X-API-Key` header.
40
73
41
74
---
42
75
43
76
## API
44
77
45
78
### Schedule a Task
46
79
47
-
Send a POST to `/tasks`:
80
+
Send a POST to `/tasks` (requires `X-API-Key` header if enabled):
48
81
49
82
```bash
50
83
curl -X POST http://localhost:8080/tasks \
51
84
-H "Content-Type: application/json" \
85
+
-H "X-API-Key: your-secret" \
52
86
-d '{
53
87
"execute_at": "2025-05-26T15:00:00Z",
54
88
"url": "https://webhook.site/your-endpoint",
@@ -58,6 +92,7 @@ curl -X POST http://localhost:8080/tasks \
58
92
```
59
93
60
94
#### Request Fields
95
+
61
96
-`execute_at`: When to run (RFC3339, UTC)
62
97
-`url`: Where to POST
63
98
-`headers`: (optional) Map of HTTP headers
@@ -66,9 +101,11 @@ curl -X POST http://localhost:8080/tasks \
66
101
#### Examples
67
102
68
103
**JSON payload (default):**
104
+
69
105
```bash
70
106
curl -X POST http://localhost:8080/tasks \
71
107
-H "Content-Type: application/json" \
108
+
-H "X-API-Key: your-secret" \
72
109
-d '{
73
110
"execute_at": "2025-05-26T15:00:00Z",
74
111
"url": "https://example.com/webhook",
@@ -77,9 +114,11 @@ curl -X POST http://localhost:8080/tasks \
77
114
```
78
115
79
116
**Form data:**
117
+
80
118
```bash
81
119
curl -X POST http://localhost:8080/tasks \
82
120
-H "Content-Type: application/json" \
121
+
-H "X-API-Key: your-secret" \
83
122
-d '{
84
123
"execute_at": "2025-05-26T15:00:00Z",
85
124
"url": "https://example.com/form",
@@ -89,9 +128,11 @@ curl -X POST http://localhost:8080/tasks \
89
128
```
90
129
91
130
**Plain text:**
131
+
92
132
```bash
93
133
curl -X POST http://localhost:8080/tasks \
94
134
-H "Content-Type: application/json" \
135
+
-H "X-API-Key: your-secret" \
95
136
-d '{
96
137
"execute_at": "2025-05-26T15:00:00Z",
97
138
"url": "https://example.com/text",
@@ -100,9 +141,21 @@ curl -X POST http://localhost:8080/tasks \
100
141
}'
101
142
```
102
143
144
+
### List Scheduled Tasks
145
+
146
+
Send a GET to `/tasks/list` (requires `X-API-Key` header if enabled):
147
+
148
+
```bash
149
+
curl -X GET http://localhost:8080/tasks/list \
150
+
-H "X-API-Key: your-secret"
151
+
```
152
+
153
+
Returns a JSON array of all scheduled tasks.
154
+
103
155
---
104
156
105
157
## Why Schedy?
158
+
106
159
- No cron, no YAML, no UI, no cloud lock-in
107
160
- Just HTTP, just works
108
161
- For hackers, tinkerers, and anyone who wants to automate the weird stuff
0 commit comments