---
title: "Deploy Bytebot — Self-Hosted AI Desktop Agent with Its Own"
description: "Self-host Bytebot: an AI agent with its own full Linux desktop. Any LLM."
category: "AI/ML"
url: https://railway.com/deploy/bytebot-ai-desktop-agent
---

# Deploy Bytebot — Self-Hosted AI Desktop Agent with Its Own

Self-host Bytebot: an AI agent with its own full Linux desktop. Any LLM.

**[Deploy Bytebot — Self-Hosted AI Desktop Agent with Its Own on Railway](https://railway.com/template/bytebot-ai-desktop-agent)**

- **Creator:** SilverBanana
- **Category:** AI/ML
- **Total deploys:** 3

## Template content

### Bytebot UI

- **Image:** bytebot-ai/bytebot-ui:edge

### Postgres https://devicons.railway.app/i/postgresql.svg

- **Image:** ghcr.io/railwayapp-templates/postgres-ssl:18

### Bytebot Agent

- **Image:** bytebot-ai/bytebot-agent:edge

### Bytebot Desktop

- **Image:** bytebot-ai/bytebot-desktop:edge

## Documentation

# Deploy and Host Bytebot on Railway

![Bytebot AI desktop agent](https://mintlify.s3.us-west-1.amazonaws.com/bytebot/images/agent-architecture.png)

Bytebot is the open-source AI desktop agent — **11k+ GitHub stars** — that gives an AI its own
full Linux computer. Unlike browser-only agents, Bytebot runs a complete Ubuntu desktop where it
can use any application, download and organize files, log into sites with a password manager,
read PDFs and spreadsheets, and complete multi-step workflows across programs. Give it a task in
plain English — "download this month's invoices from our vendor portals and organize them" — and
it opens the browser, handles 2FA, downloads the files, and files them away.

Apache-2.0 licensed and fully self-hosted. Bring your own key — Claude, GPT, Gemini, or 100+
providers via LiteLLM — and pay only for tokens. This template is maintained on an actively
kept-up fork and deploys clean on Railway for ~$10–20/month.

---

## What This Template Deploys

| Service | Purpose |
|---|---|
| **Bytebot Desktop** | Ubuntu 22.04 + XFCE virtual desktop with Firefox, VS Code, and tools pre-installed — the computer the AI controls, viewable live in the browser |
| **Bytebot Agent** | NestJS service that interprets tasks and drives the desktop (mouse, keyboard, screen) |
| **Bytebot UI** | Next.js web app to create tasks, watch the live desktop, and take over manually |
| **PostgreSQL** | Persistent storage for tasks, history, and desktop state |

All services connect over Railway's private network. The desktop's live view streams to the UI;
only the UI needs a public domain. Bytebot is resource-heavy — allocate at least 2 GB RAM
(4 GB recommended) so the full desktop environment runs smoothly.

---

## About Hosting Bytebot

A desktop agent needs a real, persistent computer — an Ubuntu environment with a display server,
a browser, and apps the AI can install and keep across tasks. Running that by hand means Docker,
a virtual display, VNC-style streaming, a database, and secret management. It's one of the more
involved self-hosted stacks to wire up.

Railway runs the whole thing — desktop, agent, UI, and PostgreSQL over private networking, HTTPS
on the UI, and your AI key injected as a variable. The desktop is persistent: install a password
manager, log into the sites you want Bytebot to use, and that setup stays for future tasks.

> **Maintained fork:** the original Bytebot repository was archived by its author in March 2026.
> This template deploys from an actively maintained fork so deploys keep working and fixes keep
> landing — you get the tool without the abandonment risk.

Typical cost: **~$10–20/month** on Railway for the multi-service desktop stack, plus your AI
provider's per-task API fees (usually a few cents per task). No Bytebot licensing or seat fees.

---

## Deploy in Under 5 Minutes

1. Click **Deploy on Railway** — all services build automatically (~4–5 minutes; the desktop
   image is large)
2. Add one AI provider key in Variables — `ANTHROPIC_API_KEY`, `OPENAI_API_KEY`, or `GEMINI_API_KEY`
3. Open the UI at your Railway public URL
4. Use the **Desktop** tab to install password managers and log into the sites you want Bytebot
   to access
5. Create a task in plain English and watch Bytebot work in the live desktop view

No coding. No VNC setup. No Docker Compose.

---

## Common Use Cases

- **AI desktop agent that uses real applications** — not just a browser; Bytebot drives VS Code,
  email clients, office tools, and the file system like a human operator
- **Self-hosted alternative to cloud computer-use agents** — keep prompts, credentials, and the
  whole desktop on your own infrastructure instead of a vendor's cloud
- **Invoice and document automation** — "download this month's invoices from our vendor portals
  and organize them" — Bytebot logs in (2FA via password manager), downloads, and files them
- **Multi-system data workflows** — move data between a CRM, banking portal, and ERP across
  different apps that have no shared API
- **Document processing at the desktop** — upload PDFs and spreadsheets directly to Bytebot's
  desktop; it reads, extracts, cross-references, and produces new documents
- **Automated UI testing and research** — reproduce bugs, take cross-site screenshots, and run
  competitive analysis across real websites and applications

---

## Configuration

| Variable | Required | Description |
|---|---|---|
| `ANTHROPIC_API_KEY` | One provider required | Enables Anthropic Claude (recommended for computer-use tasks) |
| `OPENAI_API_KEY` | Alternative | Enables OpenAI GPT models |
| `GEMINI_API_KEY` | Alternative | Enables Google Gemini models |
| `DATABASE_URL` | ✅ Auto-injected | PostgreSQL connection string via Railway reference variable |
| `LITELLM_*` | Optional | Route through LiteLLM for Azure OpenAI, AWS Bedrock, Ollama, and 100+ providers |
| `BYTEBOT_DESKTOP_URL` | ✅ Auto-wired | Internal URL the agent uses to reach the desktop service |
| `PORT` | Auto-set | Railway injects the UI port automatically |

> Bytebot needs at least one AI provider key to do anything. Claude is recommended for
> computer-use reliability. For local or enterprise models, route through LiteLLM. Protect your
> public UI — anyone who reaches it can drive the desktop and any accounts you've logged into.

---

## Bytebot vs. Automation Alternatives

| | Bytebot (Railway) | Browser-only agents | Traditional RPA | Cloud computer-use |
|---|---|---|---|---|
| **Full desktop, any app** | ✅ Ubuntu + apps | ❌ Browser only | ⚠️ Brittle selectors | ✅ Yes |
| **Self-hosted / private** | ✅ Your instance | ⚠️ Varies | ⚠️ On-prem heavy | ❌ Vendor cloud |
| **Bring your own model** | ✅ 100+ via LiteLLM | ⚠️ Some | ❌ No | ❌ Fixed |
| **Handles UI changes** | ✅ Vision-based | ⚠️ Partial | ❌ Breaks on change | ✅ Yes |
| **Password manager / 2FA** | ✅ Install your own | ⚠️ Limited | ⚠️ Complex | ⚠️ Varies |
| **Persistent environment** | ✅ Installs stay | ❌ No | ⚠️ Varies | ❌ Ephemeral |
| **Open source** | ✅ Apache-2.0 | ⚠️ Varies | ❌ Mostly no | ❌ No |

---

## Dependencies for Bytebot Hosting

- Railway account — allocate 2–4 GB RAM for the desktop stack (~$10–20/month typical)
- One AI provider key — Anthropic Claude recommended; or 100+ providers via LiteLLM
- Optional: password manager (1Password, Bitwarden) installed inside the desktop for auth

### Deployment Dependencies

- [Bytebot (maintained fork)](https://github.com/sahilrupani/bytebot) — the source this template deploys
- [Bytebot Documentation](https://docs.bytebot.ai) — task, API, and desktop guides
- [Bytebot LiteLLM Integration](https://docs.bytebot.ai/deployment/litellm) — 100+ providers
- [Railway Volumes Documentation](https://docs.railway.com/volumes) — persistent desktop state

### Implementation Details

Bytebot is four integrated components: an Ubuntu 22.04 + XFCE virtual desktop (Firefox, VS Code,
tools pre-installed), a NestJS agent that drives it, a Next.js task UI, and PostgreSQL for task
and history storage. Only the UI is publicly exposed; the desktop and agent communicate over
Railway's private network. The desktop is persistent, so software installs and logged-in
sessions survive across tasks and redeploys.

The stack is resource-intensive because it runs a real desktop environment with a display server
and streams it live to the UI. Allocate at least 2 GB RAM (4 GB recommended) to avoid slow or
failed desktop rendering. This template deploys from a maintained fork of the archived upstream
so the deployment path stays working.

---

## Frequently Asked Questions

**The original Bytebot repo is archived — is this still maintained?**
The upstream `bytebot-ai/bytebot` repo was archived by its author in March 2026. This template
deploys from an actively maintained fork, so deploys keep working and issues keep getting fixed.
You get the tool — 11k+ stars of proven capability — without the abandonment risk of the
read-only upstream.

**What can Bytebot actually do that a browser agent can't?**
Bytebot has a full desktop, not just a browser. It can use desktop applications (VS Code, email
clients, office tools), run command-line scripts, install software, process local files, and
authenticate with a password manager including 2FA — things browser-only agents and API
integrations can't reach.

**How much does it cost to run?**
Around $10–20/month on Railway for the multi-service desktop stack, plus your AI provider's
per-task fees — usually a few cents per task. There are no Bytebot licensing, subscription, or
usage fees; it's Apache-2.0 open source.

**Which AI provider should I use?**
Anthropic Claude is recommended for computer-use reliability. OpenAI and Gemini also work, and
via LiteLLM you can route to Azure OpenAI, AWS Bedrock, local Ollama, and 100+ providers. You
need at least one key for Bytebot to operate.

**Is it secure to run?**
Everything runs on your Railway infrastructure — prompts, credentials, and the desktop never
leave your instance. Protect the public UI: anyone who can reach it can control the desktop and
any accounts you've logged into. Add authentication in front of it and never expose it with weak
credentials.

**Do installed programs and logins persist?**
Yes. The desktop is persistent — software you install and sites you log into stay available for
future tasks, and PostgreSQL retains task history across redeploys.

---

## Why Deploy and Host Bytebot on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your
infrastructure so you don't have to deal with configuration, while allowing you to vertically
and horizontally scale it.

By deploying Bytebot on Railway, you get an AI agent with its own full Linux desktop — using
real applications, handling files and logins, and completing multi-step workflows — from a
maintained fork that deploys clean, at ~$10–20/month plus your own token usage, with full data
ownership and no platform limits.

## Similar templates

- [Chat Chat](https://railway.com/deploy/-WWW5r) — Chat Chat, your own unified chat and search to AI platform.
- [stella](https://railway.com/deploy/stella) — Self-host stella with web, API, Postgres, Redis, and object storage.
- [Hermes Agent | OpenClaw Alternative with Dashboard](https://railway.com/deploy/hermes-agent-or-openclaw-alternative-wit) — Self-Hosted Hermes AI Agent for Telegram, Discord & Slack

Open this page in a browser: https://railway.com/deploy/bytebot-ai-desktop-agent
