The web flow installs an agent runtime onto a server you already have. There is no provider picker and no "choose a size" step — that was removed. You bring an address and credentials.
What the form asks for
| Field | Default |
| --- | --- |
| IP address | — |
| SSH user | root |
| Authentication | password, or paste a private key |
| SSH port | 22 |
The server needs to be Debian/Ubuntu family — the install uses apt and .deb
packages. Ubuntu 22.04 and 24.04 are what it is built and run against. Inbound
ports are generally not required: the deployment establishes a tunnel.
How the agent authenticates to its model
Either an API key — Anthropic, OpenAI or DeepSeek — or a subscription login:
- Claude Code uses an OAuth token from your Claude subscription. Generate it
on your own machine with claude setup-token; it prints a token beginning
sk-ant-oat01-….
- Codex uses your ChatGPT account: paste the contents of ~/.codex/auth.json
from a machine where you are already signed in.
Both are account credentials rather than scoped API keys. Treat them accordingly.
The three ways it fails
1. SSH. Wrong port, a user without install rights, or key authentication where the server expects a password. This is most of them. 2. Nothing can reach it afterwards. Check the tunnel, not your firewall. Opening inbound ports is almost never the fix. 3. The agent answers with an authentication error. The model credential expired or was rejected. Subscription tokens do expire — generate a new one.
Read the deploy output as it runs. It reports each step and any failure. A deployment you did not watch just looks broken afterwards.