{"id":40996778,"url":"https://github.com/canonical/aproxy-operator","last_synced_at":"2026-04-28T08:05:08.168Z","repository":{"id":314406900,"uuid":"1054182615","full_name":"canonical/aproxy-operator","owner":"canonical","description":"A subordinate charm that transparently intercepts per-unit HTTP/HTTPS traffic and forwards it to a target proxy.","archived":false,"fork":false,"pushed_at":"2026-04-22T18:13:39.000Z","size":3006,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-22T19:31:07.825Z","etag":null,"topics":["charm","platform-engineering","product-aproxy","squad-apac"],"latest_commit_sha":null,"homepage":"https://charmhub.io/aproxy","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/canonical.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-10T13:32:57.000Z","updated_at":"2026-04-22T18:13:42.000Z","dependencies_parsed_at":"2025-09-12T09:35:47.570Z","dependency_job_id":"48a88ddb-7590-4c22-b1f2-538af76c483b","html_url":"https://github.com/canonical/aproxy-operator","commit_stats":null,"previous_names":["canonical/aproxy-operator"],"tags_count":82,"template":false,"template_full_name":"canonical/platform-engineering-charm-template","purl":"pkg:github/canonical/aproxy-operator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/canonical%2Faproxy-operator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/canonical%2Faproxy-operator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/canonical%2Faproxy-operator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/canonical%2Faproxy-operator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/canonical","download_url":"https://codeload.github.com/canonical/aproxy-operator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/canonical%2Faproxy-operator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32371706,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-27T20:07:02.737Z","status":"online","status_checked_at":"2026-04-28T02:00:07.250Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["charm","platform-engineering","product-aproxy","squad-apac"],"created_at":"2026-01-22T08:13:48.995Z","updated_at":"2026-04-28T08:05:08.119Z","avatar_url":"https://github.com/canonical.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- vale Canonical.007-Headings-sentence-case = NO --\u003e\n\n# Aproxy subordinate charm\n\n\u003c!-- vale Canonical.007-Headings-sentence-case = YES --\u003e\n\n[![CharmHub Badge](https://charmhub.io/aproxy/badge.svg)](https://charmhub.io/aproxy)\n[![Publish to edge](https://github.com/canonical/aproxy-operator/actions/workflows/publish_charm.yaml/badge.svg)](https://github.com/canonical/aproxy-operator/actions/workflows/publish_charm.yaml)\n[![Promote charm](https://github.com/canonical/aproxy-operator/actions/workflows/promote_charm.yaml/badge.svg)](https://github.com/canonical/aproxy-operator/actions/workflows/promote_charm.yaml)\n[![Discourse Status](https://img.shields.io/discourse/status?server=https%3A%2F%2Fdiscourse.charmhub.io\u0026style=flat\u0026label=CharmHub%20Discourse)](https://discourse.charmhub.io)\n\nA subordinate charm that transparently intercepts per-unit TCP traffic and forwards it to a target proxy. It deployes the [Aproxy](https://snapcraft.io/aproxy) snap application.\n\nLike any Juju charm, this charm supports one-line deployment, configuration, integration, scaling, and more. For Charmed Aproxy, this includes:\n\n- Transparent TCP interception via nftables REDIRECT\n- Per-unit forwarding to a configured target proxy\n- Configurable domains to be excluded from interception and intercept ports\n\nFor information about how to deploy, integrate, and manage this charm, see the Official [aproxy-operator Documentation](https://charmhub.io/aproxy).\n\n## Get started\n\nBelow is a guide on how to quickly prepare a Juju environment, deploy and relate aproxy to a principal charm, and operate the charm.\n\n### Set up\n\nEnsure you have a working [Juju](https://documentation.ubuntu.com/juju/latest/tutorial/) environment.  \nFor quick local testing, you can use [Multipass](https://canonical.com/multipass/install).\n\n### Deploy\n\nTo 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.\n\n```bash\njuju deploy ubuntu\njuju deploy aproxy\njuju integrate aproxy ubuntu\njuju config aproxy proxy-address=$TARGET_PROXY:$TARGET_PORT\n```\n\n### Basic operations\n\nUpdate the target proxy address:\n\n```bash\njuju config aproxy proxy-address=$MODIFIED_PROXY:$MODIFIED_PORT\n```\n\nExclude domains from interception:\n\n```bash\njuju config aproxy exclude-addresses-from-proxy=$EXCLUDED_ADDRESS\n```\n\nStop the aproxy charm's interception of traffic (which disables nftables redirection):\n\n```bash\njuju run aproxy/0 stop\n```\n\nSee the [charmcraft.yaml](https://github.com/canonical/aproxy-operator/blob/main/charmcraft.yaml) file for all configuration options and actions.\n\n## Integrations\n\nThe charm is designed to run as a subordinate and integrates with any principal charm that generates outbound TCP traffic.\nRelations enable it to transparently forward requests through the configured proxy without modifying the principal charm itself.\n\nSee the Charmhub documentation on [integrations](https://charmhub.io/aproxy/integrations) for more details.\n\n## Learn more\n\n- [Read more](https://charmhub.io/aproxy)\n- [Troubleshooting](https://matrix.to/#/#charmhub-charmdev:ubuntu.com)\n\n## Project and community\n\n- [Issues](https://github.com/canonical/aproxy-operator/issues)\n- [Contributing](https://github.com/canonical/aproxy-operator/blob/main/CONTRIBUTING.md)\n- [Matrix](https://matrix.to/#/#charmhub-charmdev:ubuntu.com)\n- [Launchpad](https://launchpad.net/~canonical-is-devops)\n\n## Licensing and trademark\n\nThis charm is licensed under the [Apache License, Version 2.0](https://github.com/canonical/aproxy-operator?tab=Apache-2.0-1-ov-file). Copyright 2025 Canonical Ltd.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcanonical%2Faproxy-operator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcanonical%2Faproxy-operator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcanonical%2Faproxy-operator/lists"}