An SSL/TLS proxy for insecure static assets to circumvent mixed content warnings. Based on go-camo, and camo.
This is Arachnys' version of go-camo.
See https://github.com/cactus/go-camo/ for more information.
The fundamental value proposition remains the same as the original project. That is, to proxy non-secure images over SSL/TLS, particularly to circumvent mixed content warnings on secure pages.
There are however, some crucial changes, and improvements:
- Support for proxying fonts, stylesheets, and URLs in stylesheets
- Support for proxying gzipped stylesheets
- Support for protocol-relative URLs / URLs without a scheme
- Support for proxying data URIs
- Support for proxying bad SSL/TLS URIs
- Higher default timeout
- Sentry for crash reporting, and aggregation
- End-to-end health check endpoint (
/health) - Go's
dep(and vanilla tooling) is used instead ofgbfor dependency management goreleaseris used instead ofgb, and theMakefilefor building binaries- Support for graceful shutdown via termination signals
- Support for Docker (
docker pull arachnysdocker/go-camo)
See https://github.com/cactus/go-camo#differences-from-camo.
Releases are managed by goreleaser.
Download the tarball appropriate for your OS from releases. Extract, and copy files to desired locations.
# Server
docker run -t --rm -p 8080:8080 arachnysdocker/go-camo:<tag> -k <hmac key>
# URL tool
docker run -t --rm arachnysdocker/go-camo-url-tool:<tag> -k <hmac key>Set <tag> to a version in the releases or set it to latest. For stability, we do not recommend using latest as there may be breaking changes. Use a tagged release.
# Binary
go-camo -h
# Docker
docker run -t --rm -p 8080:8080 arachnysdocker/go-camo:<tag> -hEnvironment Variables:
GOCAMO_HMAC: HMAC key used for encoding / decoding URLs
Run make to show all available targets. Alternatively, see Makefile.
To get an idea of what is needed for localhost development, see .travis.yml.
