Skip to main content

Weaviate development setup

This page describes how to run Weaviate from source (git checkout / tarball) locally.


You can find the source code at the Weaviate repo.


Running from source

The fastest way to run Weaviate from source is to issue the command below:

tools/dev/ <configuration>

Where <configuration> is one of the server configuration ($CONFIG) values in /tools/dev/ For example, you can run:

tools/dev/ local-openai

To run the server locally with the OpenAI module.

The default configuration is local-development which will run the server locally with the text2vec-contextionary and backup-filesystem modules.

You can also create your own configuration. For instance, you can clone an entry (local-all-openai-cohere-palm is a good start) and add the required environment variables.

Running with Docker

To run with Docker, start up the Weaviate container and the container(s) for any additional services with

tools/dev/ [additional_services]

then run the development server as described in the section above.

For example, the setup below uses Docker Compose to spin up Prometheus and Grafana instances. Those are pre-configured to scrape metrics from Weaviate. Using this setup, you can:

  • access Weaviate on port 8080
  • access Grafana on port 3000 (Login: weaviate/weaviate)
  • if necessary for debugging - access prometheus directly on port 9090
tools/dev/ --prometheus && tools/dev/ local-no-modules

This setup is for contributors to the Weaviate code base. If you are an end-user of Weaviate looking for a Prometheus-enabled example, please see this documentation page or this example.

Below are more examples of running Weaviate with Docker.

Transformers t2v only

tools/dev/ --transformers && ./tools/dev/ local-transformers

Contextionary t2v & Transformers QnA

tools/dev/ --qna && ./tools/dev/ local-qna

The above commands are subject to change as we add more modules and require specific combinations for local testing. You can always inspect and to see which options are available. The first option without any arguments is always guaranteed to work.

To make queries from a web interface, use the WCS console to connect to localhost:8080.

More Resources

For additional information, try these sources.

Questions and feedback

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