Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: about 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 (over 5 years ago)
- Default Branch: master
- Last Pushed: 2020-08-17T15:49:12.000Z (over 4 years ago)
- Last Synced: 2024-06-20T06:30:42.425Z (6 months ago)
- Topics: ab-testing, docker-image, go, golang, reverse-proxy, routing
- Language: Go
- Homepage:
- Size: 40 KB
- Stars: 7
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![GoDoc](https://godoc.org/github.com/lindell/revaboxy/pkg/revaboxy?status.svg)](https://godoc.org/github.com/lindell/revaboxy/pkg/revaboxy)
[![GitHub Workflow Status](https://img.shields.io/github/workflow/status/lindell/revaboxy/Go)](https://github.com/lindell/revaboxy/actions?query=workflow%3AGo)
[![Docker Image Size](https://img.shields.io/docker/image-size/lindell/revaboxy/latest)](https://hub.docker.com/r/lindell/revaboxy)
[![Docker Pulls](https://img.shields.io/docker/pulls/lindell/revaboxy)](https://hub.docker.com/r/lindell/revaboxy)
[![Go Report Card](https://goreportcard.com/badge/github.com/lindell/revaboxy)](https://goreportcard.com/report/github.com/lindell/revaboxy)
[![Coverage Status](https://coveralls.io/repos/github/lindell/revaboxy/badge.svg?branch=master)](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 |