77 lines
1.1 KiB
Markdown
77 lines
1.1 KiB
Markdown
|
|
# @uptime.link/uptimerunner
|
||
|
|
|
||
|
|
Deno-powered uptime.link runner agent. It connects to an uptime.link instance, fetches assigned
|
||
|
|
checks, executes them from the runner's network location, and reports results back.
|
||
|
|
|
||
|
|
## Install
|
||
|
|
|
||
|
|
```bash
|
||
|
|
curl -sSL https://code.foss.global/uptime.link/uptimerunner/raw/branch/main/install.sh | sudo bash
|
||
|
|
```
|
||
|
|
|
||
|
|
## Configure
|
||
|
|
|
||
|
|
```bash
|
||
|
|
sudo uptimerunner config write \
|
||
|
|
--url https://uptime.link \
|
||
|
|
--runner-id edge-1 \
|
||
|
|
--token <runner-token>
|
||
|
|
```
|
||
|
|
|
||
|
|
## Run
|
||
|
|
|
||
|
|
```bash
|
||
|
|
uptimerunner run
|
||
|
|
```
|
||
|
|
|
||
|
|
For systemd:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
sudo uptimerunner service install
|
||
|
|
sudo uptimerunner service start
|
||
|
|
```
|
||
|
|
|
||
|
|
## Runner Protocol
|
||
|
|
|
||
|
|
The runner polls:
|
||
|
|
|
||
|
|
```text
|
||
|
|
GET /api/runner/v1/checks?runnerId=<runnerId>
|
||
|
|
```
|
||
|
|
|
||
|
|
The uptime.link instance returns:
|
||
|
|
|
||
|
|
```json
|
||
|
|
{
|
||
|
|
"checks": [
|
||
|
|
{
|
||
|
|
"id": "api-health",
|
||
|
|
"type": "http",
|
||
|
|
"url": "https://api.example.com/health",
|
||
|
|
"expectedStatusCodes": [200],
|
||
|
|
"expectedBodyIncludes": "ok"
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}
|
||
|
|
```
|
||
|
|
|
||
|
|
The runner reports:
|
||
|
|
|
||
|
|
```text
|
||
|
|
POST /api/runner/v1/results
|
||
|
|
```
|
||
|
|
|
||
|
|
Supported check types:
|
||
|
|
|
||
|
|
- `http`
|
||
|
|
- `tcp`
|
||
|
|
- `assumption`
|
||
|
|
|
||
|
|
## Development
|
||
|
|
|
||
|
|
```bash
|
||
|
|
deno task check
|
||
|
|
deno task test
|
||
|
|
deno task compile
|
||
|
|
```
|