Skip to main content
Self-hosted Chroma servers have configurations that can be used to change telemetry destinations, host and port, and other behaviors. Chroma can be configured through YAML and environment variables.

Current Operator-Facing Env Vars

These are the main environment variables for a current self-hosted Chroma server.
Env varWhat it controlsDefault or notes
CHROMA_PERSIST_PATHDirectory used for persisted dataDefault: ./chroma in the frontend config. Container deployments typically mount /data.
CHROMA_ALLOW_RESETEnables destructive reset operationsDefault: false.
CHROMA_PORTHTTP port for the frontend serverDefault: 8000.
CHROMA_LISTEN_ADDRESSBind address for the frontend serverDefault: 0.0.0.0.
CHROMA_MAX_PAYLOAD_SIZE_BYTESMaximum request payload sizeDefault: 41943040 (40 MiB).
CHROMA_CORS_ALLOW_ORIGINSAllowed CORS originsCurrent config key accepts a list, for example ["*"].
CHROMA_SQLITEDB__MIGRATION_MODESQLite migration modeAllowed values: apply, validate. Default: apply.
CHROMA_SQLITEDB__HASH_TYPESQLite migration hash algorithmAllowed values: md5, sha256. Default: md5.
CHROMA_SQLITE_FILENAMESQLite file name under the persist pathDefault: chroma.sqlite3.
These are specifically for OpenTelemetry:
Env varWhat it controlsDefault or notes
CHROMA_OPEN_TELEMETRY__ENDPOINTOpenTelemetry OTLP endpointUsed for traces in current deploy docs.
CHROMA_OPEN_TELEMETRY__SERVICE_NAMEOpenTelemetry service nameDefault: chromadb.
OTEL_EXPORTER_OTLP_HEADERSOTLP exporter headersCommonly used for auth headers when sending traces.

Legacy Auth Settings

Built-in auth changed significantly before the Rust rewrite, and Chroma v1.0.0 no longer ships built-in authentication implementations. You may still see these variables in older examples and migration notes:
  • CHROMA_SERVER_AUTHN_PROVIDER
  • CHROMA_SERVER_AUTHN_CREDENTIALS
  • CHROMA_SERVER_AUTHN_CREDENTIALS_FILE
  • CHROMA_SERVER_AUTHZ_PROVIDER
  • CHROMA_SERVER_AUTHZ_CONFIG
  • CHROMA_SERVER_AUTHZ_CONFIG_FILE
  • CHROMA_AUTH_TOKEN_TRANSPORT_HEADER
Treat these as historical unless you are intentionally working with older Python-era server configurations.