Skip to content

Getting Started

Use one of these supported install paths for Wakeplane. The canonical repository is github.com/justyn-clark/wakeplane.

Operator warning: installability does not change the security model. Wakeplane still has no auth or RBAC. Bind it to localhost, a trusted subnet, VPN, Tailscale, or a reverse-proxied private network.

Preferred for operators. Tagged releases publish platform archives and a checksum file on the GitHub Releases page.

Published for v0.2.0-beta.1:

  • wakeplane_<version>_darwin_arm64.tar.gz
  • wakeplane_<version>_linux_amd64.tar.gz
  • wakeplane_<version>_linux_arm64.tar.gz
  • checksums.txt

Example verification flow:

Terminal window
curl -fsSLO https://github.com/justyn-clark/wakeplane/releases/download/v0.2.0-beta.1/wakeplane_0.2.0-beta.1_linux_amd64.tar.gz
curl -fsSLO https://github.com/justyn-clark/wakeplane/releases/download/v0.2.0-beta.1/checksums.txt
grep 'wakeplane_0.2.0-beta.1_linux_amd64.tar.gz' checksums.txt | sha256sum -c -
tar -xzf wakeplane_0.2.0-beta.1_linux_amd64.tar.gz
./wakeplane version

Each archive contains both wakeplane and wakeplaned.

The repo currently declares go 1.25.0 in go.mod.

Terminal window
go install github.com/justyn-clark/wakeplane/cmd/wakeplane@v0.2.0-beta.1
go install github.com/justyn-clark/wakeplane/cmd/wakeplaned@v0.2.0-beta.1
wakeplane version
Terminal window
git clone https://github.com/justyn-clark/wakeplane.git
cd wakeplane
go build ./cmd/wakeplane
go build ./cmd/wakeplaned
./wakeplane version

Wakeplane is a durable scheduling control plane. This guide gets you from nothing to a running daemon with a real schedule in under five minutes.

Terminal window
WAKEPLANE_DB_PATH=./wakeplane.db \
WAKEPLANE_HTTP_ADDR=:8080 \
WAKEPLANE_WORKER_ID=wrk_local \
wakeplane serve

The daemon prints structured JSON logs to stdout. Verify it is healthy:

Terminal window
curl http://localhost:8080/healthz
# {"ok":true}
curl http://localhost:8080/readyz
# {"ok":true,"storage":"ok"}

Use the shipped HTTP example manifest:

name: health-check
enabled: true
timezone: UTC
schedule:
kind: interval
every_seconds: 300
target:
kind: http
method: GET
url: https://api.example.com/healthz
policy:
overlap: forbid
misfire: skip
timeout_seconds: 30
max_concurrency: 1
retry:
max_attempts: 3
strategy: exponential
initial_delay_seconds: 10
max_delay_seconds: 120

Register the shipped example file:

Terminal window
wakeplane schedule create -f ./examples/health-check-http.yaml
Terminal window
wakeplane schedule list
wakeplane schedule get <id>
wakeplane run list
wakeplane run get <id>

Check operational status:

Terminal window
curl http://localhost:8080/v1/status

The status response shows how many runs are due, running, failed, retry queued, or dead-lettered.

Terminal window
wakeplane schedule trigger <id>

This creates a run immediately without changing the schedule’s normal cadence. The run has a manual:<run_id> occurrence key that is separate from scheduled occurrences.

Terminal window
wakeplane schedule pause <id>
wakeplane schedule resume <id>

Pausing sets enabled=false on the schedule. The planner stops materializing new occurrences. Existing runs are not cancelled.

The health and readiness probes are enough for the initial install smoke test. Create schedules with the API or CLI after you have chosen a working directory and manifest location.