Skip to content
forked from cactus/go-camo

An SSL/TLS proxy for insecure static assets to circumvent mixed content warnings. Based on `go-camo`, and `camo`.

License

Notifications You must be signed in to change notification settings

arachnys/go-camo

 
 

Repository files navigation

go-camo

Build Status

An SSL/TLS proxy for insecure static assets to circumvent mixed content warnings. Based on go-camo, and camo.

About

This is Arachnys' version of go-camo. See https://github.com/cactus/go-camo/ for more information.

Differences from Upstream

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 of gb for dependency management
  • goreleaser is used instead of gb, and the Makefile for building binaries
  • Support for graceful shutdown via termination signals
  • Support for Docker (docker pull arachnysdocker/go-camo)

Differences from Camo

See https://github.com/cactus/go-camo#differences-from-camo.

Usage

Releases are managed by goreleaser.

Pre-built binaries

Download the tarball appropriate for your OS from releases. Extract, and copy files to desired locations.

Docker

# 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.

Configuration

# 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

Development

Run make to show all available targets. Alternatively, see Makefile.

To get an idea of what is needed for localhost development, see .travis.yml.

Packages

No packages published

Languages

  • Go 96.3%
  • Makefile 3.7%