2.1K
PulseQuay is an open-source URL monitoring platform built with Go microservices and a React/TypeScript frontend. It continuously checks your targets for HTTP status, DNS resolution, TCP connectivity, TLS validity, certificate expiry, and response body patterns — then alerts you the moment something goes wrong.
Key features:
🔗 Live demo: https://pulsequay.zecevic-ninja.com
This guide explains how to add a checker to your workspace via the PulseQuay UI and then deploy the checker container using the public Docker Hub image.
A checker is a lightweight agent that performs uptime/latency checks against your monitored targets. Running a checker on a separate machine lets you monitor from a different network location or region.
/workspace/checkers).eu-west-checker)http://203.0.113.10:8081)HMAC_SECRET):
If you lose the key, a SuperAdmin can rotate it. You will need to restart your checker container with the new secret after rotation.
On the machine that will run the checker:
docker pull dzecevic/pulsequay-checker:latest
Replace
dzecevic/pulsequay-checker:latestwith the exact Docker Hub image path if you are using a pinned version tag.
Use the HMAC_SECRET you copied in Step 1:
docker run -d \
--name pulsequay-checker \
--restart unless-stopped \
-p 8081:8081 \
-e APP_ENV=production \
-e LOG_LEVEL=info \
-e CHECKER_ADDR=:8081 \
-e HMAC_SECRET=<paste-your-key-here> \
-e HMAC_ALLOWED_SKEW=30s \
-e ALLOW_PRIVATE_TARGETS=false \
dzecevic/pulsequay-checker:latest
Environment variables:
| Variable | Required | Description |
|---|---|---|
HMAC_SECRET | yes | The one-time key shown after registration in Step 1 |
CHECKER_ADDR | yes | Address/port the checker listens on (default :8081) |
HMAC_ALLOWED_SKEW | optional | Clock-skew tolerance for HMAC validation (default 30s) |
ALLOW_PRIVATE_TARGETS | optional | Allow checking private/internal IP ranges (default false) |
LOG_LEVEL | optional | debug, info, warn, error (default info) |
APP_ENV | optional | production or development (default production) |
On the checker machine:
curl http://localhost:8081/healthz
# expected: {"status":"ok"}
From another machine (confirm the PulseQuay API can reach it):
curl http://<checker-public-ip>:8081/healthz
# expected: {"status":"ok"}
The API polls every registered checker every 30 seconds. After about 30 seconds:
/workspace/checkers).When creating or editing a monitored target, select your new checker from the Checker dropdown. Targets that have no checker assigned fall back to the workspace default checker.
docker pull dzecevic/pulsequay-checker:latest
docker stop pulsequay-checker && docker rm pulsequay-checker
# Re-run the docker run command from Step 3 with the same HMAC_SECRET
docker logs -f pulsequay-checker
Content type
Image
Digest
sha256:2c62c0f5b…
Size
9 MB
Last updated
29 days ago
docker pull dzecevic/pulsequay-checker