Zond internal health probe bridge for services behind SSO proxies In use
Health checks for self-hosted services behind an SSO proxy, without a monitoring login.
Your monitor asks https://zond.example.com/health/metube. zond, running on the same Docker network as metube, sends metube a plain HTTP GET and answers 200 ok or 503 unreachable.
The problem, in one picture
302 to the login page for every one of them. zond checks each service from beside it instead.Ask zond
Set what each service answers, pick what your monitor asks, and read zond's reply.
zond answers
Answers are ok, unreachable and target names. No internal URLs, no response bodies, no tokens.
Quick start
Add zond to the Compose file that runs your services, so it shares their network:
compose.yml
# compose.yml
services:
zond:
image: ghcr.io/spy4x/zond:latest
restart: unless-stopped
ports: ["8080:8080"]
volumes: ["./zond.yml:/app/zond.yml:ro,z"]zond.yml
# zond.yml
targets:
- name: metube
url: http://hl-metube:8081/Start it and ask it
docker compose up -d && curl http://localhost:8080/health/metube # okPoint your monitor at it
Then publish zond through your reverse proxy, outside the SSO, and point your monitor at it.
Gatus
# Gatus
- name: Metube
url: "https://zond.example.com/health/metube"
conditions:
- "[STATUS] == 200"Use it if
- An SSO proxy stands between your monitor and your self-hosted services.
Skip it if
- Your monitor already runs inside that network, or you need response times, metrics or content checks.
The story behind it
Two ways to use it
Use it yourself
The code is on GitHub under the MIT licence.
Have me build it
Need something like this for your team? That's my day job.
