{"id":21871863,"url":"https://github.com/kcmerrill/fetch-proxy","last_synced_at":"2025-06-30T11:05:26.166Z","repository":{"id":25373290,"uuid":"28801385","full_name":"kcmerrill/fetch-proxy","owner":"kcmerrill","description":"A proxy that routes web traffic to docker containers. Automagically.","archived":false,"fork":false,"pushed_at":"2018-06-26T17:43:43.000Z","size":19198,"stargazers_count":13,"open_issues_count":10,"forks_count":7,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-06-04T01:02:36.860Z","etag":null,"topics":["automagic","containers","docker","forwarding","reverse-proxy"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kcmerrill.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-01-05T06:57:58.000Z","updated_at":"2023-08-21T12:46:02.000Z","dependencies_parsed_at":"2022-07-25T12:32:14.614Z","dependency_job_id":null,"html_url":"https://github.com/kcmerrill/fetch-proxy","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kcmerrill/fetch-proxy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kcmerrill%2Ffetch-proxy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kcmerrill%2Ffetch-proxy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kcmerrill%2Ffetch-proxy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kcmerrill%2Ffetch-proxy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kcmerrill","download_url":"https://codeload.github.com/kcmerrill/fetch-proxy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kcmerrill%2Ffetch-proxy/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262762458,"owners_count":23360329,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["automagic","containers","docker","forwarding","reverse-proxy"],"created_at":"2024-11-28T06:15:40.154Z","updated_at":"2025-06-30T11:05:26.146Z","avatar_url":"https://github.com/kcmerrill.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"![fetch-proxy](https://raw.githubusercontent.com/kcmerrill/fetch-proxy/master/assets/fetch.png \"fetch-proxy\")\n\n[![Build Status](https://travis-ci.org/kcmerrill/fetch-proxy.svg?branch=master)](https://travis-ci.org/kcmerrill/fetch-proxy) [![Join the chat at https://gitter.im/fetch-proxy/Lobby](https://badges.gitter.im/fetch-proxy/Lobby.svg)](https://gitter.im/fetch-proxy/Lobby?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n\nFetch 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.\n\n* Healthchecks for services\n* Secure connections using lets encrypt\n* Default service if mapping not found\n* Response timeouts\n* Automagically maps new containers\n* Ideal for dev environments\n* Zero downtime deployments out of the box\n\n![fetch-proxy](https://raw.githubusercontent.com/kcmerrill/fetch-proxy/master/assets/fetch-proxy.gif \"fetch-proxy gif\")\n\n## Binaries || Installation\n\n[![MacOSX](https://raw.githubusercontent.com/kcmerrill/go-dist/master/assets/apple_logo.png \"Mac OSX\")](http://go-dist.kcmerrill.com/kcmerrill/fetch-proxy/mac/amd6) [![Linux](https://raw.githubusercontent.com/kcmerrill/go-dist/master/assets/linux_logo.png \"Linux\")](http://go-dist.kcmerrill.com/kcmerrill/fetch-proxy/linux/amd64)\n\nor via go:\n\n`$ go get github.com/kcmerrill/fetch-proxy`\n\nvia docker:\n\n`$ 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`\n\nUse the `--insecure` flag if you are working on localhost, else enjoy `https://` urls from letsencrypt.org\n\n## Old version of docker\n\nIf 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. \n\n## Zero downtime deployments\n\nBy 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).\n\n## Custom Mappings\n\nLets 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:\n\n```yaml\nforward:\n    mystaticpage: 1234\n    mystaticpage2: 1234\n    mystaticpage3: 1234\n```\n\n## Questions/Comments/Feedback?\n\nWould love to hear it. Email me at kcmerrill [at] gmail [dot] com\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkcmerrill%2Ffetch-proxy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkcmerrill%2Ffetch-proxy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkcmerrill%2Ffetch-proxy/lists"}