How to install Weaviate
Overview
This section shows you available options for running Weaviate, and how to install and configure Weaviate with each option.
How to run Weaviate
You can run Weaviate with any of the following methods:
- Weaviate Cloud Services – Use this managed Weaviate service for both development and production environments.
- Docker Compose – Opt for this containerized deployment method primarily for development projects.
- Kubernetes – Ideal for scalable, containerized deployments, this method is typically employed for production setups.
- Embedded Weaviate - For in-line instantiation from a client; currently in experimental stage and great for evaluation.
- AWS Marketplace - Conveniently deploy directly from the AWS Marketplace.
The Weaviate library is identical regardless of whether it is used via Weaviate Cloud Services (WCS) or by downloading an open source version. The only difference that WCS manages your Weaviate instance for you and comes with a specific SLA, whereas Weaviate open source comes with a BSD-3 license.
Both Docker Compose and Kubernetes setups use a yaml file for customizing Weaviate instances, typically called docker-compose.yml
or values.yaml
respectively. These files will be referred to throughout the documentation as configuration yaml files
.
If self-hosting, we recommend starting with Docker and gaining familiarity with Weaviate and its configurations. You can later apply this knowledge when you are creating your Helm charts.
Run an unreleased version
You can run Weaviate with docker compose
, building your own container off the master
branch. Note that this may not be an officially release, and may contain bugs.
git clone https://github.com/weaviate/weaviate.git
cd weaviate
docker build --target weaviate -t name-of-your-weaviate-image .
Then, make a docker-compose.yml
file with this new image. For example:
version: '3.4'
services:
weaviate:
image: name-of-your-weaviate-image
ports:
- 8080:8080
environment:
CONTEXTIONARY_URL: contextionary:9999
QUERY_DEFAULTS_LIMIT: 25
AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED: 'true'
PERSISTENCE_DATA_PATH: './data'
ENABLE_MODULES: 'text2vec-contextionary'
DEFAULT_VECTORIZER_MODULE: 'text2vec-contextionary'
AUTOSCHEMA_ENABLED: 'false'
contextionary:
environment:
OCCURRENCE_WEIGHT_LINEAR_FACTOR: 0.75
EXTENSIONS_STORAGE_MODE: weaviate
EXTENSIONS_STORAGE_ORIGIN: http://weaviate:8080
NEIGHBOR_OCCURRENCE_IGNORE_PERCENTILE: 5
ENABLE_COMPOUND_SPLITTING: 'false'
image: semitechnologies/contextionary:en0.16.0-v1.2.1
After the build is complete, you can run this Weaviate build with docker compose:
docker compose up