Deploy Bytebot AI Desktop Agent (Password-Protected)
AI agent with its own Linux desktop: browses, clicks, types. Login-gated.
bytebot-ui
Just deployed
bytebot-agent
Just deployed
Just deployed
Just deployed
bytebot-desktop
Just deployed
Deploy and Host Bytebot with Railway
Bytebot is an open-source AI desktop agent: you describe a task in plain language and it does the work on its own Linux desktop, using the browser, apps and files like a person would. This community template runs the full Bytebot stack behind a password, with current model lists for Claude, OpenAI and Gemini.
About Hosting Bytebot
Bytebot has four parts: a containerized Ubuntu desktop (XFCE, Firefox, Thunderbird, VS Code) with a control daemon, an agent that plans each step with an LLM and drives the desktop, a Next.js task UI with a live view of the desktop, and Postgres for tasks and messages. Upstream's UI has no sign-in, and through it anyone could watch and control the desktop. This template puts a password-protected gateway in front and keeps the desktop, the agent and the database on Railway's private network. The upstream repository is archived; the template pins its last published images and replaces their retired default models with configurable current ones.
Common Use Cases
- Hand off repetitive browser work: filling web forms from a file, collecting data from several sites, downloading and sorting documents
- Test web flows end to end and get screenshots of each step
- Run a computer-use agent for research and prototyping without giving it access to your own machine
- Take over the desktop yourself at any point, then hand control back to the agent
Dependencies for Bytebot Hosting
- Bytebot desktop, agent and UI images from
ghcr.io/bytebot-ai(last upstream build, pinned by digest) - Postgres 18 (Railway's image)
- Caddy 2.11 as the sign-in gateway
- An API key for Anthropic, OpenAI or Google Gemini (yours, entered after deploy)
Deployment Dependencies
- Bytebot source (archived, Apache-2.0): https://github.com/bytebot-ai/bytebot
- Bytebot documentation: https://docs.bytebot.ai
- Anthropic API keys: https://console.anthropic.com
- OpenAI API keys: https://platform.openai.com/api-keys
- Gemini API keys: https://aistudio.google.com/apikey
Implementation Details
| Service | Source | Purpose |
|---|---|---|
| Bytebot | Caddy 2.11.9 (services/gateway) | Public domain; basic-auth sign-in; refuses cross-site requests; proxies to the UI |
| bytebot-ui | bytebot-ui:edge (digest-pinned) | Task UI, live desktop view, proxy to agent and VNC (private) |
| bytebot-agent | bytebot-agent:edge + model lists and start script (services/agent) | Plans and runs tasks with your LLM; migrates Postgres at start (private) |
| bytebot-desktop | bytebot-desktop:edge (digest-pinned) | Ubuntu 22.04 XFCE desktop, bytebotd computer-use API, noVNC (private) |
| Postgres | postgres-ssl:18 | Tasks and messages, on a volume |
First login. Open the Bytebot service's domain and sign in with BYTEBOT_USERNAME (default bytebot) and BYTEBOT_PASSWORD from the Bytebot service's Variables tab.
Add an LLM key. The deploy needs no key, but tasks do. On the bytebot-agent service, set ANTHROPIC_API_KEY (recommended), OPENAI_API_KEY or GEMINI_API_KEY, then redeploy bytebot-agent. Without a key the model picker is empty and the agent log says what to set. The models offered come from BYTEBOT_ANTHROPIC_MODELS, BYTEBOT_OPENAI_MODELS and BYTEBOT_GEMINI_MODELS (model-id=Title, comma-separated), because Bytebot's own lists name models that providers have retired.
Run a task. Pick a model, describe the task, and watch the desktop on the task page. Use "Take over" to control the desktop yourself.
Safe defaults. The password is generated at deploy. An empty, shorter than 12 or longer than 72-character password does not stop the deploy: the site is locked with a random password and the gateway log says how to fix it. Only the gateway has a public domain.
Persistence. Tasks and messages persist in Postgres. The desktop has no volume, as upstream: files saved on it are lost when bytebot-desktop is redeployed.
Resources and plans. Measured on Railway: the desktop uses 0.8–0.9 GB with Firefox open, the other services about 0.35 GB together. Use the Hobby plan or higher. The template deploys on Trial and Free too, but with 1 GB (Trial) the browser has little headroom and with 0.5 GB (Free) Firefox does not start. LLM usage is billed by your provider.
Upgrading. Upstream is archived and publishes only an edge tag, so the images are pinned by digest. Change the digests in template.json and services/agent/Dockerfile if a maintained build appears.
This is a community template, not affiliated with Bytebot, Anthropic, OpenAI, Google or Railway. Bytebot is Apache-2.0. Follow Railway's Fair Use Policy and the terms of the sites the agent visits.
Why Deploy Bytebot on Railway?
Railway runs the desktop, the agent, the UI and Postgres as one project with private networking, so only the sign-in gateway faces the internet. You get your own computer-use agent in a few minutes, and you can stop or redeploy it from one dashboard.
Template Content
bytebot-ui
ghcr.io/bytebot-ai/bytebot-ui:edgebytebot-agent
baranberkay96/bytebot-railwaybytebot-desktop
ghcr.io/bytebot-ai/bytebot-desktop:edge
