Self-Hosting

Deploy Jiro on your own infrastructure with Docker, docker-compose, or systemd.

Quick Start

The fastest way to get Jiro running on your own infrastructure. Requires Python 3.10+ and Redis.

Step 1: Install - pip install jirosearch

Step 2: Start the server - jiro serve

Step 3: Verify - curl http://localhost:8000/health

The server starts on port 8000 by default. All 9 search engines and 12 social platforms are available immediately. No API key is required for self-hosted instances unless you enable authentication.

bash

Docker

Run Jiro in a Docker container for isolated and reproducible deployments:

bash

Docker Compose

Use docker-compose for a complete stack with Redis included:

yaml

Systemd Service

Run Jiro as a systemd service for automatic startup and process management:

ini

Configuration

Jiro uses a YAML configuration file at ~/.jiro/config.yaml. All settings can also be overridden with environment variables prefixed with JIRO_ (double underscore __ for nested keys). Secrets can be interpolated from the environment using ${VAR} syntax.

yaml

Environment Variables

All configuration options can be set via environment variables. Use JIRO_ prefix with double underscores __ for nested keys. Secrets can use ${VAR} interpolation in YAML.

Environment Variables

NameTypeDescription
JIRO_SERVER__HOST
stringServer bind address. Default: `127.0.0.1`.
JIRO_SERVER__PORT
integerServer port. Default: `8000`.
JIRO_SERVER__WORKERS
integerNumber of worker processes. Default: `1`.
JIRO_AUTH__ENABLED
booleanEnable API key authentication. Default: `true`.
JIRO_CACHE__TYPE
stringCache backend. Options: `sqlite`, `memory`, `redis`. Default: `sqlite`.
JIRO_CACHE__TTL_SECONDS
integerCache TTL in seconds. Default: `3600`.
JIRO_SCRAPING__DEFAULT_ENGINE
stringDefault search engine. Default: `google`.
JIRO_LLM__PROVIDER
stringLLM provider. Options: `openai`, `anthropic`, `gemini`, `openrouter`, `ollama`. Default: `openai`.
JIRO_LLM__MODEL
stringLLM model name. Default: `gpt-4o-mini`.
JIRO_LOGGING__LEVEL
stringLogging level. Options: `debug`, `info`, `warning`, `error`. Default: `info`.
JIRO_LICENSE_TOKEN
stringEnterprise license token for unlocking premium features.

Need help?

Check our error codes or reach out to the team.