Architecture Overview
High-level design goals, traffic flow, and trust boundaries for Mullgate.
Mullgate is a gateway-oriented proxy system. It presents route-specific or selector-driven proxy entrypoints while keeping the operator in control of how traffic is exposed, validated, and observed.
Design goals
Mullgate's documented design goals include:
- CLI-first operation
- truthful exposure and routing semantics
- support for SOCKS5, HTTP, and HTTPS-capable proxy surfaces
- standalone proxy behavior without taking over host routing
- explicit runtime and diagnostic visibility
- operator surfaces that are easy to inspect and verify
Conceptual flow
At a high level, traffic moves through the system like this:
Client
|
v
Route-specific local entrypoint
|
v
Mullgate routing layer
|
v
Selected upstream backend
|
v
Destination / observed exitThat flow matters because Mullgate is not trying to hide routing. It is trying to make routing legible.
Why exposure and access semantics matter
A major architectural point in Mullgate is that route selection follows the configured access mode. In published-routes, route selection is tied to destination bind IPs or published ports. In inline-selector, the selector in the proxy username chooses the backend.
In practice, that means the DNS or /etc/hosts mapping is part of the route contract in published-routes, while selector syntax is part of the route contract in inline-selector.
Operational surfaces
The architecture is not just a runtime. It also includes operator-facing truth surfaces such as:
mullgate proxy statusmullgate proxy doctormullgate proxy access- runtime manifests and validation metadata
Those surfaces are part of the product, not just debugging tools.
Architecture pages
There are two important architecture stories in this documentation:
- the current runtime model, which uses one shared WireGuard entry device plus many logical Mullvad exits
- the multi-exit architecture page, which explains why the redesign happened and what the live proof showed
Read Current Runtime Model first, then Multi-exit Architecture.