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