---
sidebar_position: 6
sidebar_label: Environment Variables
title: Environment Variables
---
# Environment Variables
Config files can reference process environment variables with `{{env.NAME}}`. This works anywhere you can inject env vars, including **Docker**, **systemd**, and **Kubernetes**.
:::warning
The GUI client (`Orbien-Desktop`) does not support this syntax. Enter the actual value in the UI, not an expression.
:::
## Syntax
```toml
[auth]
token = "{{env.ORBIEN_TOKEN}}"
[[tunnels]]
name = "ssh"
protocol = "tcp"
service = "127.0.0.1:22"
remotePort = {{ env.SSH_REMOTE_PORT:9000 } }
```
| Form | Meaning |
|-----------------------------------------|-------------------------------------------------------------------------|
| {'{{env.NAME}}'} | Required. Startup fails if the variable is unset or empty |
| {'{{env.NAME:default}}'} | Optional. Uses the default if the variable is unset or empty |
| {'"{{env.NAME}}"'} | String fields: the placeholder must be inside quotes |
| {'{{env.NAME}}'} | Numeric and boolean fields: do not quote |
Variable names may contain only letters, digits, and underscores, and must not start with a digit. Whitespace inside the braces is optional: {'{{ env.NAME }}'} is valid.
Only the first `:` is the default-value separator, so address-style defaults can be written as-is:
```toml
listen = "{{env.ORBIEN_LISTEN:0.0.0.0:9527}}"
server = "{{env.ORBIEN_SERVER:127.0.0.1:9527}}"
```
For secrets, prefer the required form {'{{env.ORBIEN_TOKEN}}'}. Do not give the token a guessable default.