Skip to content

Environment Variables

Hayhooks can be configured via environment variables (loaded with prefix HAYHOOKS_ or LOG). This page lists the canonical variables supported by the codebase.

Server

HAYHOOKS_HOST

  • Default: localhost
  • Description: Host for the FastAPI app

HAYHOOKS_PORT

  • Default: 1416
  • Description: Port for the FastAPI app

HAYHOOKS_ROOT_PATH

  • Default: ""
  • Description: Root path to mount the API under (FastAPI root_path)

HAYHOOKS_PIPELINES_DIR

  • Default: ./pipelines
  • Description: Directory containing pipelines to auto-deploy on startup

HAYHOOKS_ADDITIONAL_PYTHON_PATH

  • Default: ""
  • Description: Additional path appended to sys.path for wrapper imports

HAYHOOKS_USE_HTTPS

  • Default: false
  • Description: Use HTTPS when the CLI calls the server (affects CLI only)

HAYHOOKS_DISABLE_SSL

  • Default: false
  • Description: Disable SSL verification for CLI calls

HAYHOOKS_SHOW_TRACEBACKS

  • Default: false
  • Description: Include tracebacks in error messages (server and MCP)

MCP

HAYHOOKS_MCP_HOST

  • Default: localhost
  • Description: Host for the MCP server

HAYHOOKS_MCP_PORT

  • Default: 1417
  • Description: Port for the MCP server

CORS

These map 1:1 to FastAPI CORSMiddleware and the settings in hayhooks.settings.AppSettings.

HAYHOOKS_CORS_ALLOW_ORIGINS

  • Default: ["*"]
  • Description: List of allowed origins

HAYHOOKS_CORS_ALLOW_METHODS

  • Default: ["*"]
  • Description: List of allowed HTTP methods

HAYHOOKS_CORS_ALLOW_HEADERS

  • Default: ["*"]
  • Description: List of allowed headers

HAYHOOKS_CORS_ALLOW_CREDENTIALS

  • Default: false
  • Description: Allow credentials

HAYHOOKS_CORS_ALLOW_ORIGIN_REGEX

  • Default: null
  • Description: Regex pattern for allowed origins

HAYHOOKS_CORS_EXPOSE_HEADERS

  • Default: []
  • Description: Headers to expose in response

HAYHOOKS_CORS_MAX_AGE

  • Default: 600
  • Description: Maximum age for CORS preflight responses in seconds

Logging

LOG (log level)

  • Default: INFO
  • Description: Global log level (consumed by Loguru). Example: LOG=DEBUG hayhooks run

Logging Configuration

Format/handlers are configured internally; Hayhooks does not expose HAYHOOKS_LOG_FORMAT or HAYHOOKS_LOG_FILE env vars at this time.

Usage Examples

Docker

docker run -d \
  -e HAYHOOKS_HOST=0.0.0.0 \
  -e HAYHOOKS_PORT=1416 \
  -e HAYHOOKS_PIPELINES_DIR=/app/pipelines \
  -v "$PWD/pipelines:/app/pipelines:ro" \
  -p 1416:1416 \
  deepset/hayhooks:latest

Pipeline Directory Required

Without mounting a pipelines directory (or baking pipelines into the image), the server will start but no pipelines will be deployed.

Development

export HAYHOOKS_HOST=127.0.0.1
export HAYHOOKS_PORT=1416
export HAYHOOKS_PIPELINES_DIR=./pipelines
export LOG=DEBUG

hayhooks run

MCP Server startup

export HAYHOOKS_MCP_HOST=0.0.0.0
export HAYHOOKS_MCP_PORT=1417

hayhooks mcp run

.env file example

HAYHOOKS_HOST=0.0.0.0
HAYHOOKS_PORT=1416
HAYHOOKS_MCP_HOST=0.0.0.0
HAYHOOKS_MCP_PORT=1417
HAYHOOKS_PIPELINES_DIR=./pipelines
HAYHOOKS_ADDITIONAL_PYTHON_PATH=./custom_code
HAYHOOKS_USE_HTTPS=false
HAYHOOKS_DISABLE_SSL=false
HAYHOOKS_SHOW_TRACEBACKS=false
HAYHOOKS_CORS_ALLOW_ORIGINS=["*"]
LOG=INFO

Configuration Note

  • Worker count, timeouts, and other server process settings are CLI flags (e.g., hayhooks run --workers 4).
  • YAML/file saving and MCP exposure are controlled per-deploy via API/CLI flags, not global env vars.

Next Steps