Skip to main content

Config priority

Settings are resolved in this order (highest wins):

File structure

Duration values

All duration fields accept a suffix (1s, 5m, 2h) or a bare integer (seconds):

proxyProviders

Named groups of external proxy IPs with shared authentication and an optional region tag. At least one provider is required — IPs are declared here and referenced by pools.

ipPools

Named collections of proxy IPs referenced by targets. Pools decouple the IP list from the target config — multiple targets can reference the same pool while maintaining independent rotation state.

ipPools fields

ipRequests fields

Multiple ipRequests entries combine IPs from different providers into one pool:

targets

The core routing config. Each inbound request is matched against the target list top-to-bottom — the first regex match handles the request. At least one target is required.

identity

Attaches a persistent browser persona to each (IP, target) pair. Disabled by default — add the identity: block to enable.
See Client Identities for the full concept guide.

auth

Authentication is disabled by default. When enabled, every proxy request must include an X-Proxy-Hopper-Auth: Bearer <token> header. See the Authentication section for full configuration guides.

authServer

Configuration for the external token server that backs managed auth — required only if at least one target sets authManaged: true. Lives under server.authServer (nested inside the server: block, not top-level).
Unlike the rest of server:, authServer has no PROXY_HOPPER_AUTH_SERVER_* environment variables and no CLI flags — it’s YAML-only.
See Token Server for deployment and operations, and Building a Token Server for implementing one.

server

All server fields can be set in three places — see Config priority. See Environment Variables for the full env var reference.

CLI flags

CLI flags override all other sources and cover the most operationally useful overrides: