I uploaded squid-deb-proxy into Debian unstable today and its in the NEW queue. I created it back in the days of Ubuntu 10.04 and some people voiced interest in having it in Debian as well so I spend a bit of time to get it customized for Debian.
Squid-deb-proxy uses the well known squid proxy with a custom configuration to cache deb package and Indexfiles (like Packages.gz) that will allow caching from the default archives and mirrors and reject anything else by default.
The basic philosophy is that “it just works”. You run on your server:
root@server# apt-get install squid-deb-proxy
and on your clients:
root@client# apt-get install squid-deb-proxy-client
and that’s it. It does not require any fiddling with configuration (unless you want to 😉 ). The default will let you connect to .debian.org and nothing else.
The server will announce itself via avahi as _apt_proxy._tcp and the
client will hook into apt to use Acquire::http::ProxyAutoDetect. The
client is useful for other servers that announce themself via avahi.
Packaging was a bit more work than anticipated because there is a bit of setup and teardown work in the initscript. For Debian as sysvinit script was needed, Ubuntu uses upstart so it took a bit of refactoring to extract the code into a common helper.
If you want to try it now, its available via:
$ bzr branch lp:squid-deb-proxy $ cd squid-deb-proxy $ bzr-buildpackage
and in unstable once it leaves the NEW queue.