https://github.com/lindell/revaboxy
Reverse proxy for A/B testing frontend applications
https://github.com/lindell/revaboxy
ab-testing docker-image go golang reverse-proxy routing
Last synced: 2 months ago
JSON representation
Reverse proxy for A/B testing frontend applications
- Host: GitHub
- URL: https://github.com/lindell/revaboxy
- Owner: lindell
- License: mit
- Created: 2019-04-22T15:38:18.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2020-08-17T15:49:12.000Z (almost 5 years ago)
- Last Synced: 2025-03-25T19:21:35.561Z (3 months ago)
- Topics: ab-testing, docker-image, go, golang, reverse-proxy, routing
- Language: Go
- Homepage:
- Size: 40 KB
- Stars: 8
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![]()
[](https://godoc.org/github.com/lindell/revaboxy/pkg/revaboxy)
[](https://github.com/lindell/revaboxy/actions?query=workflow%3AGo)
[](https://hub.docker.com/r/lindell/revaboxy)
[](https://hub.docker.com/r/lindell/revaboxy)
[](https://goreportcard.com/report/github.com/lindell/revaboxy)
[](https://coveralls.io/github/lindell/revaboxy?branch=master)Overview
----
Revaboxy is a reverse proxy made for A/B testing of front end applications.
It is placed in front of two or more versions of a frontend and does randomize the trafic to the different versions based on probability.
When a users browser makes subsequent requests, revaboxy will automaticly select the same version as before.Revaboxy is released as [docker images](https://hub.docker.com/r/lindell/revaboxy/tags), [binaries for linux/windows/mac](https://github.com/lindell/revaboxy/releases) and as a [Go library](https://godoc.org/github.com/lindell/revaboxy/pkg/revaboxy).
Environment Variables
----#### Configuring the versions
When setting up Revaboxy, every version has to be setup with the url and probability that it will be selected.
These environment variables are called `VERSION_NAME_URL` and `VERSION_NAME_PROBABILITY`.As an example, say we have two version, one called `DEFAULT` and one called `GREEN_BACKGROUND`. The environment variables needed would be:
```bash
VERSION_DEFAULT_URL=http://defaulturl
VERSION_DEFAULT_PROBABILITY=0.6
VERSION_GREEN_BACKGROUND_URL=http://greenbackgroundurl
VERSION_GREEN_BACKGROUND_PROBABILITY=0.4
```#### Setting to change the behavior of revaboxy
| Name | Default | Description |
| --------------- | --------------- | ----------------------------------------------------------------------------------------- |
| `HOST` | ` ` | The host that the server should listen to, the default value makes it listen on all hosts |
| `PORT` | `80` | The port that server should listen on |
| `HEADER_NAME` | `Revaboxy‑Name` | The header name sent to the downsteam application |
| `COOKIE_NAME` | `revaboxy‑name` | The cookie name that is set at the client to keep track of which version was selected |
| `COOKIE_EXPIRY` | `7d` | The time before the cookie containing the a/b test version expires |