---
title: Getting started
description: A batteries-included reverse proxy and load balancer, built on hyper.
---
> ## Documentation Index
> Fetch the complete documentation index at: https://docs.page/luizfonseca/super/llms.txt
> Use this file to discover all available pages before exploring further.

<Image theme="light" src="/assets/super-flow-light.svg" alt="config.hcl and a terminal on one side; on the other, Super's routes and events, live: a container's host appears with a certificate, an edit to config.hcl applies without dropping connections, and a rule rate limits a request" caption="Super reads hosts, upstreams and rules from config.hcl (and Docker labels, Kubernetes ingresses and its admin API), and applies changes live: new hosts get a Let's Encrypt certificate, edits apply without dropping connections, and rules apply blocks to the requests they match" />
<Image theme="dark" src="/assets/super-flow-dark.svg" alt="config.hcl and a terminal on one side; on the other, Super's routes and events, live: a container's host appears with a certificate, an edit to config.hcl applies without dropping connections, and a rule rate limits a request" caption="Super reads hosts, upstreams and rules from config.hcl (and Docker labels, Kubernetes ingresses and its admin API), and applies changes live: new hosts get a Let's Encrypt certificate, edits apply without dropping connections, and rules apply blocks to the requests they match" />

**Super** is a **simple**, **lightweight**, and easy-to-use proxy server that proxies HTTP, HTTPS and TCP, with certificates handled for you (Let's Encrypt, your own files, or Kubernetes secrets). It is designed to be used as a standalone proxy server or as a component in a larger system. Super is written in [Rust](https://www.rust-lang.org/), on [hyper](https://hyper.rs). It builds on the work done in [Proksi](https://github.com/luizfonseca/proksi), and reads Proksi's configuration as it is.

For a quick introduction, watch [a recording of a small configuration](https://asciinema.org/a/ORhG5Na2SHIBI8TH2mPPUHMVZ).



### Quick start

Create a configuration file or specify a direct file path:

```bash
# Option 1: Create a directory and configuration file
mkdir config
touch config/config.hcl

# Option 2: Create a configuration file anywhere with any name
touch my-proxy-config.yml
```

Add a simple route, let's try `docs.proksi.info` as our proxy route:

```hcl
#
lets_encrypt {
  enabled = true  # You must explicitly enable Let's Encrypt
  staging = true
  email = "my@email.com"
}


paths {
  # Where to save certificates?
  lets_encrypt = "./"

  # You can even use functions here
  # lets_encrypt = env("HOME")
}

# The hosts Super should handle
# You might need to edit your /etc/hosts file here.
host "mysite.localhost" {
  tls {
    # Let's Encrypt can't issue certificates for localhost: use a self-signed one instead
    self_signed_on_failure = true
  }

  location "/" {
    upstream "docs.proksi.info:443" {
      # An external HTTPS service expects its own name, not mysite.localhost
      sni = "docs.proksi.info"
      headers {
        add = { "Host" = "docs.proksi.info" }
      }
    }
  }
}
```

Then run Super with your configuration:

```bash
# Direct file path (any filename)
super -c ./config/config.hcl
super -c ./my-proxy-config.yml

# Directory path (looks for config.hcl, config.yml, config.yaml)
super -c ./config/

# No configuration (minimal defaults, Let's Encrypt disabled)
super
```



## Features

Of the many features **Super** offers is the ability to **load balance** to your infrastructure or **any IP** that supports your host configurations. Other features of **Super** also include:

1. Automatic **Docker** and **Docker Swarm** service discovery through labels, and a **Kubernetes** ingress controller
2. Built-in most common middlewares such as **OAuth**, **Rate Limiting**, **CDN** **Caching** and others
3. The ability of running it as a single binary in your system
4. Automatic **SSL** through **Let's Encrypt** and redirection from HTTP to HTTPS
5. Configuration through **HCL with support for functions**
6. **TCP** proxying, by port or by name (SNI), with TLS terminated or passed through
7. An **admin API** with Prometheus metrics and live stats

See [Features](/general/features) for the full list.
