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:
| Field | Behavior |
|---|---|
in_cluster | Uses Hive's mounted Kubernetes service-account identity. Set this to true for normal deployments. |
kubeconfig | Uses a kubeconfig file instead of the in-cluster identity. Intended for development and diagnostics. |
namespace | Namespace where Sandbox resources are created. Defaults to hive-sandboxes. |
runtime_class_name | Runtime class enforced on every sandbox. Defaults to gvisor. |
service_account | Service account assigned to sandbox pods. Its token is never mounted. |
image_pull_policy | Kubernetes image-pull policy for the coding image. Defaults to IfNotPresent. |
node_selector | Labels that select dedicated sandbox worker nodes. |
tolerations | Tolerations required by dedicated, tainted sandbox workers. |
image_pull_secrets | Names of image-pull secrets available in the sandbox namespace. |
ready_timeout_ms | Maximum 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.
