← Back to Blog

Bytebot: Self-Host Your Own AI Desktop Agent (Complete Docker Guide)

Bytebot: Self-Host Your Own AI Desktop Agent 🦞

What is it? Bytebot is an open-source (Apache 2.0) AI desktop agent that runs inside a containerized Linux desktop environment. You give it tasks in natural language, and it uses its own virtual computer — complete with Firefox, VS Code, a file system, and a mouse cursor — to get things done.

Why it's trending: Bytebot hit 10,900+ GitHub stars in just months because it solves a real problem: AI agents are great at generating text, but terrible at actually doing things in real applications. By giving the AI its own full desktop environment, Bytebot can browse websites, download files, fill forms, run scripts, and interact with software just like a human would — all from a self-hosted Docker stack.


📋 Prerequisites

Before we start, make sure you have:

  • A Linux server (or any machine with Docker) — minimum 4GB RAM, 2 CPU cores, 20GB disk
  • Docker and Docker Compose (v2+) installed
  • An AI API key from one of the supported providers:
  • Git to clone the repository

🧠 Architecture Overview

Bytebot is built from 4 Docker containers working together:

Bytebot Architecture

  1. Virtual Desktop — Ubuntu 22.04 with XFCE4, Firefox, VS Code, noVNC (port 9990)
  2. AI Agent — NestJS backend that orchestrates tasks via LLM (port 9991)
  3. Web UI — Next.js 15 dashboard for task management (port 9992)
  4. PostgreSQL — Task and message persistence

The flow: You describe a task → Agent plans actions → Sends commands to the desktop daemon → Desktop executes mouse clicks, keystrokes, screenshots → Results stream back to the UI.


🚀 Step-by-Step Deployment

Step 1: Clone the Repository

git clone https://github.com/bytebot-ai/bytebot.git
cd bytebot

Step 2: Configure Your AI Provider

Create a .env file in the docker/ directory:

cd docker
nano .env

Add your API key(s). You only need one provider:

# Recommended: Anthropic Claude (Sonnet 4 or Opus works best)
ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

# Alternative: OpenAI
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

# Alternative: Google Gemini
GEMINI_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Step 3: Start the Stack

Still inside the docker/ directory:

docker compose up -d

This will pull and start 4 containers:

  • bytebot-desktop — The virtual desktop (Ubuntu + XFCE + noVNC)
  • bytebot-postgres — Database for tasks
  • bytebot-agent — AI orchestration service
  • bytebot-ui — Web dashboard

Check that everything is running:

docker compose ps

Expected output:

NAME                IMAGE                                      STATUS   PORTS
bytebot-desktop     ghcr.io/bytebot-ai/bytebot-desktop:edge    Up       0.0.0.0:9990->9990/tcp
bytebot-postgres    postgres:16-alpine                          Up       0.0.0.0:5432->5432/tcp
bytebot-agent       ghcr.io/bytebot-ai/bytebot-agent:edge      Up       0.0.0.0:9991->9991/tcp
bytebot-ui          ghcr.io/bytebot-ai/bytebot-ui:edge         Up       0.0.0.0:9992->9992/tcp

Step 4: Access the Dashboard

Open your browser and navigate to:

http://<your-server-ip>:9992

You'll see the Bytebot web interface.

Step 5: Try Your First Task

In the chat interface, type something like:

"Go to Wikipedia and create a summary of quantum computing"

Watch as Bytebot's AI plans the actions, opens Firefox, navigates to Wikipedia, reads the page, and returns a summary — all in real time through the live desktop viewer.

You can also click the Desktop tab to see the virtual desktop directly, or use Takeover Mode to control the desktop manually (useful for setting up credentials or installing software).


⚙️ Configuration Options

Using a Different AI Model

Bytebot works with multiple providers. The agent service auto-detects which API key you've configured. You can also set up LiteLLM to proxy through 100+ providers including local models via Ollama.

Persistent Desktop Environment

The desktop container is persistent by default — install software once and it stays. To customize the desktop:

# custom-desktop.Dockerfile
FROM ghcr.io/bytebot-ai/bytebot-desktop:edge
RUN apt-get update && apt-get install -y \
    libreoffice \
    gimp \
    curl

Then rebuild:

docker compose build bytebot-desktop
docker compose up -d

Resource Tuning

For production use, adjust these in docker-compose.yml:

services:
bytebot-desktop:
  shm_size: "2g"  # Increase for memory-heavy tasks
  deploy:
    resources:
      limits:
        memory: 4g
        cpus: "2"

🔐 Security Notes

  • By default, services are exposed on localhost — if deploying remotely, use a reverse proxy with HTTPS (Caddy, Nginx Proxy Manager)
  • Consider adding authentication via OIDC/SSO or a proxy-level auth
  • API keys are stored in the .env file — keep it outside version control
  • The desktop container runs isolated from your host system

💡 Real-World Use Cases

Use Case Example Task
Invoice Processing "Download all invoices from our vendor portals and organize them into a folder"
Research "Research the top 5 competitors in the AI monitoring space and create a comparison table"
Data Entry "Log into the CRM, export the customer list, and update records in the ERP"
Testing "Run the test suite in VS Code and report any failures with screenshots"
Document Processing "Read these 5 PDF contracts and extract all payment terms and deadlines"

📊 Compared to Alternatives

Feature Bytebot Browser-only agents Traditional RPA
Uses any desktop app
Self-hosted ❌ (usually)
Natural language ❌ (scripting)
Open source ✅ (Apache 2.0) Varies
Live desktop view
API for programmatic control

🔗 Resources


✅ Verification Checklist

After deployment, verify everything works:

  • All 4 containers show Up status
  • Dashboard accessible at http://<ip>:9992
  • Desktop viewer loads (click the Desktop tab)
  • AI task executes successfully
  • noVNC connection on port 9990 works directly

Bytebot is open-source under the Apache 2.0 license. This guide was written on May 1, 2026 — check the GitHub repo for the latest updates.

← Retour au Blog

Bytebot : Hébergez votre propre agent IA de bureau (Guide Docker complet)

Bytebot : Hébergez Votre Propre Agent IA de Bureau 🦞

Qu'est-ce que c'est ? Bytebot est un agent IA open-source (Apache 2.0) qui s'exécute dans un environnement de bureau Linux conteneurisé. Donnez-lui des tâches en langage naturel, et il utilise son propre ordinateur virtuel — avec Firefox, VS Code, un système de fichiers et un curseur de souris — pour les accomplir.

Pourquoi ça cartonne : Bytebot a dépassé les 10 900 étoiles GitHub en quelques mois car il résout un vrai problème : les agents IA sont doués pour générer du texte, mais médiocres pour agir dans de vraies applications. En donnant à l'IA son propre environnement de bureau complet, Bytebot peut naviguer sur le web, télécharger des fichiers, remplir des formulaires, exécuter des scripts et interagir avec des logiciels comme le ferait un humain — le tout dans une stack Docker auto-hébergée.


📋 Prérequis

Avant de commencer, assurez-vous d'avoir :

  • Un serveur Linux (ou toute machine avec Docker) — minimum 4 Go de RAM, 2 cœurs CPU, 20 Go de disque
  • Docker et Docker Compose (v2+) installés
  • Une clé API d'IA chez l'un des fournisseurs supportés :
  • Git pour cloner le dépôt

🧠 Architecture du Système

Bytebot est composé de 4 conteneurs Docker qui fonctionnent ensemble :

Bytebot Architecture

  1. Bureau Virtuel — Ubuntu 22.04 avec XFCE4, Firefox, VS Code, noVNC (port 9990)
  2. Agent IA — Backend NestJS qui orchestre les tâches via LLM (port 9991)
  3. Interface Web — Dashboard Next.js 15 pour gérer les tâches (port 9992)
  4. PostgreSQL — Persistance des tâches et messages

Le flux : Vous décrivez une tâche → L'agent planifie les actions → Envoie des commandes au démon du bureau → Le bureau exécute clics, frappes, captures d'écran → Les résultats sont diffusés en temps réel dans l'interface.


🚀 Déploiement Pas à Pas

Étape 1 : Cloner le Dépôt

git clone https://github.com/bytebot-ai/bytebot.git
cd bytebot

Étape 2 : Configurer le Fournisseur d'IA

Créez un fichier .env dans le dossier docker/ :

cd docker
nano .env

Ajoutez votre clé API. Vous n'avez besoin que d'un seul fournisseur :

# Recommandé : Anthropic Claude (Sonnet 4 ou Opus)
ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

# Alternative : OpenAI
OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

# Alternative : Google Gemini
GEMINI_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Étape 3 : Lancer la Stack

Toujours dans le dossier docker/ :

docker compose up -d

Cela va télécharger et démarrer 4 conteneurs :

  • bytebot-desktop — Le bureau virtuel (Ubuntu + XFCE + noVNC)
  • bytebot-postgres — Base de données pour les tâches
  • bytebot-agent — Service d'orchestration IA
  • bytebot-ui — Tableau de bord web

Vérifiez que tout fonctionne :

docker compose ps

Sortie attendue :

NAME                IMAGE                                      STATUS   PORTS
bytebot-desktop     ghcr.io/bytebot-ai/bytebot-desktop:edge    Up       0.0.0.0:9990->9990/tcp
bytebot-postgres    postgres:16-alpine                          Up       0.0.0.0:5432->5432/tcp
bytebot-agent       ghcr.io/bytebot-ai/bytebot-agent:edge      Up       0.0.0.0:9991->9991/tcp
bytebot-ui          ghcr.io/bytebot-ai/bytebot-ui:edge         Up       0.0.0.0:9992->9992/tcp

Étape 4 : Accéder au Tableau de Bord

Ouvrez votre navigateur et rendez-vous sur :

http://<adresse-de-votre-serveur>:9992

Vous verrez l'interface web de Bytebot.

Étape 5 : Tester votre Première Tâche

Dans l'interface de discussion, tapez quelque chose comme :

"Va sur Wikipédia et crée un résumé sur l'informatique quantique"

Regardez l'IA de Bytebot planifier les actions, ouvrir Firefox, naviguer vers Wikipédia, lire la page et vous renvoyer un résumé — le tout en temps réel dans le visualiseur de bureau.

Vous pouvez aussi cliquer sur l'onglet Desktop pour voir le bureau virtuel directement, ou utiliser le Mode Reprise pour contrôler le bureau manuellement (utile pour configurer des identifiants ou installer des logiciels).


⚙️ Options de Configuration

Utiliser un Modèle d'IA Différent

Bytebot fonctionne avec plusieurs fournisseurs. Le service agent détecte automatiquement la clé API que vous avez configurée. Vous pouvez aussi installer LiteLLM pour utiliser plus de 100 fournisseurs, y compris des modèles locaux via Ollama.

Environnement de Bureau Persistant

Le conteneur de bureau est persistant par défaut — installez un logiciel une fois et il reste. Pour personnaliser le bureau :

# custom-desktop.Dockerfile
FROM ghcr.io/bytebot-ai/bytebot-desktop:edge
RUN apt-get update && apt-get install -y \
    libreoffice \
    gimp \
    curl

Puis reconstruisez :

docker compose build bytebot-desktop
docker compose up -d

Ajustement des Ressources

Pour un usage en production, ajustez ces paramètres dans docker-compose.yml :

services:
bytebot-desktop:
  shm_size: "2g"  # Augmentez pour les tâches gourmandes en mémoire
  deploy:
    resources:
      limits:
        memory: 4g
        cpus: "2"

🔐 Notes de Sécurité

  • Par défaut, les services sont exposés sur localhost — pour un déploiement distant, utilisez un reverse proxy avec HTTPS (Caddy, Nginx Proxy Manager)
  • Envisagez d'ajouter une authentification via OIDC/SSO ou une auth au niveau du proxy
  • Les clés API sont stockées dans le fichier .env — gardez-le hors du contrôle de version
  • Le conteneur de bureau est isolé de votre système hôte

💡 Cas d'Usage Concrets

Cas d'Usage Exemple de Tâche
Traitement de factures "Télécharge toutes les factures de nos portails fournisseurs et organise-les dans un dossier"
Recherche "Recherche les 5 principaux concurrents dans le domaine de la surveillance IA et crée un tableau comparatif"
Saisie de données "Connecte-toi au CRM, exporte la liste des clients et mets à jour les enregistrements dans l'ERP"
Tests "Exécute la suite de tests dans VS Code et signale les échecs avec des captures d'écran"
Traitement de documents "Lis ces 5 contrats PDF et extrais toutes les conditions de paiement et les échéances"

📊 Comparaison avec les Alternatives

Fonctionnalité Bytebot Agents navigateur seul RPA traditionnel
Utilise n'importe quelle app
Auto-hébergé ❌ (généralement)
Langage naturel ❌ (scripts)
Open source ✅ (Apache 2.0) Variable
Vue bureau en direct
API pour contrôle programmatique

🔗 Ressources


✅ Liste de Vérification

Après le déploiement, vérifiez que tout fonctionne :

  • Les 4 conteneurs sont en statut Up
  • Le tableau de bord est accessible sur http://<ip>:9992
  • Le visualiseur de bureau se charge (onglet Desktop)
  • Une tâche IA s'exécute avec succès
  • La connexion noVNC sur le port 9990 fonctionne directement

Bytebot est open-source sous licence Apache 2.0. Ce guide a été rédigé le 1er mai 2026 — consultez le dépôt GitHub pour les dernières mises à jour.