---
title: Environment variables
description: >-
  Super can be configured using environment variables and they will have higher
  priority over the config file.
---
> ## 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.

Super can be configured using environment variables and **they will have higher priority over the config file**.

They are mapped to the configuration file keys, always start with `PROKSI_` and can be used to override the default values. For nested keys, use the `__` character.

### Example:

For the key `service_name`, the environment variable `PROKSI_SERVICE_NAME` can be used
For the key `worker_threads`, the environment variable `PROKSI_WORKER_THREADS` can be used
For the key `logging.level`, the environment variable `PROKSI_LOGGING__LEVEL` can be used (note the `__` separator due to the nested key)

For keys that accept a list of values, e.g. `routes`, the environment variable `PROKSI_ROUTES` can be used with a string value like this:

```bash
export PROKSI_ROUTES='[{host="example.com", upstreams=[{ip="10.0.1.24", port=3001}]}]'
```


### Full list

Below you can find a full list of the configuration keys and their corresponding environment variables.

| Key | Environment variable | Description |
| :--- | :--- | :--- |
| `service_name` | `PROKSI_SERVICE_NAME` | The name of the service |
| `worker_threads` | `PROKSI_WORKER_THREADS` | The number of worker threads |
| `daemon` | `PROKSI_DAEMON` | Whether the service should run as a daemon |
| `server.https_address` | `PROKSI_SERVER__HTTPS_ADDRESS` | The default HTTPS address (hosts without `listen`) |
| `server.work_stealing` | `PROKSI_SERVER__WORK_STEALING` | Whether worker threads take over each other's connections (`true`, see [performance](/general/performance#worker-threads)) |
| `server.http3` | `PROKSI_SERVER__HTTP3` | Whether HTTP/3 (QUIC, UDP) is answered on the HTTPS addresses (`false`; Super only) |
| `server.http_address` | `PROKSI_SERVER__HTTP_ADDRESS` | The default HTTP address (redirects, ACME challenges, hosts without TLS) |
| `logging.level` | `PROKSI_LOGGING__LEVEL` | The log level |
| `logging.format` | `PROKSI_LOGGING__FORMAT` | The log format |
| `logging.path` | `PROKSI_LOGGING__PATH` | The path where we should write logs files |
| `logging.rotation` | `PROKSI_LOGGING__ROTATION` | The rotation policy of the log files |
| `lets_encrypt.enabled` | `PROKSI_LETS_ENCRYPT__ENABLED` | Whether lets encrypt should be enabled |
| `lets_encrypt.email` | `PROKSI_LETS_ENCRYPT__EMAIL` | The email address used for lets encrypt |
| `lets_encrypt.staging` | `PROKSI_LETS_ENCRYPT__STAGING` | Whether lets encrypt should be used in staging mode |
| `paths.lets_encrypt` | `PROKSI_PATHS__LETS_ENCRYPT` | The path where we should write the lets encrypt certificates |
| `docker.enabled` | `PROKSI_DOCKER__ENABLED` | Whether the docker service should be enabled |
| `docker.interval_secs` | `PROKSI_DOCKER__INTERVAL_SECS` | The interval (in seconds) to check for label updates |
| `docker.endpoint` | `PROKSI_DOCKER__ENDPOINT` | The docker endpoint to connect to the docker socket/api |
