├── Dockerfile ├── Makefile ├── README.md ├── extra-sources.acl └── start.sh /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:trusty 2 | MAINTAINER Panagiotis Moustafellos 3 | 4 | ENV DEBIAN_FRONTEND noninteractive 5 | 6 | RUN apt-get update && \ 7 | apt-get install -y --no-install-recommends \ 8 | squid-deb-proxy squid-deb-proxy-client avahi-daemon avahi-utils && \ 9 | apt-get clean && \ 10 | rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \ 11 | ln -sf /cachedir /var/cache/squid-deb-proxy && \ 12 | ln -sf /dev/stdout /var/log/squid-deb-proxy/access.log && \ 13 | ln -sf /dev/stdout /var/log/squid-deb-proxy/store.log &&\ 14 | ln -sf /dev/stdout /var/log/squid-deb-proxy/cache.log 15 | 16 | COPY extra-sources.acl /etc/squid-deb-proxy/mirror-dstdomain.acl.d/20-extra-sources.acl 17 | COPY start.sh /start.sh 18 | 19 | RUN chmod +x /start.sh 20 | 21 | VOLUME ["/cachedir"] 22 | 23 | EXPOSE 8000 24 | EXPOSE 5353/udp 25 | 26 | LABEL SERVICE_NAME="squid-deb-proxy" 27 | LABEL SERVICE_TAGS="apt-proxy,apt-cache" 28 | 29 | ENTRYPOINT ["/start.sh"] 30 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | container: 2 | docker build -t pmoust/squid-deb-proxy . 3 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | squid-deb-proxy Docker container 2 | ================================ 3 | 4 | [![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/pmoust/squid-deb-proxy?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) 5 | 6 | squid-deb-proxy provides an easy wrapper over squid3 to enable package proxy caching for your organisation/LAN. 7 | 8 | This Docker container image allows most (if not all) non-routeable LAN subnets and caches from sources found under `extra-sources.acl` 9 | 10 | Usage: 11 | 12 | * On Server / Host: 13 | 14 | `docker run --name proxy --rm -v /path/to/cachedir:/cachedir -p PORT:8000 pmoust/squid-deb-proxy &` 15 | 16 | * On a node 17 | 18 | ``` 19 | apt-get install squid-deb-proxy-client 20 | echo 'Acquire::http::Proxy "http://HOST_IP:PORT";' > /etc/apt/apt.conf.d/30autoproxy 21 | ``` 22 | -------------------------------------------------------------------------------- /extra-sources.acl: -------------------------------------------------------------------------------- 1 | ppa.launchpad.net # Foreign PPA 2 | private-ppa.launchpad.net 3 | download.virtualbox.org # Oracle VM 4 | dl.bintray.com # Vagrant et al 5 | releases.ansible.com # Ansible 6 | dl.google.com # Google repositories 7 | raw.githubusercontent.com # Static files from github 8 | github.com # Github http checkout 9 | get.docker.io # Docker 10 | dl.dropboxusercontent.com # Dropbox URI 11 | cloud-images.ubuntu.com # Base vboxes 12 | puppet-vagrant-boxes.puppetlabs.com # Beaker/Puppet vboxes 13 | www.openprinting.org # Printer drivers (ubuntu extras) 14 | linux.dropbox.com # Dropbox 15 | deb.opera.com # Opera 16 | downloads-distro.mongodb.org # MongoHQ 17 | repository.spotify.com # Spotify 18 | repo.steampowered.com # Steam 19 | deb.torproject.org # Tor 20 | download.rethinkdb.com # RethinkDB 21 | download.opensuse.org # OpenSuse Build Service 22 | packages.elasticsearch.org # ElasticSearch 23 | packages.elastic.co # ElasticSearch new URL 24 | -------------------------------------------------------------------------------- /start.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # Advertise the availability of the cache. 4 | avahi-daemon -D 5 | 6 | # Necessary because squid forks itself to an unprivileged process. 7 | chown -R proxy.proxy /cachedir 8 | chown proxy.proxy /dev/stdout 9 | 10 | . /usr/share/squid-deb-proxy/init-common.sh 11 | pre_start 12 | post_start 13 | /usr/sbin/squid3 -N -f /etc/squid-deb-proxy/squid-deb-proxy.conf 14 | --------------------------------------------------------------------------------