OpenClaw on Ubuntu + Docker Isolation
- 1. Installation - {:.} Model Provider - {:.} Setup OpenClaw Gateway - {:.} Token Issue - {:.} Slack
1. Installation
$ git clone git@github.com:openclaw/openclaw.git
# go to openclaw directory
$ ./docker-setup.sh
Change docker-compose.yml.
I added extra_hosts : "host.docker.internal:host-gateway".
services:
openclaw-gateway:
image: ${OPENCLAW_IMAGE:-openclaw:local}
extra_hosts:
- "host.docker.internal:host-gateway"
install brew manually.
it seesm the docker container doesn’t have brew and during installation it fails if brew is not installed.
mkdir ~/.linuxbrew && curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C ~/.linuxbrew
# set up environment variables
echo 'export PATH="$HOME/.linuxbrew/bin:$HOME/.linuxbrew/sbin:$PATH"' >> ~/.bashrc
echo 'export MANPATH="$HOME/.linuxbrew/share/man:$MANPATH"' >> ~/.bashrc
echo 'export INFOPATH="$HOME/.linuxbrew/share/info:$INFOPATH"' >> ~/.bashrc
# 3. 현재 세션에 적용
source ~/.bashrc
Model Provider
vLLM
you can serve local LLM like this.
vllm serve openai/gpt-oss-20b \
--host 127.0.0.1 \
--port 8045 \
--tensor-parallel-size 1 \
--gpu-memory-utilization 0.3 \
--trust-remote-code \
--async-scheduling \
--max-num-batched-tokens 8192 \
--max-model-len 35096 \
--api-key 1234
connect to Docker terminal and then change the connection information like this.
no need to restart the openclaw container.
# change address to host.docker.internal
sed -i 's/127.0.0.1/host.docker.internal/' ~/.openclaw/openclaw.json
# change vLLM API key (1234)
sed -i 's/"VLLM_API_KEY"/"1234"/' ~/.openclaw/openclaw.json
Setup OpenClaw Gateway
connect to Docker terminal and you can get a gateway token
$ echo $OPENCLAW_GATEWAY_TOKEN
05c5df07ef01<eradicated>
- http://127.0.0.1:18789/overview
- in Gateway Access, put the token in Gateway Token
Token Issue
If you happen to run ./docker-setup.sh multiple times, it generates a new random gateway token.
this creates a mismatch between .env and ~/.openclaw/openclaw.json
$ grep OPENCLAW_GATEWAY_TOKEN .env
OPENCLAW_GATEWAY_TOKEN=05c5df0<eradicated>
$ grep -o '"token": "[^"]*"' ~/.openclaw/openclaw.json
"token": "05c5df0<eradicated>"
if both configurations are different, you need to update ~/.openclaw/openclaw.json file to match the .env token
and then restart docker
$ docker restart openclaw-openclaw-gateway-1
Slack
$ ./openclaw.mjs pairing list --channel slack