go-camo

module
v2.3.1+incompatible Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 4, 2018 License: MIT

README

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.

Directories

Path Synopsis
cmd
go-camo
go-camo daemon (go-camod)
go-camo daemon (go-camod)
url-tool
url-tool
url-tool
pkg
camo
Package camo provides an HTTP proxy server with content type restrictions as well as regex host allow list support.
Package camo provides an HTTP proxy server with content type restrictions as well as regex host allow list support.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL