Skip to content

Configuration reference

Hive is configured with environment variables. Keep secrets in the runtime environment or in your deployment secret manager, not in source control. The deployment platform must provide the required database and application settings.

Core runtime

SECRET_KEY_BASE

Required in production. Hive uses this value to protect session data. Generate it with mix phx.gen.secret or another cryptographically secure 64-byte random-value generator.

DATABASE_URL

Required for direct container deployments. PostgreSQL connection string, for example ecto://USER:PASS@HOST/DATABASE.

PHX_HOST

Public host name used to build application links. Set it to the deployed Hive domain.

PORT

Hypertext Transfer Protocol (HTTP) port Hive listens on. Defaults to 4000.

POOL_SIZE

PostgreSQL connection pool size. Defaults to 10.

DATABASE_SSL

Set to true or 1 to connect to PostgreSQL with Transport Layer Security (TLS).

DATABASE_SSL_CA_CERT_FILE

Path to the certificate authority file used to verify the PostgreSQL server certificate when secure connection verification is required.

ECTO_IPV6

Set to true or 1 when the database connection should use Internet Protocol version 6 (IPv6). Optional.

Access control

HIVE_VISIBILITY

Controls anonymous access to the dashboard. public allows anonymous visitors to view public content. private requires sign-in before any dashboard page loads.

HIVE_ORG_DOMAINS

Comma-separated email domains that become organization members at signup. When unset, every signed-in user becomes a member.

Email notifications

Email delivery is disabled by default. People can still save notification preferences while it is disabled, but Hive does not send messages until a provider and sender are configured. Daily summaries are sent at 08:00 Coordinated Universal Time.

HIVE_EMAIL_PROVIDER

Selects the outgoing email provider. Use none to disable delivery, postmark for Postmark, or smtp for a Simple Mail Transfer Protocol server. Defaults to none.

HIVE_EMAIL_FROM

Verified sender address used for notification email. Write it on its own (notifications@example.com) or with a display name (Hive <notifications@example.com>); readers see the display name and the mail server receives the address. Required when email delivery is enabled, and Hive refuses to start when the value is not an email address.

HIVE_POSTMARK_SERVER_TOKEN

Postmark server token. Required when HIVE_EMAIL_PROVIDER=postmark.

HIVE_EMAIL_MESSAGE_STREAM

Optional Postmark message stream. Leave it unset to use the server's default transactional stream.

HIVE_SMTP_RELAY

Host name of the outgoing Simple Mail Transfer Protocol server. Required when HIVE_EMAIL_PROVIDER=smtp.

HIVE_SMTP_PORT

Port for the outgoing mail server. Defaults to 587. Port 465 enables implicit Transport Layer Security; other ports require the server to upgrade the connection with Transport Layer Security.

HIVE_SMTP_USERNAME

Optional outgoing mail username. Set it together with HIVE_SMTP_PASSWORD.

HIVE_SMTP_PASSWORD

Optional outgoing mail password. Set it together with HIVE_SMTP_USERNAME.

Authentication providers

HIVE_GOOGLE_CLIENT_ID

Google Open Authorization (OAuth 2.0) client identifier for Google sign-in.

HIVE_GOOGLE_CLIENT_SECRET

Google Open Authorization 2.0 client secret for Google sign-in.

HIVE_GOOGLE_ALLOWED_DOMAINS

Optional comma-separated email domain allowlist for Google sign-in. When exactly one domain is set, Hive also sends Google's hosted-domain hint to the account picker.

HIVE_OIDC_ISSUER

Issuer base address for a generic OpenID Connect provider. Hive discovers provider endpoints from <issuer>/.well-known/openid-configuration.

HIVE_OIDC_CLIENT_ID

Generic OpenID Connect client identifier.

HIVE_OIDC_CLIENT_SECRET

Optional generic OpenID Connect client secret.

HIVE_OIDC_DISPLAY_NAME

Optional label for the generic OpenID Connect login button. Defaults to Identity provider.

HIVE_OIDC_ALLOWED_DOMAINS

Optional comma-separated email domain allowlist for generic OpenID Connect sign-in.

HIVE_GITHUB_CLIENT_ID

GitHub Open Authorization 2.0 client identifier for GitHub sign-in.

HIVE_GITHUB_CLIENT_SECRET

GitHub Open Authorization 2.0 client secret for GitHub sign-in.

HIVE_GITHUB_ALLOWED_DOMAINS

Optional comma-separated email domain allowlist for GitHub sign-in.

GitHub App

HIVE_GITHUB_APP_ID

GitHub App identifier used for repository and webhook integrations.

HIVE_GITHUB_APP_INSTALLATION_ID

GitHub App installation identifier.

HIVE_GITHUB_APP_PRIVATE_KEY

Private key for the GitHub App installation. Accepts Privacy Enhanced Mail text or a base64-encoded value.

HIVE_GITHUB_WEBHOOK_SECRET

Optional signing secret for requests sent to /webhooks/github.

HIVE_GITHUB_API_URL

Optional GitHub application programming interface (API) base address. Defaults to https://api.github.com.

Agent Model Provider

HIVE_LLM_API_KEY

Fallback provider key for features backed by a large language model. Agentic workflows prefer the profile marked Use for Hive inference in the dashboard. Flights first prefer the profile marked Use for Hive coding, then fall back to the general inference profile. When no applicable profile is marked and this value is unset, agentic workflows stay dormant.

HIVE_LLM_MODEL

Fallback model identifier in provider:model_id form, for example anthropic:claude-haiku-4-5. Required when HIVE_LLM_API_KEY is set. For an OpenAI-compatible gateway such as Together.ai, use the openai: prefix together with HIVE_LLM_BASE_URL.

HIVE_LLM_BASE_URL

Optional fallback provider endpoint override for OpenAI-compatible gateways or self-hosted providers.

Flight runners

Flights require a profile marked Use for Hive coding, a general Hive inference profile, or the launch-time model configuration. They also require a configured GitHub App and one of the sandbox runners below. They are disabled when any required part is missing. The model and GitHub credentials stay in Hive and are never passed into the sandbox.

HIVE_CODING_RUNNER

Names the sandbox provider used for new Flights. Use microsandbox for local development, kubernetes for production on Kubernetes Agent Sandbox, or disabled to turn Flights off. The default is microsandbox in development and disabled in other environments.

The local runner requires the microsandbox executable installed by mise install. The Kubernetes runner requires Agent Sandbox 0.5.1 or newer, a gVisor runtime class, and permission for Hive to create Sandbox resources and execute commands in their pods.

Other names select a custom provider supplied through HIVE_CODING_SANDBOX_MODULE. The name is stored with each Flight, so keep it stable when changing that provider's implementation.

HIVE_CODING_SANDBOX_MODULE

Fully qualified Elixir module for a custom sandbox provider. The module must be compiled into the Hive release and implement the Condukt sandbox behaviour. Hive validates the required file, search, and command operations before enabling Flights. Built-in microsandbox and kubernetes providers ignore this setting.

Hive creates the repository baseline after the custom provider starts. The provider is responsible only for creating the isolated environment and implementing the Condukt operations. It must provide a Unix-compatible shell and use /workspace as its working directory.

HIVE_CODING_SANDBOX_OPTIONS

JavaScript Object Notation (JSON) object containing runner-specific options. Custom providers receive it unchanged, which allows adapters for services such as Daytona or E2B without adding provider settings to Hive itself. Defaults to an empty object.

Options may contain provider credentials. Keep them in the deployment secret manager and never commit them to the repository.

The Kubernetes provider accepts:

FieldBehavior
in_clusterUses Hive's mounted Kubernetes service-account identity. Set this to true for normal deployments.
kubeconfigUses a kubeconfig file instead of the in-cluster identity. Intended for development and diagnostics.
namespaceNamespace where Sandbox resources are created. Defaults to hive-sandboxes.
runtime_class_nameRuntime class enforced on every sandbox. Defaults to gvisor.
service_accountService account assigned to sandbox pods. Its token is never mounted.
image_pull_policyKubernetes image-pull policy for the coding image. Defaults to IfNotPresent.
node_selectorLabels that select dedicated sandbox worker nodes.
tolerationsTolerations required by dedicated, tainted sandbox workers.
image_pull_secretsNames of image-pull secrets available in the sandbox namespace.
ready_timeout_msMaximum time to wait for Agent Sandbox to report ready. Defaults to 120000.

The Hive chart produces this object from codingRuns.kubernetes values. It also creates the namespace-scoped permissions, service account, network policy, and resource quota. The cluster operator must install Agent Sandbox and configure gVisor on the selected worker nodes before enabling the runner.

HIVE_MICROSANDBOX_HOME

Optional state directory for the local microsandbox runtime. Hive defaults to the short application-specific /tmp/hive-msb directory so Unix socket paths remain within operating-system limits and Flights do not share runtime metadata with manually managed local sandboxes.

HIVE_CODING_IMAGE

Open Container Initiative (OCI) image used for each isolated run. Defaults to ubuntu:24.04.

The default image can inspect and edit code after the setup command installs Git and ripgrep. To run repository validation, use a pinned image containing that repository's build tools or extend HIVE_CODING_SETUP_COMMAND to install them. Production deployments should use an immutable image tag.

HIVE_CODING_CPUS

Virtual processor count assigned to each sandbox. Defaults to 2.

HIVE_CODING_MEMORY_MIB

Sandbox memory in mebibytes. Defaults to 4096.

HIVE_CODING_DISK_MIB

Scratch-disk capacity in mebibytes. Defaults to 8192. Kubernetes applies it as the workspace's ephemeral-volume size limit. The local microsandbox provider does not use this setting.

HIVE_CODING_TIMEOUT_MINUTES

Maximum duration of one Flight in minutes. Defaults to 30. Hive also sets the remote sandbox's automatic cleanup timer beyond this limit.

HIVE_CODING_SETUP_COMMAND

Shell command executed once after the sandbox starts and before the coding harness receives control. The default installs Git, ripgrep, and certificate authority data with Ubuntu's package manager. Set it to true when a custom image already contains every required tool.

The setup command is operator-controlled. Alert content and model output are never interpolated into it. Kubernetes sandboxes run as a non-root user, so their image should already contain required system packages and normally use true as the setup command.

Model Gateway

HIVE_INFERENCE_PROVIDERS

JavaScript Object Notation (JSON) object that declares one or more upstream model providers for the model gateway.

HIVE_INFERENCE_UPSTREAM_ID

Identifier for the single upstream provider shorthand. Defaults to default.

HIVE_INFERENCE_UPSTREAM_BASE_URL

Base address for the single upstream provider shorthand. For Together.ai, use https://api.together.ai/v1.

HIVE_INFERENCE_UPSTREAM_API_KEY

Optional provider key for the single upstream provider shorthand.

HIVE_INFERENCE_UPSTREAM_TIMEOUT

Optional upstream request timeout for the single upstream provider shorthand.

Object storage

HIVE_OBJECT_STORAGE_PROVIDER

Object storage backend. Use none to disable object storage or s3 to use Amazon Simple Storage Service (S3)-compatible storage.

HIVE_S3_BUCKET

Object storage bucket name.

HIVE_S3_REGION

Object storage region. Defaults to us-east-1.

HIVE_S3_ENDPOINT_URL

Endpoint address for S3-compatible providers.

HIVE_S3_ACCESS_KEY_ID

Access key identifier for S3-compatible object storage.

HIVE_S3_SECRET_ACCESS_KEY

Secret access key for S3-compatible object storage.

HIVE_S3_PUBLIC_BASE_URL

Optional public base address for generated object links.

HIVE_S3_FORCE_PATH_STYLE

Set to true or 1 for S3-compatible providers that require path-style bucket addressing.

Slack

HIVE_SLACK_CLIENT_ID

Slack app client identifier.

HIVE_SLACK_CLIENT_SECRET

Slack app client secret.

HIVE_SLACK_SIGNING_SECRET

Slack app signing secret used to verify incoming Slack requests.

HIVE_SLACK_BOT_SCOPES

Optional comma-separated Slack bot authorization scope list. Defaults to the scopes Hive needs for installation, message capture, replies, and link unfurling.

HIVE_SLACK_ALLOWED_TEAM_IDS

Optional comma-separated Slack workspace identifier allowlist.

Observability

SENTRY_DSN

Sentry Data Source Name (DSN) for error reporting. When unset, Sentry reporting is disabled.

SENTRY_ENVIRONMENT

Deployment environment tag for Sentry events.

SENTRY_RELEASE

Release tag for Sentry events.

SENTRY_OBAN_CAPTURE_ERRORS

Set to true or 1 to report background tasks that exhaust their attempts. Defaults to true.

SENTRY_OBAN_REPORT_RETRIES

Set to true or 1 to report retryable background-task failures before their final attempt. Defaults to false.

SENTRY_OBAN_CRON_MONITORING

Set to true or 1 to send Sentry check-ins for scheduled tasks. Defaults to true.

Vector database

HIVE_OPENDATA_VECTOR_URL

Optional base address for a compatible vector service. Current deployments can leave it unset unless a feature explicitly requires vector search.

Released under the Mozilla Public License 2.0.