mirror of
https://github.com/qdrant/landing_page.git
synced 2026-10-02 17:38:31 +02:00
* create Develop and Deploy tabs; move Operations; re-weight pages * move capacity planning page; create section dropdown content * added aliases to frontmatter * update link references to new canonical links; maintain anchoring * address remaining link issues and errors * fix outlier tutorial reference issue * Treat 'develop' and 'deploy' as a unified search space * fix some frontmatter aliases * add section header redirects * fix 'Operations' redirect to go to 'Deploy' tab * update redirects file for * pattern * add :splat to redirect references * Add wildcard to each entry in _redirects file --------- Co-authored-by: Abdon Pijpelink <abdon.pijpelink@qdrant.com>
237 lines
11 KiB
Markdown
237 lines
11 KiB
Markdown
---
|
|
title: Installation
|
|
partition: deploy
|
|
weight: 110
|
|
aliases:
|
|
- /documentation/install
|
|
- /documentation/installation
|
|
- /documentation/operations/installation
|
|
---
|
|
|
|
# Installation requirements
|
|
|
|
The following sections describe the requirements for deploying Qdrant.
|
|
|
|
## CPU and memory
|
|
|
|
The preferred size of your CPU and RAM depends on:
|
|
|
|
- Number of vectors
|
|
- Vector dimensions
|
|
- [Payloads](/documentation/manage-data/payload/) and their indexes
|
|
- Storage
|
|
- Replication
|
|
- How you configure quantization
|
|
|
|
Our [Cloud Pricing Calculator](https://cloud.qdrant.io/calculator) can help you estimate required resources without payload or index data.
|
|
|
|
### Supported CPU architectures:
|
|
|
|
**64-bit system:**
|
|
- x86_64/amd64
|
|
- AArch64/arm64
|
|
|
|
**32-bit system:**
|
|
- Not supported
|
|
|
|
### Storage
|
|
|
|
For persistent storage, Qdrant requires block-level access to storage devices with a [POSIX-compatible file system](https://www.quobyte.com/storage-explained/posix-filesystem/). Network systems such as [iSCSI](https://en.wikipedia.org/wiki/ISCSI) that provide block-level access are also acceptable.
|
|
Qdrant won't work with [Network file systems](https://en.wikipedia.org/wiki/File_system#Network_file_systems) such as NFS, or [Object storage](https://en.wikipedia.org/wiki/Object_storage) systems such as S3.
|
|
|
|
If you offload vectors to a local disk, we recommend you use a solid-state (SSD or NVMe) drive.
|
|
|
|
<aside role="status">Using Docker/WSL on Windows with mounts is known to have file system problems causing data loss. See <a href="/documentation/common-errors/#incompatible-file-system">troubleshooting</a>.</aside>
|
|
|
|
### Networking
|
|
|
|
Each Qdrant instance requires three open ports:
|
|
|
|
* `6333` - For the HTTP API, for the [Monitoring](/documentation/ops-monitoring/monitoring/) health and metrics endpoints
|
|
* `6334` - For the [gRPC](/documentation/interfaces/#grpc-interface) API
|
|
* `6335` - For [Distributed deployment](/documentation/distributed_deployment/)
|
|
|
|
All Qdrant instances in a cluster must be able to:
|
|
|
|
- Communicate with each other over these ports
|
|
- Allow incoming connections to ports `6333` and `6334` from clients that use Qdrant.
|
|
|
|
### Security
|
|
|
|
The default configuration of Qdrant might not be secure enough for every situation. Please see [our security documentation](/documentation/security/) for more information.
|
|
|
|
## Installation options
|
|
|
|
Qdrant can be installed in different ways depending on your needs:
|
|
|
|
For production, you can use our Qdrant Cloud to run Qdrant either fully managed in our infrastructure or with Hybrid Cloud in yours.
|
|
|
|
If you want to run Qdrant in your own infrastructure, without any cloud connection, we recommend to install Qdrant in a Kubernetes cluster with our Qdrant Private Cloud Enterprise Operator.
|
|
|
|
For testing or development setups, you can run the Qdrant container or as a binary executable. We also provide a Helm chart for an easy installation in Kubernetes.
|
|
|
|
## Production
|
|
|
|
### Qdrant Cloud
|
|
|
|
You can set up production with the [Qdrant Cloud](https://qdrant.to/cloud), which provides fully managed Qdrant databases.
|
|
It provides horizontal and vertical scaling, one click installation and upgrades, monitoring, logging, as well as backup and disaster recovery. For more information, see the [Qdrant Cloud documentation](/documentation/cloud/).
|
|
|
|
### Qdrant Kubernetes Operator
|
|
|
|
We provide a Qdrant Enterprise Operator for Kubernetes installations as part of our [Qdrant Private Cloud](/documentation/private-cloud/) offering. For more information, [use this form](https://qdrant.to/contact-us) to contact us.
|
|
|
|
### Kubernetes
|
|
|
|
You can use a ready-made [Helm Chart](https://helm.sh/docs/) to run Qdrant in your Kubernetes cluster. While it is possible to deploy Qdrant in a distributed setup with the Helm chart, it does not come with the same level of features for zero-downtime upgrades, up and down-scaling, monitoring, logging, and backup and disaster recovery as the Qdrant Cloud offering or the Qdrant Private Cloud Enterprise Operator. Instead you must manage and set this up [yourself](/documentation/distributed_deployment/). Support for the Helm chart is limited to community support.
|
|
|
|
The following table gives you an overview about the feature differences between the Qdrant Cloud and the Helm chart:
|
|
|
|
| Feature | Qdrant Helm Chart | Qdrant Cloud |
|
|
|--------------------------------------------------------|:-----------------:|:-------------:|
|
|
| Open-source | ✅ | |
|
|
| Community support only | ✅ | |
|
|
| Quick to get started | ✅ | ✅ |
|
|
| Vertical and horizontal scaling | ✅ | ✅ |
|
|
| API keys with granular access control | ✅ | ✅ |
|
|
| Qdrant version upgrades | ✅ | ✅ |
|
|
| Support for transit and storage encryption | ✅ | ✅ |
|
|
| Zero-downtime upgrades with optimized restart strategy | | ✅ |
|
|
| Production ready out-of the box | | ✅ |
|
|
| Dataloss prevention on downscaling | | ✅ |
|
|
| Full cluster backup and disaster recovery | | ✅ |
|
|
| Automatic shard rebalancing | | ✅ |
|
|
| Re-sharding support | | ✅ |
|
|
| Automatic persistent volume scaling | | ✅ |
|
|
| Advanced telemetry | | ✅ |
|
|
| One-click API key revoking | | ✅ |
|
|
| Recreating nodes with new volumes in existing cluster | | ✅ |
|
|
| Enterprise support | | ✅ |
|
|
|
|
To install the helm chart:
|
|
|
|
```bash
|
|
helm repo add qdrant https://qdrant.to/helm
|
|
helm install qdrant qdrant/qdrant
|
|
```
|
|
|
|
For more information, see the [qdrant-helm](https://github.com/qdrant/qdrant-helm/tree/main/charts/qdrant) README.
|
|
|
|
### Docker and Docker Compose
|
|
|
|
Usually, we recommend to run Qdrant in Kubernetes, or use the Qdrant Cloud for production setups. This makes setting up highly available and scalable Qdrant clusters with backups and disaster recovery a lot easier.
|
|
|
|
However, you can also use Docker and Docker Compose to run Qdrant in production, by following the setup instructions in the [Docker](#docker) and [Docker Compose](#docker-compose) Development sections.
|
|
In addition, you have to make sure:
|
|
|
|
* To use a performant [persistent storage](#storage) for your data
|
|
* To configure the [security settings](/documentation/security/) for your deployment
|
|
* To set up and configure Qdrant on multiple nodes for a highly available [distributed deployment](/documentation/distributed_deployment/)
|
|
* To set up a load balancer for your Qdrant cluster
|
|
* To create a [backup and disaster recovery strategy](/documentation/snapshots/) for your data
|
|
* To integrate Qdrant with your [monitoring](/documentation/ops-monitoring/monitoring/) and logging solutions
|
|
|
|
## Development
|
|
|
|
For development and testing, we recommend that you set up Qdrant in Docker. We also have different client libraries.
|
|
|
|
### Docker
|
|
|
|
The easiest way to start using Qdrant for testing or development is to run the Qdrant container image.
|
|
The latest versions are always available on [DockerHub](https://hub.docker.com/r/qdrant/qdrant/tags?page=1&ordering=last_updated).
|
|
|
|
Make sure that [Docker](https://docs.docker.com/engine/install/), [Podman](https://podman.io/docs/installation) or the container runtime of your choice is installed and running. The following instructions use Docker.
|
|
|
|
Pull the image:
|
|
|
|
```bash
|
|
docker pull qdrant/qdrant
|
|
```
|
|
|
|
In the following command, revise `$(pwd)/path/to/data` for your Docker configuration. Then use the updated command to run the container:
|
|
|
|
```bash
|
|
docker run -p 6333:6333 \
|
|
-v $(pwd)/path/to/data:/qdrant/storage \
|
|
qdrant/qdrant
|
|
```
|
|
|
|
With this command, you start a Qdrant instance with the default configuration.
|
|
It stores all data in the `./path/to/data` directory.
|
|
|
|
By default, Qdrant uses port 6333, so at [localhost:6333](http://localhost:6333) you should see the welcome message.
|
|
|
|
To change the Qdrant configuration, you can overwrite the production configuration:
|
|
|
|
```bash
|
|
docker run -p 6333:6333 \
|
|
-v $(pwd)/path/to/data:/qdrant/storage \
|
|
-v $(pwd)/path/to/custom_config.yaml:/qdrant/config/production.yaml \
|
|
qdrant/qdrant
|
|
```
|
|
|
|
Alternatively, you can use your own `custom_config.yaml` configuration file:
|
|
|
|
```bash
|
|
docker run -p 6333:6333 \
|
|
-v $(pwd)/path/to/data:/qdrant/storage \
|
|
-v $(pwd)/path/to/custom_config.yaml:/qdrant/config/custom_config.yaml \
|
|
qdrant/qdrant \
|
|
./qdrant --config-path config/custom_config.yaml
|
|
```
|
|
|
|
For more information, see the [Configuration](/documentation/ops-configuration/configuration/) documentation.
|
|
|
|
### Docker Compose
|
|
|
|
You can also use [Docker Compose](https://docs.docker.com/compose/) to run Qdrant.
|
|
|
|
Here is an example customized compose file for a single node Qdrant cluster:
|
|
|
|
```yaml
|
|
services:
|
|
qdrant:
|
|
image: qdrant/qdrant:latest
|
|
restart: always
|
|
container_name: qdrant
|
|
ports:
|
|
- 6333:6333
|
|
- 6334:6334
|
|
expose:
|
|
- 6333
|
|
- 6334
|
|
- 6335
|
|
configs:
|
|
- source: qdrant_config
|
|
target: /qdrant/config/production.yaml
|
|
volumes:
|
|
- ./qdrant_data:/qdrant/storage
|
|
|
|
configs:
|
|
qdrant_config:
|
|
content: |
|
|
log_level: INFO
|
|
```
|
|
|
|
<aside role="status">Providing the inline <code>content</code> in the <a href="https://docs.docker.com/compose/compose-file/08-configs/">configs top-level element</a> requires <a href="https://docs.docker.com/compose/release-notes/#2231">Docker Compose v2.23.1</a> or above. This functionality is supported starting <a href="https://docs.docker.com/engine/release-notes/25.0/#2500">Docker Engine v25.0.0</a> and <a href="https://docs.docker.com/desktop/release-notes/#4260">Docker Desktop v4.26.0</a> onwards.</aside>
|
|
|
|
### From source
|
|
|
|
Qdrant is written in Rust and can be compiled into a binary executable.
|
|
This installation method can be helpful if you want to compile Qdrant for a specific processor architecture or if you do not want to use Docker.
|
|
|
|
Before compiling, make sure that the necessary libraries and the [rust toolchain](https://www.rust-lang.org/tools/install) are installed.
|
|
The current list of required libraries can be found in the [Dockerfile](https://github.com/qdrant/qdrant/blob/master/Dockerfile).
|
|
|
|
Build Qdrant with Cargo:
|
|
|
|
```bash
|
|
cargo build --release --bin qdrant
|
|
```
|
|
|
|
After a successful build, you can find the binary in the following subdirectory `./target/release/qdrant`.
|
|
|
|
## Client libraries
|
|
|
|
In addition to the service, Qdrant provides a variety of client libraries for different programming languages. For a full list, see our [Client libraries](/documentation/interfaces/#client-libraries) documentation.
|