#Tailscale
1 messages Β· Page 1 of 1 (latest)
Yep, easiest path is Tailscale Serve.
On the VPS, run:
openclaw --version
openclaw status
openclaw config set gateway.tailscale.mode serve
openclaw gateway restart
openclaw dashboard --no-open
Then open the URL it prints on your main device. It should be the Tailscale/MagicDNS dashboard URL, usually something like:
https://<your-vps-name>.<your-tailnet>.ts.net/
A couple notes:
- Make sure both devices are in the same tailnet.
- Serve is the recommended one here, not Funnel.
- If the UI connects but asks for auth, on the VPS run:
openclaw config get gateway.auth.token
Then paste that in Overview -> Gateway Access in the UI.
Docs:
https://docs.openclaw.ai/gateway/tailscale
https://docs.openclaw.ai/web/dashboard
If it still doesn't work, paste these and Iβll help you debug it:
openclaw --version
openclaw status
openclaw gateway status
tailscale status
tailscale serve status
Is this gunna make a daemon gateway?
No, not by itself.
openclaw config set ...only changes config.openclaw dashboard --no-openjust prints the UI URL.openclaw gateway restartonly restarts the gateway if you already installed the daemon/service.
So the quick check is:
openclaw gateway status
If that shows a running service, you're good.
If you donβt have the daemon installed yet, then install it with onboarding:
openclaw onboard --install-daemon
If you want, paste openclaw gateway status and Iβll tell you exactly which state youβre in.
The daemon is installed now step by step how do I get ts working
Yep. Do this on the VPS, not on your main device.
1. Make sure Tailscale is actually connected on the VPS
openclaw --version
sudo tailscale up
tailscale status
You want to see the VPS online in your tailnet.
2. Tell OpenClaw to use Tailscale Serve
openclaw config set gateway.bind loopback
openclaw config set gateway.tailscale.mode serve
openclaw gateway restart
3. Verify Serve is active
tailscale serve status
openclaw gateway status
4. Get the VPS Tailscale name
tailscale status
Look for the VPS hostname / MagicDNS name, something like:
your-vps-name.your-tailnet.ts.net
5. Open the UI from your main device
In your browser on your main device, open:
https://your-vps-name.your-tailnet.ts.net/
That should bring up the OpenClaw web UI.
6. If it asks for auth
On the VPS:
openclaw config get gateway.auth.token
Paste that token into the UI under Overview -> Gateway Access.
7. If it still fails, paste these
openclaw status
openclaw gateway status
tailscale status
tailscale serve status
Docs:
https://docs.openclaw.ai/gateway/tailscale
https://docs.openclaw.ai/web/dashboard
If you want, send me the output from steps 3 and 4 and Iβll check it with you.
It says error config set mode error valie mode requires value after I did the 2nd step
Who is u?
Yep, that error usually just means the value after mode did not get passed through.
Run these one at a time, exactly:
openclaw config set gateway.bind "loopback"
openclaw config set gateway.tailscale.mode "serve"
openclaw config get gateway.bind
openclaw config get gateway.tailscale.mode
openclaw gateway restart
You should see the get commands print:
loopback
serve
Then check:
tailscale serve status
openclaw gateway status
If it still throws the same error, paste the exact command you typed, because I think the shell ate part of it.
No need to escalate this yet, it looks like a simple CLI syntax hiccup.
For armored, the fix is still:
openclaw config set gateway.bind "loopback"
openclaw config set gateway.tailscale.mode "serve"
Run them as two separate commands.
Then verify:
openclaw config get gateway.bind
openclaw config get gateway.tailscale.mode
If it still errors, paste:
openclaw --version
and the exact command you typed. Thatβll be enough to sort it out here.
Iβm Krill π¦, the OpenClaw support bot hanging out in here.
I help with setup/troubleshooting in the help threads. For your Tailscale thing, we can keep going here and get it working.
ubuntu@ip-172-31-37-151:~$ openclaw gateway restart
π¦ OpenClaw 2026.4.21 (f788c88) β Greetings, Professor Falken
Restarted systemd service: openclaw-gateway.service
Timed out after 60s waiting for gateway port 18789 to become healthy.
Gateway process is running but port 18789 is still free (startup hang/crash loop or very slow VM startup).
Service runtime: status=running, state=active, pid=10370, lastExit=0
Gateway port 18789 status: free.
Gateway restart timed out after 60s waiting for health checks.
Tip: openclaw gateway status --deep
Tip: openclaw doctor
Got it. This means the gateway itself is not coming up yet, so Tailscale is not the blocker yet.
Letβs check the real cause. On the VPS, run these:
openclaw config get gateway.mode
openclaw config get gateway.bind
openclaw config get gateway.auth.mode
openclaw gateway status --deep
openclaw doctor
Then start the logs and watch what happens:
openclaw logs --follow
If you want the shortest path, paste the output from those commands here.
The main things Iβm looking for are:
refusing to bind gateway ... without authGateway start blocked: set gateway.mode=localEADDRINUSE- anything repeating in a crash loop
So, next step is not more Tailscale config, itβs getting the gateway healthy first.
ubuntu@ip-172-31-37-151:~$ openclaw gateway status --deep
π¦ OpenClaw 2026.4.21 (f788c88) β Less clicking, more shipping, fewer "where did that file go" moments.
β
β
Service: systemd (enabled)
File logs: /tmp/openclaw/openclaw-2026-04-22.log
Command: /home/ubuntu/.nvm/versions/node/v24.15.0/bin/node /home/ubuntu/.nvm/versions/node/v24.15.0/lib/node_modules/openclaw/dist/index.js gateway --port 18789
Service file: ~/.config/systemd/user/openclaw-gateway.service
Service env: OPENCLAW_GATEWAY_PORT=18789
Service config looks out of date or non-standard.
Service config issue: Gateway service PATH includes version managers or package managers; recommend a minimal PATH. (/home/ubuntu/.nvm/versions/node/v24.15.0/bin)
Service config issue: Gateway service uses Node from a version manager; it can break after upgrades. (/home/ubuntu/.nvm/versions/node/v24.15.0/bin/node)
Service config issue: System Node 22 LTS (22.14+) or Node 24 not found; install it before migrating away from version managers.
Recommendation: run "openclaw doctor" (or "openclaw doctor --repair").
Config (cli): ~/.openclaw/openclaw.json
Config (service): ~/.openclaw/openclaw.json
Gateway: bind=loopback (127.0.0.1), port=18789 (service args)
Probe target: ws://127.0.0.1:18789
Dashboard: http://127.0.0.1:18789/
Probe note: Loopback-only gateway; only local clients can connect.
Runtime: running (pid 10370, state active, sub running, last exit 0, reason 0)
Connectivity probe: ok
Capability: read-only
Listening: 127.0.0.1:18789
Troubles: run openclaw status
Troubleshooting: https://docs.openclaw.ai/troubleshooting
Nice, this is actually good news.
Your gateway is healthy now. The key line is:
Listening: 127.0.0.1:18789
So OpenClaw is running, itβs just loopback-only on the VPS right now. Next step is to put Tailscale in front of it.
Run these on the VPS:
sudo tailscale up
openclaw config get gateway.tailscale.mode
openclaw config set gateway.tailscale.mode "serve"
openclaw gateway restart
tailscale serve status
openclaw dashboard --no-open
What should happen:
tailscale serve statusshould show a Serve mappingopenclaw dashboard --no-openshould give you the URL to open- On your main device, open that URL in the browser
Usually itβll be something like:
https://<your-vps-name>.<your-tailnet>.ts.net/
A couple notes:
- The nvm / PATH warnings are real, but they are not the immediate blocker
Capability: read-onlyis fine for this check
If tailscale serve status is empty or errors, paste:
tailscale status
tailscale serve status
openclaw config get gateway.tailscale.mode
and Iβll tell you the next exact step.
ubuntu@ip-172-31-37-151:~$ openclaw gateway restart
π¦ OpenClaw 2026.4.21 (f788c88) β Somewhere between 'hello world' and 'oh god what have I built.'
Restarted systemd service: openclaw-gateway.service
Timed out after 60s waiting for gateway port 18789 to become healthy.
Gateway process is running but port 18789 is still free (startup hang/crash loop or very slow VM startup).
Service runtime: status=running, state=active, pid=11153, lastExit=0
Gateway port 18789 status: free.
Gateway restart timed out after 60s waiting for health checks.
Tip: openclaw gateway status --deep
Tip: openclaw doctor
ubuntu@ip-172-31-37-151:~$ ???
That timeout can be a false alarm on slower VPSes. Letβs verify instead of guessing.
Run these exact commands next:
openclaw config get gateway.tailscale.mode
openclaw gateway status --deep
tailscale serve status
What I want to see
Good:
gateway.tailscale.modeprintsserveConnectivity probe: okListening: 127.0.0.1:18789
If you see that, the gateway is fine, and the timeout message is basically noise.
Then do:
openclaw dashboard --no-open
and open the URL it prints on your main device.
If gateway.tailscale.mode is not serve
Run:
openclaw config set gateway.tailscale.mode "serve"
If tailscale serve status is empty or errors
Run:
sudo tailscale up
tailscale status
tailscale serve status
If gateway status --deep is bad
Run:
openclaw logs --follow
and paste the first error lines.
So yeah, next move is: paste those 3 command outputs and we can tell whether this is just a noisy restart or a real problem.
ubuntu@ip-172-31-37-151:~$ tailscale serve status
https://ip-172-31-37-151.tail7f7ef5.ts.net (tailnet only)
|-- / proxy http://127.0.0.1:18789
ubuntu@ip-172-31-37-151:~$ openclaw dashboard --no-open
π¦ OpenClaw 2026.4.21 (f788c88) β I've read more man pages than any human shouldβso you don't have to.
Dashboard URL: http://127.0.0.1:18789/#token=696a0daa8dd6fd27d9f39ae4eeb208067e81f1c3813bf0cb
Copy to clipboard unavailable.
Browser launch disabled (--no-open). Use the URL above.
Perfect, Tailscale Serve is working now π
Use this URL on your main device:
https://ip-172-31-37-151.tail7f7ef5.ts.net/
Ignore the http://127.0.0.1:18789/... URL, that one is only for the VPS itself.
Two important notes:
- If the UI opens and works, youβre done.
- If it asks for auth, use the gateway token, but do not paste it here again.
Also, you posted your token publicly in this thread, so you should rotate it now:
openclaw config set gateway.auth.token "$(openssl rand -hex 32)"
openclaw gateway restart
Then, if you need the new token, get it privately on the VPS and paste it into the UI yourself.
If the Tailscale URL does not load from your main device, paste what the browser shows and Iβll help with the last mile.
origin not allowed (open the Control UI from the gateway host or allow it in gateway.controlUi.allowedOrigins)
Yep, thatβs the missing piece.
Your browser origin is the Tailscale HTTPS URL, and OpenClaw is rejecting it because it is not in gateway.controlUi.allowedOrigins yet.
Run this on the VPS:
openclaw config set gateway.controlUi.allowedOrigins '["http://127.0.0.1:18789","http://localhost:18789","https://ip-172-31-37-151.tail7f7ef5.ts.net"]' --strict-json
openclaw gateway restart
Then open this again on your main device:
https://ip-172-31-37-151.tail7f7ef5.ts.net/
A couple important things:
- Do not use
["*"], use the exact origin like above. - Since you posted your token publicly earlier, rotate it if you have not already.
Docs: https://docs.openclaw.ai/web/control-ui
Troubleshooting: https://docs.openclaw.ai/gateway/troubleshooting#dashboard-control-ui-connectivity
If that still fails after restart, paste:
openclaw config get gateway.controlUi.allowedOrigins
openclaw gateway status --deep
and Iβll check the next step.
device pairing required (requestId: 893b224a-5550-4c01-8390-1d6aef7fcea9)
Nice, that means youβre basically at the last step.
On the VPS, approve that device pairing request:
openclaw devices list
openclaw devices approve 893b224a-5550-4c01-8390-1d6aef7fcea9
Then reload the Tailscale URL in your browser.
If approve says the request is missing/stale, that means the browser generated a new request ID. In that case:
- refresh the page once
- run
openclaw devices listagain - approve the newest request ID instead
Docs: https://docs.openclaw.ai/cli/devices
Pairing: https://docs.openclaw.ai/gateway/troubleshooting#dashboard-control-ui-connectivity
If you want, paste the output of openclaw devices approve ... and Iβll confirm youβre clear.
It says unknown request id
Yep, that means the browser request ID got replaced. Thatβs normal.
Do this in order:
- Keep the Tailscale Control UI page open.
- Refresh it once.
- On the VPS, run:
openclaw devices list
- Copy the current pending request ID from that output.
- Approve that exact one:
openclaw devices approve <new-request-id>
Then reload the page again.
If openclaw devices list shows nothing, tell me what it prints and weβll check the next blocker.
Pending (1)
β Request β Device β Requested β Approved β Age β Status β
β 5427bf3d-f91f-413e-965d-5e1b86c0959f β bb9ab8e326074d β roles: operator; scopes: operator.admin, β roles: operator; β just now β scope upgrade, repair β
β β 424958046ae5ba β operator.approvals, operator.pairing, β scopes: operator. β β β
β β b3223883f0e835 β operator.read, operator.talk.secrets, β read β β β
β β 9330ab6b13ede4 β operator.write β β β β
β β 099c6aac β β β β β
ββββ
Paired (1)
ββββββ
β Device β Roles β Scopes β Tokens β IP β
β bb9ab8e326074d424958046ae5bab3223883f0e8359330ab6b13ede4099c6aac β operator β operator.read β operator β β