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.
- Set
BRIGHT_DATA_TOKENin your deployment environment. Native search requiresBRIGHT_DATA_SERP_ZONE, markdown scraping requiresBRIGHT_DATA_WEB_UNLOCKER_ZONE, and LinkedIn person profiles require only the token.- For Docker Compose, place these values in a
.envfile and pass them into thewebandworkerservices (or use anenv_file). - The zones must already exist; Gobii does not create or modify Bright Data zones.
- Optionally set
BRIGHT_DATA_WEB_UNLOCKER_ZONE_FALLBACKto retry failed native markdown scraping requests once with a second Web Unlocker zone. - Optionally set
BRIGHT_DATA_SEARCH_REQUEST_TIMEOUT_SECONDSto change the 10-second timeout for each native search attempt. - Optionally set
BRIGHT_DATA_DATASET_POLL_TIMEOUT_SECONDSto change the 600-second maximum wait for a LinkedIn profile snapshot.
- For Docker Compose, place these values in a
- Restart the stack so the containers pick up the variables.
- 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.