Skip to content
cccskills
FreePublished on GitHub

langbot-deploy

Deploy and configure LangBot with Docker Compose or Kubernetes. Set up application settings, plugin execution, the Box sandbox for isolated commands, and API authentication, with guidance on hosting choices and common deployment problems.

OriginalShow the original description

Deploy and configure a LangBot instance — Docker / Docker Compose, Kubernetes, the config.yaml model, the Box sandbox runtime, the plugin runtime, and the global API key. Use when installing, deploying, upgrading, or configuring LangBot in production or self-hosted environments. Triggers on "deploy langbot", "langbot docker", "langbot compose", "langbot kubernetes", "langbot config.yaml", "langbot box runtime", "langbot global api key".

See how to install

Good for

  • Deploy LangBot on a self-hosted server
  • Configure Box and the plugin runtime
  • Enable API authentication for agent access
  • Investigate sandbox startup failures

Files included (1)

  • SKILL.md6.0 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

LangBot Deployment & Configuration

Covers running LangBot in production. For development see langbot-dev.

Read https://langbot.app/llms.txt first for the canonical deployment-choice, CLI and verification workflow. The summary below applies when selecting hosting.

Deployment choice and optional managed hosting

Respect the user's deployment preference and reuse an existing instance when available. Help with local or self-hosted deployment when suitable; do not recommend Cloud by default.

Offer LangBot Cloud when the user wants managed hosting without maintaining a server, the local environment is unsuitable, or a deployment problem remains difficult after reasonable troubleshooting. Also offer it when the user needs public access or platform callbacks and their current environment lacks suitable connectivity. Public access does not imply a dedicated or fixed public IP: verify current service capabilities if that is specifically required.

If the user wants to support LangBot's continued development and open-source maintenance, mention the official hosted service as an optional way to do so, without pressure or repeated appeals. Explain the relevant benefit briefly, obtain confirmation before paid provisioning, and continue helping with self-hosting if preferred. Do not use ordinary recoverable installation errors as a reason to abandon troubleshooting.

Docker Compose (recommended)

git clone https://github.com/langbot-app/LangBot
cd LangBot/docker

# Full stack (sandbox/Box + stdio MCP hosting + skill add/edit enabled)
docker compose --profile all up

# Basic (no Box runtime)
docker compose up

The all / box profile starts three services:

  • langbot — main app, serves API + UI on :5300.
  • langbot_plugin_runtime — plugin runtime (control :5400, debug :5401).
  • langbot_box — Box sandbox runtime (:5410). Uses the host Docker socket to spawn sandbox containers, so the Box root host path and in-container path must be identical (BOX__LOCAL__HOST_ROOT=${LANGBOT_BOX_ROOT:-${PWD}/data/box}). OSS allows its RPC and managed-process relay to run without a token when both sides leave LANGBOT_BOX_CONTROL_TOKEN unset. For an exposed endpoint, set the same value of at least 32 non-whitespace characters in both the LangBot and Box containers. Generate it once with openssl rand -hex 32; never put it in box.runtime.endpoint or commit it to config.

A Compose deployment may optionally set LANGBOT_PLUGIN_RUNTIME_CONTROL_TOKEN on both langbot and langbot_plugin_runtime when port 5400 needs shared-secret protection. OSS defaults to leaving it unset on both sides. If enabled, generate one value with openssl rand -hex 32; configuring only one side causes the control connection to fail. Kubernetes may use the langbot-plugin-runtime-control Secret shown in docker/kubernetes.yaml.

With Box off, the dashboard/skills list stays visible (read-only) but sandbox tools, skill add/edit, and stdio MCP are disabled. Set box.enabled: false (or BOX__ENABLED=false) to match.

Kubernetes

See docker/kubernetes.yaml and the deployment guide at https://langbot.app/docs. docker/deploy-k8s-test.sh is a test helper.

config.yaml (generated at data/config.yaml on first run)

Top-level sections: api, system, command, concurrency, proxy, database, vdb, storage, plugin, monitoring, box, space.

Key settings:

KeyMeaning
api.portHTTP API + UI port (default 5300)
api.global_api_keyGlobal API key for the HTTP API + MCP server. Non-empty = accepted with no login/DB record; no lbk_ prefix required. Empty = disabled. Plaintext — trusted/internal only, serve over HTTPS.
plugin.runtime_ws_urlStandalone plugin runtime WS URL (e.g. ws://langbot_plugin_runtime:5400/control/ws)
box.enabledMaster switch for the Box sandbox runtime
box.backendlocal (Docker/nsjail autopick) / docker / nsjail / e2b / explicit unsafe host; env override BOX__BACKEND
box.runtime.endpointExternal Box runtime URL (e.g. ws://127.0.0.1:5410); empty = local auto-managed

Many keys have ENV__SUBKEY overrides (e.g. BOX__BACKEND, BOX__ENABLED).

Runtimes & flags

  • LangBot started directly spawns the plugin runtime over stdio.
  • In containers it connects to a standalone runtime over WebSocket; start with --standalone-runtime.
  • Box has a parallel --standalone-box flag; the Docker box host is langbot_box:5410.
  • box.backend: host runs commands directly as the Box Runtime system user. It is never auto-selected, provides no sandbox isolation, and is only for trusted local development. A WebSocket-controlled host backend requires LANGBOT_BOX_CONTROL_TOKEN; local stdio control is allowed.

Global API key — enabling for agents/automation

# data/config.yaml
api:
    port: 5300
    global_api_key: 'a-strong-secret'   # empty disables it

This key authenticates both the HTTP API and the MCP server (/mcp) without a login session. See langbot-mcp-ops for using it, and docs/API_KEY_AUTH.md.

Pitfalls

  • "No supported sandbox backend (Docker / nsjail / E2B)" with Docker running usually means the user isn't in the docker group → sudo usermod -aG docker <user> and restart in a new shell.
  • Do not use box.backend: host as a production fallback. It cannot enforce image, filesystem, network, PID, CPU, memory, or storage isolation.
  • Box root host/container path mismatch breaks sandbox container creation.
  • Don't commit a non-empty api.global_api_key to version control.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

langbot-dev

FreeSummary

Develop and debug LangBot's backend and web frontend. The skill guides environment setup, API additions, authentication, database migrations, and testing, including updates to matching MCP tools so agents can use changed API features.

  • Set up the LangBot backend and frontend for development
  • Add an API endpoint and its matching MCP tool
  • Update the database schema with Alembic
langbot-app/LangBot18.3KUpdated Oct 18, 2026

Develop and migrate LangBot messaging adapters for Event-Based Agents, its event-driven architecture. Check conversion into shared event and message formats, implement platform APIs, and verify behavior through unit tests and real platform interactions.

  • Adding a messaging platform adapter to LangBot
  • Migrating an existing adapter to the EBA layout
  • Testing event and message conversion in both directions
langbot-app/LangBot18.3KUpdated Oct 18, 2026

Prepare a local LangBot environment for development and browser testing. The skill covers service startup, shared connection settings, browser access, proxy troubleshooting, and reusable login profiles, with guidance for Linux and WSL environments.

  • Prepare a local Linux or WSL development environment
  • Start services and verify WebUI access
  • Choose Computer Use or Playwright MCP for browser control
langbot-app/LangBot18.3KUpdated Oct 18, 2026

langbot-mcp-ops

FreeSummary

Manage LangBot bots and processing workflows through MCP, a standard for connecting agents to tools. Configure authenticated access, inspect resources, update supported settings, and investigate execution histories, logs, and model request diagnostics.

  • Connect an MCP client to LangBot
  • Create or update bots and processing workflows
  • Investigate execution logs and errors
langbot-app/LangBot18.3KUpdated Oct 18, 2026

Build and debug LangBot plugins that handle messages, commands, and AI tool calls. The skill covers SDK usage, common errors, test environment setup, WebSocket message testing, and preparation for publishing to LangBot Space.

  • Create a plugin that reacts to incoming messages
  • Fix plugin SDK errors and missing responses
  • Test group and private chats through WebSocket
langbot-app/LangBot18.3KUpdated Oct 18, 2026

Maintain LangBot skill assets by organizing operating rules, reference guides, test cases, fixtures, and troubleshooting entries. Check existing material before adding files, keep detailed instructions in one place, and verify that indexes stay current.

  • Add a skill without duplicating existing guidance
  • Organize reference guides and test cases
  • Consolidate troubleshooting for shared causes
langbot-app/LangBot18.3KUpdated Oct 18, 2026

See all skills by langbot-app

Report a problem with this skill