Getting started
N.E.V.E.R. is distributed as a container image and as release binaries.
Run the container
Wait for an HTTP endpoint and a TCP service in parallel:
docker run --rm ghcr.io/containeroo/never:latest \
--http.web.address=https://example.com \
--tcp.database.address=database.example.com:5432
The process exits successfully when both targets are ready. By default, unsuccessful checks repeat every two seconds without an attempt limit.
Define targets
Every target has a type, an identifier, and properties:
--<TYPE>.<IDENTIFIER>.<PROPERTY>=<VALUE>
Supported target types are http, tcp, and icmp. The identifier distinguishes targets of the same type.
never \
--http.frontend.address=https://frontend.example.com/ready \
--http.backend.address=https://backend.example.com/ready \
--tcp.database.address=postgres.example.com:5432
Use environment variables
Flags have equivalent environment variables. Remove the leading --, replace dots and hyphens with underscores, uppercase the name, and add the NEVER__ prefix:
--http.web.address=https://example.com
NEVER__HTTP_WEB_ADDRESS=https://example.com
Command-line flags take precedence over environment variables. See Configuration for the complete mapping.
Control retries
Use a global limit or override it for one target:
never \
--max-attempts=20 \
--http.api.address=https://example.com/ready \
--http.api.max-attempts=5 \
--tcp.database.address=database.example.com:5432 \
--tcp.database.backoff=exponential \
--tcp.database.max-interval=30s
An attempt limit of 0 means unlimited attempts.