Fork of compy
Go to file
2016-03-29 05:41:47 +02:00
proxy fix mitm for http1 proxy connections 2016-03-28 18:28:51 +02:00
transcoder update for github.com/tdewolff/minify api changes 2015-11-25 14:43:45 +01:00
compy.go initial commit 2015-03-28 23:07:40 +01:00
LICENSE initial commit 2015-03-28 23:07:40 +01:00
README.md update readme 2016-03-29 05:41:47 +02:00

Compy

Compy is an HTTP/HTTPS forward proxy with content compression/transcoding capabilities.
One use case is to reduce bandwidth usage when browsing on limited mobile broadband connection.

Features:

  • HTTPS proxy (encrypted connection between client and proxy)
  • man in the middle support (compress HTTPS traffic)
  • HTTP2 support (over tls)
  • gzip compression
  • transcode animated gifs to static images
  • transcode jpeg images to desired quality using libjpeg
  • transcode png images
  • html/css/js minification

Installation

go get github.com/barnacs/compy

HTTPS

To use the proxy over HTTPS, you will need a certificate for your host. If you don't already have one, you can get one for free or you can generate a self-signed cert by running:
openssl req -x509 -newkey rsa:2048 -nodes -keyout cert.key -out cert.crt -days 3650 -subj '/CN=<your-domain>'
then visit the proxy url and confirm that you trust your own certificate

MitM

To enable man-in-the-middle support, you will need to generate a root cert to sign all the certs generated by the proxy on the fly:
openssl req -x509 -newkey rsa:2048 -nodes -keyout ca.key -out ca.crt -days 3650 -subj '/CN=<your-domain>'
and add it to your client (browser) as a trusted certificate authority

Usage

To run a simple http forward proxy:
compy

To run it over tls:
compy -cert cert.crt -key cert.key

With man in the middle support:
compy -ca ca.crt -cakey ca.key

Probably the best option is to run it with both tls and mitm support, combining the two:
compy -cert cert.crt -key cert.key -ca ca.crt -cakey ca.key

You can also specify the listen port (defaults to 9999):
`compy -host :9999``

For compression, transcoding and minification options, see compy --help

Credits

https://github.com/pixiv/go-libjpeg https://github.com/tdewolff/minify

License

ISC, see LICENSE