Reference
Configuration
Canonical configuration concepts and input surfaces used by Mullgate.
This page summarizes the configuration model that appears throughout the usage and architecture documentation.
Major configuration areas
Account and credentials
Required non-interactive setup inputs include:
- Mullvad account number
- proxy username
- proxy password
- one or more route locations
Routing inventory
The architecture material references a canonical routed config in routing.locations[].
That route inventory is what drives:
- local entrypoint naming
- bind IP allocation
- rendered route-specific backends
- runtime status and manifests
Exposure configuration
Exposure settings define how routes are reachable.
Key inputs include:
- exposure mode
- base domain
- bind host
- per-route bind IPs
- listener ports for SOCKS5, HTTP, and HTTPS
HTTPS listener inputs
When HTTPS-capable proxy support is configured, the docs reference:
- HTTPS port
- HTTPS certificate path
- HTTPS key path
Mullvad endpoints
Optional setup inputs include:
- provisioning endpoint URL
- relay metadata endpoint URL
Non-interactive environment variables
The usage guide documents these variables:
MULLGATE_ACCOUNT_NUMBERMULLGATE_PROXY_USERNAMEMULLGATE_PROXY_PASSWORDMULLGATE_LOCATIONMULLGATE_LOCATIONSMULLGATE_DEVICE_NAMEMULLGATE_BIND_HOSTMULLGATE_ROUTE_BIND_IPSMULLGATE_EXPOSURE_MODEMULLGATE_EXPOSURE_BASE_DOMAINMULLGATE_SOCKS_PORTMULLGATE_HTTP_PORTMULLGATE_HTTPS_PORTMULLGATE_HTTPS_CERT_PATHMULLGATE_HTTPS_KEY_PATHMULLGATE_MULLVAD_WG_URLMULLGATE_MULLVAD_RELAYS_URL
Rules worth remembering
MULLGATE_LOCATIONis shorthand for route 1MULLGATE_LOCATIONSis ordered and comma-separatedMULLGATE_ROUTE_BIND_IPSis ordered and comma-separated- non-loopback exposure requires one explicit bind IP per routed location
- multi-route non-loopback exposure requires distinct bind IPs
- CLI commands are the preferred way to mutate configuration state
Operational guidance
Change configuration through Mullgate CLI commands where possible instead of editing generated JSON by hand.
For operators, the important validation loop is:
- inspect with
mullgate config exposure - review hostnames with
mullgate config hosts - refresh derived state with
mullgate config validate --refresh - confirm runtime with
mullgate statusandmullgate doctor