Welcome to enq Discussions! #1
SirClappington
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
🚀 Docker Images & CI Are Live (multi-arch, semver tags)
Hey folks! Quick update on Enq (job scheduler without Redis):
We’ve set up a clean Docker publishing workflow that builds multi-arch images (linux/amd64 & linux/arm64) for both components:
enq-api – the HTTP API
enq-scheduler – the background scheduler/worker
Images are pushed on semver tags like v0.1.2 and also receive:
latest
short SHA (for pin-by-build)
Where to pull
Docker Hub: dclaywell/enq-api, dclaywell/enq-scheduler
GHCR: ghcr.io/sirclappington/enq-api, ghcr.io/sirclappington/enq-scheduler
Tip: prefer pinning to a specific vX.Y.Z tag in production.
Quick start
API
docker run -d --name enq-api
-p 8080:8080
-e ENQ_DB_URL="postgres://user:pass@host:5432/enq?sslmode=disable"
dclaywell/enq-api:latest
Scheduler
docker run -d --name enq-scheduler
-e ENQ_DB_URL="postgres://user:pass@host:5432/enq?sslmode=disable"
-e ENQ_POLL_INTERVAL_MS=1000
dclaywell/enq-scheduler:latest
services:
api:
image: dclaywell/enq-api:latest
ports: ["8080:8080"]
environment:
ENQ_DB_URL: postgres://user:pass@db:5432/enq?sslmode=disable
scheduler:
image: dclaywell/enq-scheduler:latest
depends_on: [db]
environment:
ENQ_DB_URL: postgres://user:pass@db:5432/enq?sslmode=disable
ENQ_POLL_INTERVAL_MS: "1000"
db:
image: postgres:16-alpine
environment:
POSTGRES_DB: enq
POSTGRES_USER: user
POSTGRES_PASSWORD: pass
volumes:
volumes:
enq_pg:
What’s in the CI
✅ Multi-arch builds via Buildx + QEMU
✅ Tags: vX.Y.Z, latest, and short SHA
✅ Pushes to Docker Hub and GHCR
✅ Cache configured for faster rebuilds
✅ Clean image metadata (OCI labels)
If you’re curious, the workflow lives at .github/workflows/docker-publish.yaml.
What we’d love feedback on
Defaults: sensible ENQ_POLL_INTERVAL_MS, concurrency knobs, and timeouts?
Config surface: must-have env vars you want supported out-of-the-box?
Deployment guides: which targets do you want first—Docker Compose, Kubernetes, Nomad, Fly.io, Render, ECS?
Observability: preferred metrics format? (Prometheus endpoint, OpenTelemetry, built-in health checks)
Storage: we currently avoid Redis by design; want first-class support for Postgres, MySQL, or SQLite?
Job semantics: retries/backoff, idempotency keys, dedupe windows—what’s your ideal API?
Roadmap (near-term)
Health/readiness endpoints
Structured logging + log levels
Metrics endpoint (Prometheus)
Graceful shutdown + in-flight job draining
Example clients (Go + TypeScript)
Minimal Helm chart & Compose examples
How to help
Try the images above, share logs/configs if anything feels rough.
Upvote/comment on what deployment target you need first.
File issues for missing env vars or confusing defaults.
Thanks for checking out Enq and for any feedback you throw our way! 🙌
Beta Was this translation helpful? Give feedback.
All reactions