Table of documentation contents

Installation Guide

Weaviate is completely containerized, you can use Docker Compose and/or Kubernetes to run it.



  • The main entrypoint for the Weaviate API is /v1.
  • If your Weaviate is available over the internet or locally, you can use the Weaviate Playground to interact with it.
  • All environments run out of the box.

Docker Compose

You can run a Weaviate instance with Docker Compose as follows on Linux and MacOS:

Want another natural language? Make sure to let us know here.

Weaviate with an English contextionary

# Download the Weaviate configuration file
$ curl -O
# Download the Weaviate docker-compose file
$ curl -O
# Run Docker Compose
$ docker-compose up

Weaviate with a Dutch contextionary (EXPERIMENTAL)

# Download the Weaviate configuration file
$ curl -O
# Download the Weaviate docker-compose file
$ curl -O
# Run Docker Compose
$ docker-compose up

Warning: The output is quite verbose, for an alternative see attaching to only the log output of weaviate.

Attaching to the log output of only weaviate

The log output of weaviate’s backing databases can be quite verbose. We instead recommend to attach only to weaviate itself. In this case run docker-compose up like so:

  • Download the config.yaml and docker-compose.yml compose files as mentioned here.
  • Instead of running docker-compose up run the following command:
# Run Docker Compose
$ docker-compose up -d && docker-compose logs -f weaviate

Alternatively you can run docker-compose entirely detached with docker-compose up -d and poll {bind_address}:{port}/v1/meta until you receive status 200 OK.

Docker Compose (manual installation)

You can also download the files manually if you have trouble with the above script.

  1. $ mkdir weaviate && cd weaviate
  2. Download the files located in this folder.
  3. Run docker-compose up in the same location you’ve downloaded the files.

The output of the above setup is quite verbose, you can also run the above command with Weaviate related logs only:


Note I: the Kubernetes setup is only for large scale deployments of Weaviate. In case you want to work with smaller deployments, you can always user Docker Compose or the Weaviate Cluster Service.

Note II: tested until Kubernetes 1.14.x

Note III: In case your are running a very small setup. We would advice to use Docker Compose, but you can also this minimal configuration.

To run Weaviate with Kubernetes take the following steps.

# Check if helm is installed
$ helm version
# Check if pods are running properly
$ kubectl -n kube-system get pods

Get the Helm Chart

Get the Helm chart and configuration files.

# Set the Weaviate chart version
export CHART_VERSION="v9.0.0"
# Download Helm charts
# Download configuration values

K8s configuration

In the values.yaml file you can tweak the configuration to align it with your setup. The yaml file is extensively documented to help you align the configuration with your setup.

Out of the box, the configuration file is setup for:

  • 1 Weaviate replica.
  • anonymous_access = enabled.
  • 3 esvector replicas.
  • 3 etcd replicas.

As a rule of thumb, you can:

  • increase Weaviate replicas if you have a high load.
  • increase esvector replicas if you have a high load and/or a lot of data.


You can deploy the helm charts as follows:

# Init helm (if you use Helm 2)
$ helm init --upgrade
# Create a Weaviate namespace
$ kubectl create namespace weaviate
# Deploy
$ helm upgrade \
  --values ./values.yaml \
  --install \
  --wait \
  --namespace "weaviate" \
  "weaviate" \

Additional Configuration Help

etcd Disaster Recovery

coming soon

Weaviate Configuration File

Configuration customizations can be made in the configuration YAML file.

Note: in principle Weaviate runs out of the box and the configuration should only be changed in very customized situations.

OpenID Authentication

In the configuration YAML file, you can specify the desired mode of authentication, such as OpenID Connect.

Currently Anonymous Access and OpenID Connect are supported. Other Authentication schemes might become available in the near future.

You can read more about how to setup (OpenID) authentication here.

If all authentication schemes - including anonymous access - are disabled, Weaviate will fail to start up and ask you to configure at least one.

More Resources

If you can’t find the answer to your question here, please use the:

  1. Knowledge base of old issues. Or,
  2. For questions: Stackoverflow. Or,
  3. For issues: Github.
  4. For Frequently Asked Questions.
  • Installation
  • Running
  • Kubernetes