/envoy-websocket-ratelimit

L7 envoy filter to capture and publish web socket related metadata through envoy async gRPC client

Primary LanguageJava


Logo

envoy-websocket-ratelimit

Ratelimiting web socket connections using a custom http filter with envoyproxy

Table of Contents

About The Project

Ratelimiting web socket connections using a custom http filter with envoyproxy. Ratelimiting can be performed upto websocket frame level Product Name Screen Shot

Getting Started

To get a local copy up and running follow these simple steps.

Prerequisites

  • docker
  • docker-compose
  • maven

Installing Docker on Ubuntu 20.04 LTS

sudo apt update
sudo apt install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
sudo apt update
apt-cache policy docker-ce
sudo apt install docker-ce
sudo systemctl status docker

Installing Docker-compose on Ubuntu 20.04 LTS

sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose --version

Installation

  1. Clone the repo
git clone https://github.com/NomadXD/envoy-websocket-ratelimit.git
cd envoy-websocket-ratelimit
  1. Build the project with maven
mvn clean package
  1. Start the services with docker-compose
docker-compose up

License

Distributed under the MIT License. See LICENSE for more information.