From 9a7aaedc56908884ee6bc93f4c3419808d7a47a3 Mon Sep 17 00:00:00 2001 From: Barna Csorogi Date: Tue, 29 Mar 2016 05:41:47 +0200 Subject: [PATCH] update readme --- README | 21 ----------------- README.md | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+), 21 deletions(-) delete mode 100644 README create mode 100644 README.md diff --git a/README b/README deleted file mode 100644 index 7d66dc9..0000000 --- a/README +++ /dev/null @@ -1,21 +0,0 @@ -1, Compy -Compy is an HTTP/HTTPS proxy with mitm support and basic content compression/transcoding capabilities. - -2, Features: -- HTTPS proxy (encrypted connection between client and proxy) -- man in the middle support -- gzip compression -- transcode animated gif to static image -- transcode jpeg to desired quality using libjpeg -- transcode png -- html/css/js minification - -3, Usage -See compy --help - -4, Credits -https://github.com/pixiv/go-libjpeg -https://github.com/tdewolff/minify - -5, License -See LICENSE diff --git a/README.md b/README.md new file mode 100644 index 0000000..60e035a --- /dev/null +++ b/README.md @@ -0,0 +1,68 @@ +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](https://letsencrypt.org/) 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='` +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='` +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