Database & client setup
Overview
Options for running Weaviate
You can run Weaviate as a managed service (Weaviate Cloud Services, or WCS), or manage your own instances using Docker, Kubernetes, or Embedded Weaviate.
As mentioned before, the underlying Weaviate code is identical regardless of the method. There are some differences to be aware of.
WCS (Recommended)
WCS, or Weaviate Cloud Services, is a managed SaaS service that requires no maintenance at your end.
As it is managed by Weaviate (the company - the software is not sentient... yet), it is the fastest way to create a new instance of Weaviate and requires the least amount of effort for the users.
Weaviate instances on WCS come pre-configured for convenience. They include a number of Weaviate "modules" by default, as well as built-in support for user authentication for security.
WCS includes a free "sandbox" tier, which is our recommend method of running Weaviate throughout this course unless otherwise specified.
Docker / Kubernetes
You can run Weaviate instances using containerization solutions such as Docker and/or Kubernetes.
This provides you with the same code base as one that is used in WCS, although you will need to manage its configuration and deployment yourself.
Self-managed set ups using Docker or Kubernetes will be discussed in standalone, separate units in the future.
If you are familiar with either solutions and would prefer to install Weaviate through them, we refer you to our documentation for installation with Docker-Compose or Kubernetes.
Embedded Weaviate
We also have an experimental feature called Embedded Weaviate, where you can directly instantiate a Weaviate database from a client library.
It is however in an experimental phase only, and is not recommended for anything other than evaluation.
Get started with WCS
Sign in to WCS
- First, access WCS by navigating to the Weaviate Cloud Console, and click on "Sign in with the Weaviate Cloud Services".
- If you don't have an account with WCS yet, click on the "Register" button and create a new account.
- Then, sign in with your WCS username and password.
Create a Weaviate Cluster
To create a new Weaviate Cluster, click the "Create cluster" button.

Then:
- Select the Free sandbox plan tier.
- Provide a cluster name, which will become a part of its URL. A suffix will be added to this to ensure uniqueness.
- Set the
Enable Authentication?
option toYES
.
Your selections should look like this:

Finally, press Create to create your sandbox instance. Note that the sandbox will expire after a set number of days.

This will start the process to create a new instance, and you will see a progress indicator.

Instance creation should take a minute or two, and you will see a tick ✔️ when it's done, indicating that the instance is ready.
Sandbox expiry & options
The sandbox is free, but it will expire after 14 days. After this time, all data in the sandbox will be deleted.
If you would like to preserve your sandbox data, you can retrieve your data with our cursor API, or contact us to upgrade to a production SaaS instance.
You can communicate with Weaviate with the available client libraries or directly with the RESTful API and the GraphQL API.
Install Weaviate client
For the initial release of Weaviate Academy units, our materials are written around Python examples.
But we are working to add versions for other clients, starting with TypeScript/JavaScript examples. We appreciate your patience as we build up our educational material.
Available clients
Currently, Weaviate clients are available in:
- Python
- TypeScript/JavaScript
- Java
- Go
Client capabilities
With these clients you can perform all RESTful and GraphQL requests. This means you can use any endpoint, and perform all GraphQL queries directly from your Python, TypeScript/JavaScript, Java or Go scripts.
The Weaviate documentation, including the RESTful API and GraphQL reference pages, include code snippets using each client. The methods of the clients are designed to reflect the API functions 1:1, but are designed (structured and named) in the way native to the language.
Installation
Install your preferred client by following the relevant instructions below:
- Python
- TypeScript
- Go
- Java
Add weaviate-client
to your Python environment with pip
:
$ pip install weaviate-client
Add weaviate-ts-client
to your project with npm
:
npm install weaviate-ts-client
Add weaviate-go-client
to your project with go get
:
go get github.com/semi-technologies/weaviate-go-client/v4
Add this dependency to your project:
<dependency>
<groupId>io.weaviate</groupId>
<artifactId>client</artifactId>
<version>4.0.0</version> <!-- Check latest version -->
</dependency>
Review
Each section should have a quick recap/review video of about a minute.
Review exercise
Key takeaways
- There are multiple ways to run Weaviate.
- The recommended, easiest way to run a Weaviate instance is with WCS.
- Weaviate clients are available in multiple languages.
- Currently, the Academy material is available in Python only.