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 ofgb
for dependency management goreleaser
is used instead ofgb
, and theMakefile
for 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> -h
Environment 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
.