Cloud DevSpace¶
This guide starts from an Openbase Cloud Sandbox/DevSpace image that already
has openbase-coder, Tailscale, NICE DCV, LiveKit, Codex, and the Openbase
Coder service wrappers installed.
Use this flow when you want the only external services to be Tailscale and Openbase Cloud. You do not need direct Cartesia or AssemblyAI accounts for this path; current setup defaults voice audio to Openbase Cloud, and the commands below switch coding sessions to the Openbase Cloud backend.
From the apps' point of view a DevSpace is just another backend host: once it
is on your tailnet, the iOS app adds it under
Settings → Backend Host exactly like a Mac, and the
web console is reachable at http://<host>:18080.
Start the Sandbox¶
- Open
https://app.openbase.cloudand sign in. - Go to the dashboard. The dashboard opens the Sandboxes page.
- In
Get access, clickSubscribeif access is not active, or ask a coordinator to activate complimentary access and then clickRefresh access. - Click
Continue to launch. - In
Spin up your Sandbox, choose a sandbox size. Usem6i.2xlarge (recommended)unless you have a reason to choose another size. - Click
Spin up SandboxorStart Sandbox. - Wait on
Waiting for Sandboxuntil the page says the credentials are ready. - Choose the browser connection flow and click
Open Sandbox in Browser. - Continue past the certificate prompt only if the IP address matches the Sandbox URL shown on the page.
- On
Sign in to your Sandbox, sign in with:- Username:
ubuntu - Password: the password shown on the page
- Session:
openbase
- Username:
The browser connection is the Amazon DCV web client. It gives you a Linux desktop in the cloud instance.
Prepare the Linux Desktop¶
Open the first terminal inside the DCV desktop:
- Click
Activities. - Search for
Terminal. - Open
Terminal.
Start a browser inside the Linux desktop before running the auth commands:
If Firefox is not installed in the image, install it and start it:
Connect Tailscale¶
Run:
Tailscale prints an authentication URL. Open that URL in Firefox, sign in to the same tailnet your iPhone uses, and approve the new Linux device.
Confirm Tailscale is connected:
The IP should be a 100.x.y.z address.
Log In to Openbase Cloud¶
Log in from the Linux terminal:
If Firefox does not open automatically, copy the URL printed by the command into Firefox. Sign in with the same Openbase Cloud account you use in the iOS app.
Switch coding sessions to Openbase Cloud:
Use the underscore spelling, openbase_cloud, for compatibility with cloud
images that have an older openbase-coder CLI installed.
This avoids requiring local OpenAI, Anthropic, Cartesia, or AssemblyAI account setup for the basic voice-agent path.
Start Openbase Coder Services¶
Start the default services:
Starting the default service set also configures the Tailscale Serve routes used by the iOS app:
tailscale serve --bg --http=18080 http://127.0.0.1:7999
tailscale serve --bg --tcp=7880 tcp://127.0.0.1:7880
Check the instance:
Both commands should report healthy services and healthy Tailscale Serve routes.
If doctor reports missing Openbase Cloud audio configuration on an older
image, refresh setup in Openbase Cloud mode and start services again:
openbase-coder setup --backend openbase_cloud --audio-provider openbase-cloud
openbase-coder services start
openbase-coder doctor
Get the iOS Host Name¶
Prefer the Tailscale DNS name when MagicDNS is enabled:
If that prints nothing, use the Tailscale IPv4 address:
The iOS app builds these URLs from the host:
- Openbase Coder API:
http://<host>:18080 - LiveKit signaling:
ws://<host>:7880
Connect From the iOS App¶
- On the iPhone, open Tailscale and sign in to the same tailnet.
- Open the Openbase iOS app and sign in to Openbase Cloud.
- Open
Settings. - In
Backend Host, enter a friendlyName. - In
Tailscale DNS or IP, enter the DNS name or100.x.y.zIP from the Linux instance. - Tap
Add Backend. - Select the new backend in
Selected Backend. - Open
Call. - Start a voice call and speak to the dispatcher.
The first call should request a room token from the Linux instance, connect to
LiveKit over Tailscale, and dispatch the livekit-agent worker running in the
cloud desktop.
After one successful connection identifies the backend as an Openbase Cloud Workspace, later calls automatically resume that Workspace when idle shutdown has stopped its EC2 instance. The Call screen shows whether it is checking, starting, or waiting for the Workspace, and lets you cancel the pending call. Cancelling the call does not stop an EC2 startup that Openbase Cloud has already accepted.
Openbase deliberately does not attempt this recovery for an unrecognized or ordinary Mac/Linux backend. An existing saved DevSpace that has never reported its Cloud identity to the current iOS app therefore needs one successful manual start and call before automatic resume is available.
Quick Recovery¶
If the iOS app cannot connect:
If services started before Tailscale was authenticated, start them again:
If the call reaches Connecting... or Waiting for Agent, inspect recent logs: