Versionv0.6.1
Revision26
Size6.1 MB
LicenseApache-2.0
Confinementstrict
Basecore26

Caching proxy for apt archives, the snap store, and go modules


pkgproxy caches packages for apt, snapd, and go module clients, sharing
one listener and one persistent cache.

For apt, traffic is proxied between clients and upstream Debian/Ubuntu-style
package archives over plain HTTP. Pool package content is cached
indefinitely; suite metadata (Release/InRelease/Packages/Sources), which
archives republish regularly, is instead revalidated against the origin
and the suite's own declared hashes, with a pkgproxyctl command to evict
an entry immediately. Requests are normalized across equivalent mirrors,
so that many mirror hosts serving the same archive collapse onto a single
backing-store entry. Point apt at it with Acquire::http::Proxy (or the
httpproxy environment variable) and keep your sources.list entries naming
their real http:// mirrors. HTTPS-only apt sources still reach their real
host through a blind CONNECT tunnel (port 443 only) rather than being
cached.

For snapd, requests are relayed to the real snap store while .snap
downloads and assertions are cached, content-addressed by sha3-384 with
hash-verify-before-cache. Point snapd at it with SNAPPY
FORCEAPIURL.

For go modules, pkgproxy acts as a reverse-origin GOPROXY, chaining to an
upstream module proxy (proxy.golang.org by default) on a cache miss. Point
the go command at it by setting GOPROXY.

The proxy listens on port 3142 by default and keeps its cache in the snap's
persistent data directory, so the cache survives updates. The service
starts automatically and needs no further configuration on the snap side.

Run pkgproxy.pkgproxyctl setup apt, setup snap, or setup go for
copy-paste-ready instructions on pointing that client at pkgproxy, or setup lxd to configure an LXD profile so containers route their apt,
snap, and go module traffic through it too. Run on a terminal for
human-friendly guidance, or pipe to sh for a one-liner that applies the
config directly, e.g. pkgproxy.pkgproxyctl setup apt | sh.

Run pkgproxy.pkgproxyctl stats to see what the cache is actually doing:
per-snap download/hit/revision counts and bandwidth saved, and the apt
pool files saving the most bandwidth.

Update History

v0.6.0 (24) → v0.6.1 (26)
13 Sept 2026, 17:15 UTC
v0.5.1 (20) → v0.6.0 (24)
2 Sept 2026, 07:00 UTC
v0.5.0 (18) → v0.5.1 (20)
25 Aug 2026, 19:15 UTC
v0.2.1 (11) → v0.5.0 (18)
25 Aug 2026, 11:30 UTC
v0.2.0 (9) → v0.2.1 (11)
24 Aug 2026, 08:00 UTC
v0.1.0 (6) → v0.2.0 (9)
20 Aug 2026, 07:00 UTC
0+git13.a6eb447 (4) → v0.1.0 (6)
19 Aug 2026, 13:30 UTC
0+git13.a6eb447 3 → 4
19 Aug 2026, 12:15 UTC
0+git13.a6eb447 (3)
19 Aug 2026, 09:15 UTC

Published19 Aug 2026, 08:45 UTC

Last updated13 Sept 2026, 16:50 UTC

First seen19 Aug 2026, 09:15 UTC