Skip to main content

Self-Hosted Deployment

Run Gobii locally or in your own infrastructure with Docker Compose. This guide covers initial setup, the first-run wizard, optional services, and key integration prerequisites.

Installation and Set-up

Prerequisites

  • Docker Desktop (or Docker Engine) with at least 12 GB RAM allocated.
  • Git.
  • An API key for the LLM provider you plan to use.

Clone and run

git clone https://github.com/gobii-ai/gobii-platform.git
cd gobii-platform
docker compose up --build

When the stack is up, open http://localhost:8000.

First-run wizard

Complete the setup flow in the browser:

  • Create the first admin account.
  • Pick an LLM provider and model, then add the API key.
  • Sign in and create your first Gobii.

You can update providers and models later in Console → LLM Config.

Optional services

Gobii ships additional Compose profiles for self-hosted deployments:

  • beat: scheduled jobs and background dispatchers.
  • email: IMAP IDLE watchers for low-latency email triggers.
  • obs: Flower (Celery observability UI).

Example:

docker compose --profile beat --profile email up --build

For inbound email configuration, see Email And SMS.

Worker queues

Gobii uses separate Celery queues for background work and interactive web chat:

  • celery: default worker queue for email, SMS, Discord, schedules, pending drains, admin jobs, and other background processing.
  • celery.single_instance: default worker queue for scheduled maintenance tasks that should not overlap.
  • agent_interactive: interactive worker queue for console/web chat message processing.

Run both workers in deployments that enable web chat. The interactive worker should use low concurrency and --prefetch-multiplier=1 so one pod does not reserve an interactive message behind another long-running task. The default Docker Compose stack includes an interactive-worker service; if you run Celery outside Compose, start one explicitly:

celery -A config worker -l info -Q celery,celery.single_instance
celery -A config worker -l info -Q agent_interactive --concurrency=1 --prefetch-multiplier=1

The gobii.agent.process_events.queue_latency OpenTelemetry histogram records seconds from enqueue to worker start with a celery.queue attribute. Use it to alert on sustained agent_interactive queue delays.

Operational capabilities to plan

Depending on which Gobii features you enable, your deployment may also need:

  • Provider webhooks for inbound email, SMS, status, opens, and clicks.
  • Public callback URLs for OAuth and MCP server authorization.
  • File storage suitable for uploaded and generated files.
  • Sandbox compute for custom tools if that feature is enabled.
  • Pipedream configuration for connected apps and app-trigger webhooks.
  • Worker capacity for browser work, tools, scheduled jobs, and background processing.
  • LLM routing configuration for persistent agents and browser tasks.
  • Eval-local or staging settings for quality checks before prompt, routing, or system-skill changes.

Integrations

Bright Data

Bright Data web search, markdown scraping, and LinkedIn person profiles use the native Bright Data API. Other Bright Data tools continue to use the preconfigured platform MCP server.

  1. Set BRIGHT_DATA_TOKEN in your deployment environment. Native search requires BRIGHT_DATA_SERP_ZONE, markdown scraping requires BRIGHT_DATA_WEB_UNLOCKER_ZONE, and LinkedIn person profiles require only the token.
    • For Docker Compose, place these values in a .env file and pass them into the web and worker services (or use an env_file).
    • The zones must already exist; Gobii does not create or modify Bright Data zones.
    • Optionally set BRIGHT_DATA_WEB_UNLOCKER_ZONE_FALLBACK to retry failed native markdown scraping requests once with a second Web Unlocker zone.
    • Optionally set BRIGHT_DATA_SEARCH_REQUEST_TIMEOUT_SECONDS to change the 10-second timeout for each native search attempt.
    • Optionally set BRIGHT_DATA_DATASET_POLL_TIMEOUT_SECONDS to change the 600-second maximum wait for a LinkedIn profile snapshot.
  2. Restart the stack so the containers pick up the variables.
  3. Native Bright Data search and markdown scraping are enabled by default. LinkedIn person profiles remain available through normal tool discovery. In the Console, use MCP Servers to manage any additional Bright Data tools.

See MCP Servers for user/admin MCP server management and Remote MCP for Gobii's developer MCP endpoint.