Skip to main content

Environment variables

To configure Weaviate in a Docker or a Kubernetes deployment, set these environment variables

Boolean environment variables

For Boolean environment variables, "on", "enabled", "1", and "true" are interpreted as true.

All other values are interpreted as false.

General

VariableDescriptionTypeExample Value
ASYNC_INDEXING(Experimental as of v1.22.)

If set, Weaviate creates vector indexes asynchronously to the object creation process. This can be useful for importing large amounts of data. (default: false)
booleanfalse
AUTOSCHEMA_ENABLEDWhether to infer the schema where necessary with the autoschema (default: true)booleantrue
DEFAULT_VECTORIZER_MODULEDefault vectorizer module - will be overridden by any class-level value defined in the schemastringtext2vec-contextionary
DISABLE_LAZY_LOAD_SHARDSNew in v1.23. When false, enable lazy shard loading to improve mean time to recovery in multi-tenant deployments.stringfalse
DISABLE_TELEMETRYDisable telemetry data collectionbooleanfalse
DISK_USE_READONLY_PERCENTAGEIf disk usage is higher than the given percentage all shards on the affected node will be marked as READONLY, meaning all future write requests will fail. See Disk Pressure Warnings and Limits for details.string - number90
DISK_USE_WARNING_PERCENTAGEIf disk usage is higher than the given percentage a warning will be logged by all shards on the affected node's disk. See Disk Pressure Warnings and Limits for details.string - number80
DISABLE_GO_PROFILINGIf true, disables Go profiling. Default: false.booleanfalse
ENABLE_API_BASED_MODULESEnable all API-based modules. (Experimental as of v1.26.0)booleantrue
ENABLE_MODULESSpecify Weaviate modules to enablestring - comma separated namestext2vec-openai,generative-openai
ENABLE_TOKENIZER_GSEEnable the GSE tokenizer for usebooleantrue
ENABLE_TOKENIZER_KAGOME_KREnable the Kagome tokenizer for Korean for use (Experimental as of v1.25.7)booleantrue
GODEBUGControls debugging variables within the runtime. See official Go docs.string - comma-separated list of name=val pairsgctrace=1
GOMAXPROCSSet the maximum number of threads that can be executing simultaneously. If this value is set, it be respected by LIMIT_RESOURCES.string - numberNUMBER_OF_CPU_CORES
GOMEMLIMITSet the memory limit for the Go runtime. This should match your available memory, such as 10-20% of your total memory for Weaviate. The Go runtime tries to make sure that long-lived and temporary memory allocations do not exceed this value by making the garbage collector more aggressive as the memory usage approaches the limit. Learn more about GOMEMLIMIT.string - memory limit in SI units4096MiB
LIMIT_RESOURCESIf true, Weaviate will automatically attempt to auto-detect and limit the amount of resources (memory & threads) it uses to (0.8 * total memory) and (number of cores-1). It will override any GOMEMLIMIT values, however it will respect GOMAXPROCS values.booleanfalse
LOG_FORMATSet the Weaviate logging format

Default: Outputs log data to json. e.g.: {"action":"startup","level":"debug","msg":"finished initializing modules","time":"2023-04-12T05:07:43Z"}
text: Outputs log data to a string. e.g. time="2023-04-12T04:54:23Z" level=debug msg="finished initializing modules" action=startup
string
LOG_LEVELSets the Weaviate logging level. Default: info

panic: Panic entries only. (new in v1.24)
fatal: Fatal entries only. (new in v1.24)
error: Error entries only. (new in v1.24)
warning: Warning entries only. (new in v1.24)
info: General operational entries.
debug: Very verbose logging.
trace: Even finer-grained informational events than debug.
string
MODULES_CLIENT_TIMEOUTTimeout for requests to Weaviate modules. Default: 50sstring - duration5s, 10m, 1h
ORIGINSet the http(s) origin for Weaviatestring - HTTP originhttps://my-weaviate-deployment.com
PERSISTENCE_DATA_PATHPath to the Weaviate data storestring - file path/var/lib/weaviate
Starting in v1.24, defaults to ./data
PERSISTENCE_HNSW_MAX_LOG_SIZEMaximum size of the HNSW write-ahead-log. Increase this to improve log compaction efficiency, or decrease to reduce memory requirements. Default: 500MiBstring4GiB (IEC units), 4GB (SI units), 4000000000 (bytes)
PERSISTENCE_LSM_ACCESS_STRATEGYFunction used to access disk data in virtual memory. Default: mmapstringmmap or pread
PERSISTENCE_LSM_MAX_SEGMENT_SIZEMaximum size of a segment in the LSM store. Set this to limit disk usage spikes during compaction to ~2x the segment size. Default: no limitstring4GiB (IEC units), 4GB (SI units), 4000000000 (bytes)
PROFILING_PORTSets the port for the Go profiler. Default: 6060integer6060
PROMETHEUS_MONITORING_ENABLEDIf set, Weaviate collects metrics in a Prometheus-compatible formatbooleanfalse
PROMETHEUS_MONITORING_GROUPIf set, Weaviate groups metrics for the same class across all shards.booleantrue
QUERY_DEFAULTS_LIMITSets the default number of objects to be returned in a query.string - number25
Starting in v1.24, defaults to 10
QUERY_MAXIMUM_RESULTSSets the maximum total number of objects that can be retrieved.string - number10000
QUERY_SLOW_LOG_ENABLEDLog slow queries for debugging. Requires a restart to update.
(New in 1.24.16, 1.25.3)
booleanFalse
QUERY_SLOW_LOG_THRESHOLDSet a threshold time for slow query logging. Requires a restart to update.
(New in 1.24.16, 1.25.3)
string2s
Values are times: 3h, 2s, 100ms
REINDEX_SET_TO_ROARINGSET_AT_STARTUPAllow Weaviate to perform a one-off re-indexing to use Roaring Bitmaps.

Available in versions 1.18 and higher.
booleantrue
TOMBSTONE_DELETION_CONCURRENCYThe maximum number of cores to use for tombstone deletion. Set this to limit the number of cores used for cleanup. Default: Half of the available cores. (New in v1.24.0)string - int4
TOMBSTONE_DELETION_MAX_PER_CYCLEMaximum number of tombstones to delete per cleanup cycle. Set this to limit cleanup cycles, as they are resource-intensive. As an example, set a maximum of 10000000 (10M) for a cluster with 300 million-object shards. Default: nonestring - int (New in v1.24.15 / v1.25.2)10000000
TOMBSTONE_DELETION_MIN_PER_CYCLEMinimum number of tombstones to delete per cleanup cycle. Set this to prevent triggering unnecessary cleanup cycles below a threshold. As an example, set a minimum of 1000000 (1M) for a cluster with 300 million-object shards. Default: 0 (New in v1.24.15, v1.25.2)string - int100000
USE_GSEEnable the GSE tokenizer for use.
(The same as ENABLE_TOKENIZER_GSE. We recommend using ENABLE_TOKENIZER_GSE for consistency in naming with other optional tokenizers.)
booleantrue

Module-specific

VariableDescriptionTypeExample Value
BACKUP_*Various configuration variables for backup provider modules. They are outlined in detail on the Backups page.
CLIP_INFERENCE_APIThe endpoint where to reach the clip module if enabledstringhttp://multi2vec-clip:8000
CONTEXTIONARY_URLService-Discovery for the contextionary containerstring - URLhttp://contextionary
IMAGE_INFERENCE_APIThe endpoint where to reach the img2vec-neural module if enabledstringhttp://localhost:8000
OFFLOAD_S3_BUCKETThe S3 bucket to use for offloading (default: weaviate-offload)stringmy-custom-offload-bucket
OFFLOAD_S3_BUCKET_AUTO_CREATEWhether to automatically create the S3 bucket for offloading if it does not exist (default: false)booleantrue
OFFLOAD_S3_CONCURRENCYThe maximum number of parts that will be uploaded/downloaded in parallel during offloading operations (default: 25)string - number10
OFFLOAD_TIMEOUTThe request timeout value, in seconds (default: 120)string - number60
TRANSFORMERS_INFERENCE_APIThe endpoint where to reach the transformers module if enabledstringhttp://t2v-transformers:8080
USE_SENTENCE_TRANSFORMERS_VECTORIZER(EXPERIMENTAL) Use the sentence-transformer vectorizer instead of the default vectorizer (from the transformers library). Applies to custom images only.booleantrue

Authentication and authorization

VariableDescriptionTypeExample Value
AUTHENTICATION_ANONYMOUS_ACCESS_ENABLEDAllow users to interact with weaviate without authbooleantrue
Starting in v1.24, defaults to true
AUTHENTICATION_APIKEY_ALLOWED_KEYSAllowed API keys.

Each key corresponds to a specific user identity below.
string - comma-separated listjane-secret-key,ian-secret-key
AUTHENTICATION_APIKEY_ENABLEDEnable API key-based authenticationbooleanfalse
AUTHENTICATION_APIKEY_USERSAPI key-based identities.

Each identity corresponds to a specific key above.
string - comma-separated listjane@doe.com,ian-smith
AUTHENTICATION_OIDC_CLIENT_IDOIDC Client IDstringmy-client-id
AUTHENTICATION_OIDC_ENABLEDEnable OIDC-based authenticationbooleanfalse
AUTHENTICATION_OIDC_GROUPS_CLAIMOIDC Groups Claimstringgroups
AUTHENTICATION_OIDC_ISSUEROIDC Token Issuerstring - URLhttps://myissuer.com
AUTHENTICATION_OIDC_USERNAME_CLAIMOIDC Username Claimstringemail
AUTHORIZATION_ADMINLIST_ENABLEDEnable AdminList Authorization modebooleantrue
AUTHORIZATION_ADMINLIST_USERSUsers with admin permissionstring - comma-separated listjane@example.com,john@example.com
AUTHORIZATION_ADMINLIST_READONLY_USERSUsers with read-only permissionstring - comma-separated listalice@example.com,dave@example.com

Multi-node instances

VariableDescriptionTypeExample Value
CLUSTER_DATA_BIND_PORTPort for exchanging data.string - number7103
CLUSTER_GOSSIP_BIND_PORTPort for exchanging network state information.string - number7102
CLUSTER_HOSTNAMEHostname of a nodestringnode1
CLUSTER_JOINThe service name of the "founding" member node in a cluster setupstringweaviate-node-1:7100
HNSW_STARTUP_WAIT_FOR_VECTOR_CACHEIf true, vector cache prefill is synchronous when a node starts. The node reports ready to serve when the cache is hot. Defaults to false. Added in 1.24.20 and 1.25.5.booleanfalse
RAFT_BOOTSTRAP_EXPECTThe number of voter notes at bootstrapping timestring - number1
RAFT_BOOTSTRAP_TIMEOUTThe time in seconds to wait for the cluster to bootstrapstring - number90
RAFT_GRPC_MESSAGE_MAX_SIZEThe maximum internal raft gRPC message size in bytes. Defaults to 1073741824string - number1073741824
RAFT_JOINManually set Raft voter nodes. If set, RAFT_BOOTSTRAP_EXPECT needs to be adjusted manually to match the number of Raft voters.stringweaviate-0,weaviate-1
RAFT_METADATA_ONLY_VOTERSIf true, voter nodes only handle the schema. They do not accept any data.booleanfalse

Questions and feedback

If you have any questions or feedback, let us know in the user forum.