Skip to content

Commit

Permalink
Merge branch 'master' into evaluation-refactor
Browse files Browse the repository at this point in the history
* master:
  mod tidy
  Bump github.com/lib/pq from 1.2.0 to 1.3.0 (#201)
  Bump github.com/prometheus/client_golang from 1.2.1 to 1.3.0
  Bump google.golang.org/grpc from 1.25.1 to 1.26.0 (#202)
  Update docs path
  Readme/docs update
  Update README.md
  Create docker-compose.yml
  • Loading branch information
markphelps committed Dec 25, 2019
2 parents 578f118 + bc39a5b commit a38c9e6
Show file tree
Hide file tree
Showing 43 changed files with 195 additions and 1,143 deletions.
4 changes: 0 additions & 4 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,11 @@
*.txt

.github/
.vagrant/
.vscode/
Dockerfile
LICENSE
bin/
dev/
dist/
docs/
examples/
mkdocs.yml
script/
site/
10 changes: 0 additions & 10 deletions .github/actions/publish-docs/Dockerfile

This file was deleted.

19 changes: 0 additions & 19 deletions .github/actions/publish-docs/entrypoint.sh

This file was deleted.

21 changes: 0 additions & 21 deletions .github/workflows/release.yml

This file was deleted.

118 changes: 27 additions & 91 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,19 @@
<img src="logo.svg" alt="Flipt" width=200 height=200 />
</p>

<p align="center">A feature flag solution that runs in your existing infrastructure</p>
<p align="center">A modern feature flag solution</p>

<hr />

![Flipt](docs/assets/images/flipt.png)
![Flipt](flipt.png)

<div align="center">
<a href="https://bestpractices.coreinfrastructure.org/projects/3498">
<img src="https://bestpractices.coreinfrastructure.org/projects/3498/badge">
</a>
<a href="https://github.com/markphelps/flipt/actions">
<img src="https://github.com/markphelps/flipt/workflows/Tests/badge.svg" alt="Build Status" />
</a>
<a href="https://bestpractices.coreinfrastructure.org/projects/3498">
<img src="https://bestpractices.coreinfrastructure.org/projects/3498/badge">
</a>
<a href="https://codecov.io/gh/markphelps/flipt">
<img src="https://codecov.io/gh/markphelps/flipt/branch/master/graph/badge.svg" alt="Coverage" />
</a>
Expand All @@ -34,57 +34,50 @@

<div align="center">
<h4>
<a href="https://flipt.dev/">Documentation</a> |
<a href="https://flipt.io/">Documentation</a> |
<a href="#features">Features</a> |
<a href="#examples">Examples</a> |
<a href="#try-it">Running</a> |
<a href="./docs/configuration.md">Configuration</a> |
<a href="./docs/getting_started.md">Getting Started</a>
<a href="#values">Values</a> |
<a href="#usecases">Usecases</a> |
<a href="#examples">Examples</a>
</h4>
</div>

## What is Flipt
Flipt is an on-prem flag application that allows you to run experiments across services in **your** environment.

Flipt can be deployed within your existing infrastructure so that you don't have to worry about your information being sent to a third party or the latency required to communicate across the internet.

Flipt is an open source feature flag application that allows you to run experiments across services in **your** environment.
## Features

This means that you can deploy Flipt within your existing infrastructure and not have to worry about your information being sent to a third party or the latency required to communicate across the internet.
* Fast. Written in Go. Optimized for performance
* Stand alone, easy to run and configure
* Ability to create advanced distribution rules to target segments of users
* Native [GRPC](https://grpc.io/) client SDKs to integrate with your applications
* Simple REST API
* Modern UI and debug console
* Support for multiple databases

Flipt is a single, self contained binary that you run on your own servers or cloud infrastructure. There are a multitude of benefits to running Flipt yourself, including:
## Values

* :lock: **Security** - HTTPS support. No data leaves your servers and you don't have to open your systems to the outside world to communicate with Flipt. It all runs within your existing infrastructure.
* :rocket: **Speed** - Since Flipt is co-located with your existing services, you do not have to communicate across the internet which can add excessive latency and slow down your applications.
* :white_check_mark: **Simplicity** - Flipt is a single binary with no external dependencies by default.
* :no_entry: **Privacy** - No telemetry data is collected or sent by Flipt. Ever.

## Why Flipt

Flipt allows you to focus on building your applications without having to worry about implementing your own [feature flag](https://martinfowler.com/bliki/FeatureToggle.html) solution that works across your entire infrastructure.

With Flipt you can:
## Usecases

* Use simple on/off feature flags to toggle functionality in your applications
* Rollout features to a subset of your audience
* Use advanced segmentation to target and serve users based on custom properties that you define

On top of all this, Flipt provides a clean, modern UI so that you can always monitor the state of your feature flags and experiments in a single place.

## Features

* Fast. Written in Go. Optimized for performance
* Stand alone, easy to run and configure
* Ability to create advanced distribution rules to target segments of users
* Native [GRPC](https://grpc.io/) client SDKs to integrate with your applications
* Simple REST API
* Modern UI and debug console
* Support for multiple databases

## Examples

Check out the [examples](/examples) to see how Flipt works.

Here's a [basic one](https://github.com/markphelps/flipt/tree/master/examples/basic) to get started!

## Try It!
## Try It

[![Try in PWD](https://raw.githubusercontent.com/play-with-docker/stacks/master/assets/images/button.png)](https://labs.play-with-docker.com/?stack=https://raw.githubusercontent.com/markphelps/flipt/master/docker-compose.yml)

Try Flipt out yourself with Docker:

Expand All @@ -94,41 +87,12 @@ Try Flipt out yourself with Docker:

Flipt UI will now be reachable at [http://localhost:8080/](http://localhost:8080).

For more permanent methods of running Flipt, see the [Installation](https://flipt.dev/installation/) section.
For more permanent methods of running Flipt, see the [Installation](https://flipt.io/docs/installation/) section.

### :warning: Beta Software :warning:

Flipt is still considered beta software until the 1.0.0 release. This means that there are likely bugs and features/configuration may change between releases. Attempts will be made to maintain backwards compatibility whenever possible.

### Clients

There are two ways to communicate with the Flipt server from your applications:

1. [GRPC](https://grpc.io/)
1. REST API

To figure out which best supports your usecase and how to get client(s) in your preferred language, see the [Integration](https://flipt.dev/integration/) docs.

#### Official Clients

* [markphelps/flipt-grpc-go](https://github.com/markphelps/flipt-grpc-go) - Go GRPC client (Go)
* [markphelps/flipt-grpc-ruby](https://github.com/markphelps/flipt-grpc-ruby) - Ruby GRPC client (Ruby)

#### Third-Party Client Libraries

Client libraries built by awesome people from the Open Source community:

* [Camji55/Flipt-iOS-SDK](https://github.com/Camji55/Flipt-iOS-SDK) - Native iOS SDK for Flipt (Swift)
* [christopherdiehl/rflipt](https://github.com/christopherdiehl/rflipt) - React components/example project to control React features backed by Flipt (React)

### Databases

Flipt supports **both** [SQLite](https://www.sqlite.org/index.html) and [Postgres](https://www.postgresql.org/) databases as of [v0.5.0](https://github.com/markphelps/flipt/releases/tag/v0.5.0).

SQLite is enabled by default for simplicity, however you should use Postgres if you intend to run multiple copies of Flipt in a high availability configuration.

See the [Configuration](https://flipt.dev/configuration/#databases) documentation for more information.

## Licensing

There are currently two types of licenses in place for Flipt:
Expand All @@ -148,7 +112,7 @@ The client code is the code that you would integrate into your applications, whi

The server code is licensed under the [GPL 3.0 License](https://spdx.org/licenses/GPL-3.0.html).

If there are any concerns about the use of this license for the server, please [open an issue](https://github.com/markphelps/flipt/issues/new) on GitHub so that we can discuss publicly.
See [LICENSE](LICENSE).

## Author

Expand All @@ -162,20 +126,6 @@ I would love your help! Before submitting a PR, please read over the [Contributi

No contribution is too small, whether it be bug reports/fixes, feature requests, documentation updates, or anything else that can help drive the project forward.

## Pro Version

My plan is to soon start working on a Pro Version of Flipt for enterprise. Along with **support**, some of the planned features include:

* User management/permissions
* Multiple environments
* Audit log
* Streaming updates

If you or your organization would like to help beta test a Pro version of Flipt, please get in touch with me:

* Twitter: [@mark_a_phelps](https://twitter.com/mark_a_phelps)
* Email: _mark.aaron.phelps at gmail.com_

## Contributors ✨

Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):
Expand All @@ -194,17 +144,3 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
<!-- ALL-CONTRIBUTORS-LIST:END -->

This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!

## Support

Want to support Flipt development in other ways?

### BTC

Send me some satoshi: `3B6ct7jZnDJRAfWSCpX12ZobvBqFNDx7hz`

![send me some satoshi](qr.png)

### Coffee :coffee:

[<img src="https://user-images.githubusercontent.com/1685680/61808727-4925de00-ae3c-11e9-9d60-66bef358fd8e.png" alt="buy me a coffee" width="180"/>](https://www.buymeacoffee.com/markphelps)
4 changes: 2 additions & 2 deletions docs/development.md → development.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,8 @@ Changing certain types of files such as the protobuf, ui or documentation files

After changing `flipt.proto`, you'll need to run `make proto`. This will regenerate the following files:

* `flipt.pb.go`
* `flipt.pb.gw.go`
* `rpc/flipt.pb.go`
* `rpc/flipt.pb.gw.go`

### Updating assets

Expand Down
7 changes: 7 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
version: "3"

services:
flipt:
image: markphelps/flipt:latest
ports:
- "8080:8080"
1 change: 0 additions & 1 deletion docs/CNAME

This file was deleted.

28 changes: 0 additions & 28 deletions docs/README.md

This file was deleted.

Loading

0 comments on commit a38c9e6

Please sign in to comment.