fetch-proxy

command module
v0.0.0-...-f6a29ba Latest Latest
Warning

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

Go to latest
Published: Jun 26, 2018 License: MIT Imports: 20 Imported by: 0

README

fetch-proxy

Build Status

Fetch is a simple proxy that automagically routes web traffic to running docker containers to host ports. Great for dev/ci environments. Works great in production for hosts that have web sites running on one machine.

  • Healthchecks for services
  • Secure connections using lets encrypt
  • Default service if mapping not found
  • Response timeouts
  • Automagically maps new containers
  • Ideal for dev environments
  • Zero downtime deployments out of the box

fetch-proxy

Binaries || Installation

MacOSX Linux

or via go:

$ go get github.com/kcmerrill/fetch-proxy

via docker:

$ docker run -d -p 80:80 -p 443:443 -v /var/run/docker.sock:/var/run/docker.sock --restart=always --name fetch-proxy kcmerrill/fetch-proxy --containerized --insecure

Use the --insecure flag if you are working on localhost, else enjoy https:// urls from letsencrypt.org

Old version of docker

If you're running fetch-proxy within a container(kcmerrill/fetch-proxy) with an older version of docker, add -e DOCKER_API_VERSION=1.x.x for compatability.

Zero downtime deployments

By deploying containers with _ in their names, this denotes different versions to fetch-proxy along with their start times. If you start a container called test_v1.0, test.domain.tld will route traffic to that specific container. If you launch another container named test_v1.1 test.domain.tld will now start taking in that traffic once the container becomes online(via a healthcheck).

Custom Mappings

Lets say you are not using docker images for some ports, or perhaps you need to map multiple subdomains to one particular port. Simply pass in the config flag, with a location to a config file. This will be used for more later, but for now, create a yaml file with a key of forward and as a multi dimensional array, pass in the subdomain: port. Feel free to update this whenever you'd like, give fetch-proxy a few seconds to read in the new changes and then go to the new subdomain. Here is an example of multiple subdomains going to a single port:

forward:
    mystaticpage: 1234
    mystaticpage2: 1234
    mystaticpage3: 1234

Questions/Comments/Feedback?

Would love to hear it. Email me at kcmerrill [at] gmail [dot] com

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

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