A subordinate charm that transparently intercepts per-unit TCP traffic and forwards it to a target proxy. It deployes the Aproxy snap application.
Like any Juju charm, this charm supports one-line deployment, configuration, integration, scaling, and more. For Charmed Aproxy, this includes:
- Transparent TCP interception via nftables REDIRECT
- Per-unit forwarding to a configured target proxy
- Configurable domains to be excluded from interception and intercept ports
For information about how to deploy, integrate, and manage this charm, see the Official aproxy-operator Documentation.
Below is a guide on how to quickly prepare a Juju environment, deploy and relate aproxy to a principal charm, and operate the charm.
Ensure you have a working Juju environment.
For quick local testing, you can use Multipass.
To deploy aproxy alongside a principal charm (for example, Ubuntu), you need to integrate the principal charm with aproxy. For successful proxy forwarding, you also need to configure the target proxy address.
juju deploy ubuntu
juju deploy aproxy
juju integrate aproxy ubuntu
juju config aproxy proxy-address=$TARGET_PROXY:$TARGET_PORT
Update the target proxy address:
juju config aproxy proxy-address=$MODIFIED_PROXY:$MODIFIED_PORT
Exclude domains from interception:
juju config aproxy exclude-addresses-from-proxy=$EXCLUDED_ADDRESS
Stop the aproxy charm's interception of traffic (which disables nftables redirection):
juju run aproxy/0 stop
See the charmcraft.yaml file for all configuration options and actions.
The charm is designed to run as a subordinate and integrates with any principal charm that generates outbound TCP traffic. Relations enable it to transparently forward requests through the configured proxy without modifying the principal charm itself.
See the Charmhub documentation on integrations for more details.
This charm is licensed under the Apache License, Version 2.0. Copyright 2025 Canonical Ltd.