Why one container
Qdrant needs no separate database, cache or queue: the engine keeps its own data and indexes on disk. The whole deployment is one process. You can inspect it over root SSH with your own key.
Qdrant 1.19.1, the open source vector database, deploys here in one click onto a dedicated server Selfhost.dev provisions, secures and runs, across six locations on three continents. Its collections answer only over HTTPS and only with its API key, which Qdrant's own build does not require by default.
Qdrant is an open source vector database, written in Rust, that stores embeddings and finds the nearest ones to a query. Here it runs as the official image behind one HTTPS address.
Teams building semantic search, recommendations or agent memory who want Qdrant itself, not a vendor-priced cluster. Also anyone moving a laptop Docker container to an address their app can reach.
When your workload is vectors first and one node carries it. If your embeddings sit beside Postgres rows, see the pgvector note under the hosting options.
What's in the Qdrant deployment is short: one container, the official qdrant/qdrant image pinned to 1.19.1, with its storage on the server's local NVMe disk. The REST API and the web dashboard share one HTTPS address. The API key set at deploy guards both of them.
Qdrant needs no separate database, cache or queue: the engine keeps its own data and indexes on disk. The whole deployment is one process. You can inspect it over root SSH with your own key.
Your app, the SDKs and the dashboard
TLS and routing
Qdrant 1.19.1
API key
Collections on local NVMe
| Component | Version | What it does |
|---|---|---|
| Qdrant | qdrant/qdrant:v1.19.1 | Stores vectors and payloads, answers search over REST |
| Web dashboard | Built into the image, at /dashboard | Browse collections and points, run test queries |
| Storage volume | Persistent, on local NVMe | Collections, indexes and snapshots |
| HTTPS | A Let's Encrypt certificate | Serves the REST API and dashboard on port 443 |
Self hosted Qdrant guides all end on the same warning: add an API key and TLS before anything is exposed. On this template both are in place before the first request. The key you set at deploy is the only way into your collections.
| What a tutorial has you do | On this template |
|---|---|
Run qdrant/qdrant:latest and hope the next pull matches | Pinned to 1.19.1; it moves only when you move it |
Set QDRANT__SERVICE__API_KEY yourself | Set before first boot; your collections and the dashboard ask for it on every request |
| Publish ports 6333 and 6334 to the network | The server firewall opens only 22, 80 and 443 |
| Put TLS in front of port 6333 | A Let's Encrypt certificate per hostname, renewed for you |
| Mount a volume that survives restarts | Storage on the server's own disk, kept across restarts |
Qdrant hosting requirements are modest: the engine runs on x86 or ARM, needs block storage rather than a network share and sizes by the vectors you keep. Here it starts on a 4 GB server with local NVMe disk. The API and dashboard answer on one HTTPS address.
api-key headerHow much RAM Qdrant needs comes down to vectors times dimensions times four bytes, plus the search index. Qdrant publishes that formula. The table applies it to one node, the shape this template runs, so you can choose the server before any data goes in.
Qdrant's capacity formula at full precision (float32), one replica, default index settings, before payloads and payload indexes.
Qdrant's quantization keeps a compressed copy of each vector in RAM. Vectors kept on disk need no RAM set aside up front. Recall can drop, so test it on your own data first.
The key is set before the address goes live, so the first request that reaches it is yours.
The Launch button opens the console on this exact template. Choose a server size and one of six locations.
Set the secret that becomes your API key, then launch. The template deploys in about ten minutes, then the console shows a generated HTTPS address and confirms it answers.
Open /dashboard on that address, enter the key, then create a collection. Or point the Python or JavaScript client at the address on port 443 with the same key.
Qdrant hosting cost here is the server and nothing else: the template adds no fee and nothing is charged per vector, per query or for traffic. You pay by the hour against prepaid credits. The rate depends on the machine and where it runs.
| Item | Cost |
|---|---|
| Qdrant and its dashboard | $0 |
| HTTPS and a custom domain | $0 |
| Vectors, collections and queries | $0, nothing is metered per use |
| Bandwidth | $0, no traffic metering on a template project |
| Backups | Optional, +20% of the server rate |
| Server | RAM, cores, disk | Where | Rate | About a month |
|---|---|---|---|---|
cax11 (ARM) | 4 GB, 2 cores, 40 GB | Europe | $0.02/hr | $16.35 |
cx23 | 4 GB, 2 cores, 40 GB | Europe | $0.02/hr | $15.18 |
cx33 | 8 GB, 4 cores, 80 GB | Europe | $0.03/hr | $23.36 |
cax21 (ARM) | 8 GB, 4 cores, 80 GB | Europe | $0.04/hr | $29.20 |
cpx21 | 4 GB, 3 cores, 80 GB | US | $0.12/hr | $87.75 |
cpx22 | 4 GB, 2 cores, 80 GB | Singapore | $0.10/hr | $72.56 |
Monthly figures assume 730 hours.
A server with a card on file or a past top-up is powered off and held for 24 hours; add credit in that window and it starts again. Welcome-credit-only servers are deleted at zero. Their backups go with them.
Price another size or region in the calculator, no signup.
There are three ways to run Qdrant: Qdrant Cloud from the vendor, a host that runs the container for you or a server of your own. Qdrant Cloud's free cluster is the cheapest place to start; the table shows what each option gives you and where it stops.
| Option | Price | What you get | Where it stops |
|---|---|---|---|
| Qdrant Cloud Free | $0 | One node, 1 GB RAM, 0.5 vCPU, 4 GB disk | Suspended after a week unused, deleted after four weeks inactive |
| Qdrant Cloud Standard | Usage based, per vCPU, memory and disk | Dedicated clusters, scaling, high availability, a 99.5% SLA | Priced through the vendor's calculator, with no list price |
| Sliplane | From €9 a month for 1 GB, before VAT | A server that runs the container, NVMe storage add-ons | Priced by server size |
| Selfhost.dev, a European 4 GB server | $0.02/hr, about $15 to $16 a month | Qdrant with its key and HTTPS set, root SSH, optional daily backups | Grows by moving to a bigger server |
If your embeddings sit next to rows in Postgres and stay in the millions, a second database adds a sync pipeline you may not need. Selfhost.dev managed Postgres with pgvector keeps them in one database; it is a separate product from this template.
Qdrant's template deploys in about ten minutes. That is the platform's own budget, not an estimate.
None of these a dealbreaker? The template deploys in about ten minutes.
Launch QdrantQdrant backup and restore starts with a daily image of the whole server: Qdrant and its storage in one image, last seven kept. For a copy you hold yourself, read your points out over the API with your key.
| Method | What it covers | Where it lives |
|---|---|---|
| Daily server backup (optional, +20%) | The whole server, Qdrant and its storage, last 7 kept | With the server |
| Your own export, with Qdrant's scroll API | Every point and its payload, read over HTTPS with your key | Wherever you keep it |
Tell us the count and the dimensions of your embeddings. We reply with the server size and what it costs a month.
Yes. Qdrant is open source under the Apache 2.0 licence, so the engine itself costs nothing to download or run. What you pay for is the server it runs on, billed by the hour, with no charge per vector or per query. Qdrant Cloud also offers a free 1 GB cluster for prototypes.
Send requests to the HTTPS address the console shows, on port 443, with your API key in the api-key header. The Python and JavaScript clients take the same address and key; set the Python client to REST. The web dashboard at /dashboard asks for the same key before it opens.
Yes. The instance starts on a generated HTTPS address so it works straight away. Once it is running, add one domain you own from the resource's Settings screen and follow the DNS instructions shown there. The certificate for the new name is issued and renewed for you.
About 3 GB for one million 768-dimension vectors at full precision, index included, by Qdrant's own formula of vectors times dimensions times four bytes. At 1,536 dimensions it is about 5.9 GB. Payloads come on top, so choose a server with room to spare or turn on quantization.
It depends on the setup. Qdrant's own docs say an open source instance is not secure by default and accepts requests from anyone who can reach it. This template starts with an API key on every request to your collections, HTTPS on port 443 and a firewall that leaves only ports 22, 80 and 443 open.
Yes, by re-inserting it. Read your points from the current Qdrant with the scroll API, then upsert them here with your new API key through the Python or JavaScript client. Recreate each collection first with the same vector size and distance, so search behaves exactly as it did before.
Selfhost.dev is a managed self hosting platform for developers and small teams. Open source apps and databases on dedicated servers you control, billed by the hour with no subscription tiers.
Best for: Qdrant, Langflow, n8n, Supabase and managed PostgreSQL with pgvector, MySQL, Redis, ClickHouse, OpenSearch and Kafka.