The best way to get started with Edgee is to use our Docker container. Simply run:

docker run -v ./edgee.toml:/app/edgee.toml -p 80:80 -p 443:443 edgeecloud/edgee 

More often, you’ll use it in a docker-compose.yml file in combination with other services. Here’s an example:

    image: edgeecloud/edgee
      - "80:80"
      - "443:443"
      - "./edgee.toml:/app/edgee.toml"
    build: ./website
    build: ./api


To configure Edgee properly, you need to understand two concepts: entrypoints and routing tables.


Edgee needs to accept HTTP and HTTPS connections to route traffic. These entrypoints can be configured to listen to specific IP addresses and ports. For HTTPS, you can also provide the certificates for the TLS handshake.

In the HTTP entrypoint, if force_https is set to true, all requests are redirected to the same URL using the HTTPS protocol instead.

address = ""
force_https = true

address = ""
cert = "/app/cert/server.pem"
key = "/app/cert/server.key"


There’s an optional entrypoint that can be configured for observability.

address = ""

Routing Tables

Routing tables map routing rules to backends. You can also apply transformations to the path and configure how to connect to different backends.


You will configure one routing table for each domain you want to support. The simplest routing table maps one domain to one backend.

domain = ""
name = "example"
default = true
address = ""


You can enable SSL for the connection with the backend using enable_ssl = true. By default, it is set to false.

Routing Rules

You can apply more complex matching logic and rewrite paths. For example, you can match only a specific path.

domain = ""

path = "/api/"
backend = "api"

name = "website"
default = true
address = ""

name = "api"
address = ""

The example above directs all traffic from to except for, which will be directed to Other available matchers are path_prefix and path_regex.