Guides
Getting started
Run the server
pulse is a single binary (pulsed) in front of PostgreSQL. Pick one:
Docker Compose — Postgres included, no clone needed:
curl -fsSL https://raw.githubusercontent.com/bete7512/pulse/main/docker-compose.yml -o docker-compose.yml
docker compose upPlain Docker — bring your own Postgres:
docker run -p 50051:50051 \
-e DB_HOST=postgres://user:pass@host:5432/pulse \
bete7512/pulseFrom source:
git clone https://github.com/bete7512/pulse && cd pulse
echo 'DB_HOST=postgres://user:pass@localhost:5432/pulse' > .env
make migrate_up && make runMigrations run automatically on boot; the server listens on :50051.
Configuration
| variable | required | description |
|---|---|---|
DB_HOST | yes | Postgres URL |
PULSE_GRPC_ADDR | no | listen port (default 50051) |
PULSE_AUTH_USERS | no | "user:pass,user:$2a$10$…" — plaintext or bcrypt; unset = open |
PULSE_TLS_CERT / PULSE_TLS_KEY | no | serve TLS from this keypair (both or neither) |
First job
go install github.com/bete7512/pulse/cli/pulse@latest
pulse submit hello '{"msg":"world"}'
pulse jobs listThe job sits PENDING until a worker registers a handler for the hello topic — see
Using the SDK. A complete runnable worker lives in
examples/main.go.