v0.2.095.4 MB
Apache-2.0
strict
core26
Caching proxy for apt archives and the snap store
pkgproxy caches packages for both apt and snapd 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, and everything fetched is cached
indefinitely. 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 SNAPPYFORCEAPIURL.
The proxy listens on port 3142 by default and keeps its cache in the snap's
persistent data directory, so the cache survives updates. On startup,
ready-to-use Acquire::http::Proxy and SNAPPYFORCEAPIURL setup snippets
are printed.
After installing, run
the Acquire::http::Proxy line to a file under /etc/apt/apt.conf.d/, and
export SNAPPYFORCEAPIURL (or add it to /etc/environment) before
restarting snapd. The service starts automatically and needs no further
configuration on the snap side.
Run
per-snap download/hit/revision counts and bandwidth saved, and the apt
pool files saving the most bandwidth.
listener and one persistent cache.
For apt, traffic is proxied between clients and upstream Debian/Ubuntu-style
package archives over plain HTTP, and everything fetched is cached
indefinitely. 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 SNAPPYFORCEAPIURL.
The proxy listens on port 3142 by default and keeps its cache in the snap's
persistent data directory, so the cache survives updates. On startup,
ready-to-use Acquire::http::Proxy and SNAPPYFORCEAPIURL setup snippets
are printed.
After installing, run
snap logs pkgproxy to fetch those snippets: addthe Acquire::http::Proxy line to a file under /etc/apt/apt.conf.d/, and
export SNAPPYFORCEAPIURL (or add it to /etc/environment) before
restarting snapd. The service starts automatically and needs no further
configuration on the snap side.
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.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 → 419 Aug 2026, 12:15 UTC
0+git13.a6eb447 (3)19 Aug 2026, 09:15 UTC
19 Aug 2026, 08:45 UTC
19 Aug 2026, 21:44 UTC
19 Aug 2026, 09:15 UTC