Dynfult

Documentation

Dynfult

A scheduler for recurring and one-off jobs.

Dynfult triggers jobs on a schedule and tracks every run. Jobs can recur on a cron expression or fire once at a future time, and each trigger calls a URL or enqueues work for your services.

Failed runs retry with backoff and, if they keep failing, move to a dead-letter list. A full run history — status, duration, output — is kept so you can audit what happened.

#Installation

Dynfult ships as one static binary. Place it on your host and start it:

# download and start
$ curl -sSL get.webtest.stas.me/install | sh
$ dynfult serve --data /var/lib/dynfult
→ listening on :5600 · api ready
By default Dynfult binds to 127.0.0.1:5600. Put it behind your own reverse proxy to expose it over TLS.

#Quickstart

# schedule a nightly job
$ curl -X POST :5600/v1/jobs \
    -d '{"cron":"0 3 * * *","url":"..."}'
→ scheduled · id job_2

# see recent runs
$ curl :5600/v1/jobs/job_2/runs

#Configuration

Configure with flags, environment variables, or a small YAML file. Flags take precedence.

# dynfult.yaml
data:    /var/lib/dynfult
listen:  127.0.0.1:5600
log:     info
retries:
  max: 3

#API reference

Every route lives under /v1. Requests without a valid token return 401.

Method & pathDescription
POST /v1/jobsRegister a scheduled or one-off job.
GET /v1/jobs/{id}/runsList a job's run history.
POST /v1/jobs/{id}/triggerRun a job now.
DELETE /v1/jobs/{id}Remove a job.
GET /healthLiveness probe. Returns 200 when ready.

#CLI

The dynfult binary is both the server and the client.

CommandDescription
dynfult serveStart the scheduler.
dynfult jobs lsList jobs.
dynfult trigger <id>Run a job now.
dynfult statusShow upcoming runs.