Skip to main content

Docker

Server

Prepare orbien-server.toml:

listen = "0.0.0.0:9527"

# optional: domain routing
# httpGwPort = 80
# httpsGwPort = 443

# optional: client authentication
# [auth]
# token = "YOUR_TOKEN"

# optional: web dashboard
[dashboard]
addr = "0.0.0.0"
port = 8020
user = "admin"
password = "123456"
warning

dashboard.addr must be 0.0.0.0, otherwise the host cannot reach the dashboard through port mapping

Option 1: Start with a config file

docker run -d --name orbien-server --restart unless-stopped \
-p 9527:9527 \
-p 8020:8020 \
-v "$PWD/orbien-server.toml:/etc/orbien/orbien-server.toml:ro" \
ghcr.io/orbien-org/orbien-server:latest

Option 2: Start with Compose

# docker-compose.yaml
services:
orbien-server:
image: ghcr.io/orbien-org/orbien-server:latest
container_name: orbien-server
restart: unless-stopped
ports:
- "9527:9527"
- "8020:8020"
# - "80:80"
# - "443:443"
volumes:
- ./orbien-server.toml:/etc/orbien/orbien-server.toml:ro
docker compose up -d

Option 3: Inject config from environment variables

Write {{env.NAME}} in the config, then pass values with -e or Compose environment. See Environment Variables for the syntax.

#orbien-server.toml
listen = "{{env.ORBIEN_LISTEN:0.0.0.0:9527}}"

[auth]
token = "{{env.ORBIEN_TOKEN}}"

[dashboard]
addr = "0.0.0.0"
port = 8020
user = "{{env.DASHBOARD_USER:admin}}"
password = "{{env.DASHBOARD_PASSWORD:123456}}"
# docker-compose.yaml
services:
orbien-server:
image: ghcr.io/orbien-org/orbien-server:latest
container_name: orbien-server
restart: unless-stopped
ports:
- "9527:9527"
- "8020:8020"
environment:
ORBIEN_TOKEN: ${ORBIEN_TOKEN}
DASHBOARD_PASSWORD: ${DASHBOARD_PASSWORD}
volumes:
- ./orbien-server.toml:/etc/orbien/orbien-server.toml:ro
export ORBIEN_TOKEN=YOUR_TOKEN
export DASHBOARD_PASSWORD=change-me
docker compose up -d
warning

String fields must quote the placeholder. If a variable is unset and has no default, the process fails to start. Do not write {{env.}} in the desktop client's config.


Client

Mount the config

Prepare orbien.toml:

server = "YOUR_SERVER_IP:9527"

# must match if the server has a token
# [auth]
# token = "YOUR_TOKEN"

[[tunnels]]
name = "mysql"
protocol = "tcp"
service = "127.0.0.1:3306"
remotePort = 9000

Option 1: Start with a config file

docker run -d --name orbien --restart unless-stopped \
-v "$PWD/orbien.toml:/etc/orbien/orbien.toml:ro" \
ghcr.io/orbien-org/orbien:latest
tip

Inside the container, 127.0.0.1 is the container itself. To expose a service on the host, set service to the host IP, or use host networking below

Host networking

Share the host network so the config can use 127.0.0.1 to reach local services:

docker run -d --name orbien --restart unless-stopped \
--network host \
-v "$PWD/orbien.toml:/etc/orbien/orbien.toml:ro" \
ghcr.io/orbien-org/orbien:latest

Option 2: Start with Compose

# docker-compose.yaml
services:
orbien:
image: ghcr.io/orbien-org/orbien:latest
container_name: orbien
restart: unless-stopped
# network_mode: host
volumes:
- ./orbien.toml:/etc/orbien/orbien.toml:ro
docker compose up -d