$ -weight: 600;">sudo -weight: 500;">apt -weight: 500;">install -weight: 500;">apt-transport-https ca-certificates -weight: 500;">curl -weight: 500;">git -y
$ -weight: 600;">sudo -weight: 500;">apt -weight: 500;">install -weight: 500;">apt-transport-https ca-certificates -weight: 500;">curl -weight: 500;">git -y
$ -weight: 600;">sudo -weight: 500;">apt -weight: 500;">install -weight: 500;">apt-transport-https ca-certificates -weight: 500;">curl -weight: 500;">git -y
$ -weight: 600;">sudo -weight: 500;">curl -fsSL https://download.-weight: 500;">docker.com/linux/ubuntu/gpg -o /etc/-weight: 500;">apt/keyrings/-weight: 500;">docker.asc
$ -weight: 600;">sudo -weight: 500;">curl -fsSL https://download.-weight: 500;">docker.com/linux/ubuntu/gpg -o /etc/-weight: 500;">apt/keyrings/-weight: 500;">docker.asc
$ -weight: 600;">sudo -weight: 500;">curl -fsSL https://download.-weight: 500;">docker.com/linux/ubuntu/gpg -o /etc/-weight: 500;">apt/keyrings/-weight: 500;">docker.asc
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/-weight: 500;">apt/keyrings/-weight: 500;">docker.asc] https://download.-weight: 500;">docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | -weight: 600;">sudo tee /etc/-weight: 500;">apt/sources.list.d/-weight: 500;">docker.list > /dev/null
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/-weight: 500;">apt/keyrings/-weight: 500;">docker.asc] https://download.-weight: 500;">docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | -weight: 600;">sudo tee /etc/-weight: 500;">apt/sources.list.d/-weight: 500;">docker.list > /dev/null
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/-weight: 500;">apt/keyrings/-weight: 500;">docker.asc] https://download.-weight: 500;">docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | -weight: 600;">sudo tee /etc/-weight: 500;">apt/sources.list.d/-weight: 500;">docker.list > /dev/null
$ -weight: 600;">sudo -weight: 500;">apt -weight: 500;">update
$ -weight: 600;">sudo -weight: 500;">apt -weight: 500;">install -weight: 500;">docker-ce -weight: 500;">docker-ce-cli containerd.io -weight: 500;">docker-buildx-plugin -weight: 500;">docker-compose-plugin -y
$ -weight: 600;">sudo -weight: 500;">apt -weight: 500;">update
$ -weight: 600;">sudo -weight: 500;">apt -weight: 500;">install -weight: 500;">docker-ce -weight: 500;">docker-ce-cli containerd.io -weight: 500;">docker-buildx-plugin -weight: 500;">docker-compose-plugin -y
$ -weight: 600;">sudo -weight: 500;">apt -weight: 500;">update
$ -weight: 600;">sudo -weight: 500;">apt -weight: 500;">install -weight: 500;">docker-ce -weight: 500;">docker-ce-cli containerd.io -weight: 500;">docker-buildx-plugin -weight: 500;">docker-compose-plugin -y
$ -weight: 600;">sudo usermod -aG -weight: 500;">docker $USER
$ newgrp -weight: 500;">docker
$ -weight: 600;">sudo usermod -aG -weight: 500;">docker $USER
$ newgrp -weight: 500;">docker
$ -weight: 600;">sudo usermod -aG -weight: 500;">docker $USER
$ newgrp -weight: 500;">docker
$ mkdir -p ~/openclaw-assistant
$ cd ~/openclaw-assistant
$ mkdir -p ~/openclaw-assistant
$ cd ~/openclaw-assistant
$ mkdir -p ~/openclaw-assistant
$ cd ~/openclaw-assistant
$ -weight: 500;">git clone https://github.com/openclaw/openclaw.-weight: 500;">git
$ cd openclaw
$ -weight: 500;">git clone https://github.com/openclaw/openclaw.-weight: 500;">git
$ cd openclaw
$ -weight: 500;">git clone https://github.com/openclaw/openclaw.-weight: 500;">git
$ cd openclaw
$ ./-weight: 500;">docker-setup.sh
$ ./-weight: 500;">docker-setup.sh
$ ./-weight: 500;">docker-setup.sh
$ -weight: 500;">docker compose logs openclaw-gateway
$ -weight: 500;">docker compose logs openclaw-gateway
$ -weight: 500;">docker compose logs openclaw-gateway
$ nano ~/.openclaw/openclaw.json
$ nano ~/.openclaw/openclaw.json
$ nano ~/.openclaw/openclaw.json
"controlUi": { "allowInsecureAuth": true
}
"controlUi": { "allowInsecureAuth": true
}
"controlUi": { "allowInsecureAuth": true
}
$ -weight: 500;">docker compose -weight: 500;">restart openclaw-gateway
$ -weight: 500;">docker compose -weight: 500;">restart openclaw-gateway
$ -weight: 500;">docker compose -weight: 500;">restart openclaw-gateway
$ ssh -N -L 18789:127.0.0.1:18789 linuxuser@YOUR-SERVER-IP
$ ssh -N -L 18789:127.0.0.1:18789 linuxuser@YOUR-SERVER-IP
$ ssh -N -L 18789:127.0.0.1:18789 linuxuser@YOUR-SERVER-IP
$ -weight: 500;">curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | -weight: 600;">sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
$ -weight: 500;">curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | -weight: 600;">sudo tee /etc/-weight: 500;">apt/sources.list.d/caddy-stable.list
$ -weight: 600;">sudo -weight: 500;">apt -weight: 500;">update
$ -weight: 600;">sudo -weight: 500;">apt -weight: 500;">install caddy -y
$ -weight: 500;">curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | -weight: 600;">sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
$ -weight: 500;">curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | -weight: 600;">sudo tee /etc/-weight: 500;">apt/sources.list.d/caddy-stable.list
$ -weight: 600;">sudo -weight: 500;">apt -weight: 500;">update
$ -weight: 600;">sudo -weight: 500;">apt -weight: 500;">install caddy -y
$ -weight: 500;">curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | -weight: 600;">sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
$ -weight: 500;">curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | -weight: 600;">sudo tee /etc/-weight: 500;">apt/sources.list.d/caddy-stable.list
$ -weight: 600;">sudo -weight: 500;">apt -weight: 500;">update
$ -weight: 600;">sudo -weight: 500;">apt -weight: 500;">install caddy -y
$ -weight: 600;">sudo nano /etc/caddy/Caddyfile
$ -weight: 600;">sudo nano /etc/caddy/Caddyfile
$ -weight: 600;">sudo nano /etc/caddy/Caddyfile
openclaw.example.com { reverse_proxy localhost:18789
}
openclaw.example.com { reverse_proxy localhost:18789
}
openclaw.example.com { reverse_proxy localhost:18789
}
$ -weight: 600;">sudo ufw allow 80/tcp
$ -weight: 600;">sudo ufw allow 443/tcp
$ -weight: 600;">sudo -weight: 500;">systemctl reload caddy
$ -weight: 600;">sudo ufw allow 80/tcp
$ -weight: 600;">sudo ufw allow 443/tcp
$ -weight: 600;">sudo -weight: 500;">systemctl reload caddy
$ -weight: 600;">sudo ufw allow 80/tcp
$ -weight: 600;">sudo ufw allow 443/tcp
$ -weight: 600;">sudo -weight: 500;">systemctl reload caddy
$ nano ~/.openclaw/openclaw.json
$ nano ~/.openclaw/openclaw.json
$ nano ~/.openclaw/openclaw.json
"vultr": { "baseUrl": "https://api.vultrinference.com/v1", "apiKey": "YOUR-VULTR-API-KEY", "api": "openai-completions", "models": [ { "id": "moonshotai/Kimi-K2.5", "name": "Kimi-K2.5" } ]
}
"vultr": { "baseUrl": "https://api.vultrinference.com/v1", "apiKey": "YOUR-VULTR-API-KEY", "api": "openai-completions", "models": [ { "id": "moonshotai/Kimi-K2.5", "name": "Kimi-K2.5" } ]
}
"vultr": { "baseUrl": "https://api.vultrinference.com/v1", "apiKey": "YOUR-VULTR-API-KEY", "api": "openai-completions", "models": [ { "id": "moonshotai/Kimi-K2.5", "name": "Kimi-K2.5" } ]
}
$ -weight: 500;">docker compose -weight: 500;">restart openclaw-gateway
$ -weight: 500;">docker compose -weight: 500;">restart openclaw-gateway
$ -weight: 500;">docker compose -weight: 500;">restart openclaw-gateway
/model vultr/moonshotai/Kimi-K2.5
/model vultr/moonshotai/Kimi-K2.5
/model vultr/moonshotai/Kimi-K2.5 - Model provider selection (Anthropic, OpenAI, Google, or Vultr Serverless Inference)
- Channel configuration (Slack, Discord, Telegram, or WhatsApp)
- Channel allowlists and skill setup
- Gateway startup - Connect additional messaging channels through the control UI
- Use /compact and /think commands to manage session memory
- Back up persistent memory with tar -czvf openclaw-backup.tar.gz ~/.openclaw