Railway

Deploy Qdrant

Qdrant [Jul '26] (Open-Source Vector Database for AI & Search) Self Host

Deploy Qdrant

Just deployed

/qdrant/storage

Deploy and Host Qdrant Self-Hosted on Railway

Qdrant is the open-source, Rust-based vector database purpose-built for semantic search, recommendation engines, and retrieval-augmented generation. If you're building anything that needs to find "similar" content by meaning rather than exact keyword match, this is the infrastructure piece underneath it.

About Hosting Qdrant-Self-Hosted

Pinecone's Standard plan carries a $50/month minimum before usage, then $0.33/GB/month for storage, $4 per million write units, $16 per million read units on top. A RAG application with real traffic, ingesting documents, running searches on every user query, can rack up meaningful cost fast under that model, and the bill grows with usage, not with value delivered. Qdrant self-hosted on Railway costs a flat infrastructure fee regardless of how many reads or writes you run against it, so the math only gets better as your application actually gets used.

The bigger reason to self-host a vector database specifically isn't just the pricing model, though. Your embeddings encode the actual content of whatever you're building on, documents, conversations, user behavior. Handing that to a third-party managed service means trusting their infrastructure with a compressed representation of your entire dataset. Self-hosting keeps that data on infrastructure you control, which matters more for a vector database than it might for a simpler tool, since embeddings are effectively derived from your most sensitive content.

It's worth being specific about what makes Qdrant different from just "another database you could self-host": it's written in Rust and built from the ground up for approximate nearest-neighbor search at scale, using HNSW indexing. That's not a general-purpose database with vector search bolted on, it's the actual core design, which is why it stays fast even as collections grow into the millions of vectors.

This isn't a small or unproven project either. Qdrant has crossed 34,000 GitHub stars, one of the default choices developers reach for when a project outgrows a simple in-memory similarity search. That track record matters: a vector database under a production RAG pipeline is infrastructure you want to trust, not discover has a bug three months in.

Common Use Cases

  • RAG pipelines: Store document embeddings and retrieve the most relevant chunks to feed an LLM's context window, the standard architecture behind most production AI chat and Q&A systems today.
  • Semantic search: Search a product catalog, documentation site, or support ticket archive by meaning, catching relevant results that don't share exact keywords with the query.
  • Recommendation engines: Find similar products, articles, or users by comparing their vector embeddings directly, instead of maintaining hand-built similarity rules that need constant tuning.
  • AI agent long-term memory: Give an agent a searchable memory store by embedding and storing past conversations or context it can retrieve later, rather than starting fresh every session.
  • Anomaly and fraud detection: Compare incoming data vectors against known-good baselines in security or monitoring pipelines, flagging outliers that deviate from expected patterns.
  • Deduplication at scale: Find near-duplicate content (images, text, listings) by vector similarity when exact-match deduplication misses reworded or slightly modified copies.

Dependencies for Qdrant-Self-Hosted Hosting

  • Persistent storage for collections, vectors, and payloads.

Deployment Dependencies

This template provisions a persistent Railway volume automatically, mounted at /qdrant/storage and wired to the container. No Postgres, no Redis, no separate database to configure, Qdrant is a single self-contained Rust binary handling its own storage engine. Reference: Qdrant GitHub Repository, Qdrant Documentation, Qdrant API Reference.

Implementation Details

This template runs qdrant/qdrant:v1.18.3, verified as the newest actual stable release tag in the registry at build time, matching the image's own latest digest rather than trusting a floating tag that could change under you. The one detail worth knowing before you deploy: Qdrant ships with no authentication enabled by default, confirmed directly by reading its own configuration source, not assumed. Every REST and gRPC request succeeds unauthenticated out of the box, which is fine on a private network but a real problem the moment Railway assigns a public domain. This template closes that gap by setting QDRANT__SERVICE__API_KEY to a real auto-generated secret from the start.

How Qdrant Compares to the Alternatives

Vs. Pinecone: Pinecone is fully managed and requires zero infrastructure knowledge, but has no self-hosted option at all and its pricing scales with usage, a $50/month minimum plus per-operation charges on the Standard tier. Qdrant trades some of that managed convenience for full data control and a flat cost that doesn't grow with query volume.

Vs. Weaviate: Weaviate ships a broader built-in modules ecosystem and is written in Go. Qdrant's Rust core is built for raw search speed and memory efficiency, with a smaller, more focused API surface that's faster to learn.

Vs. Milvus: Milvus's full production architecture involves several moving parts, etcd, MinIO or S3, Pulsar or Kafka, genuinely heavier to self-host well. Qdrant runs as a single container with everything built in, simpler for teams that don't need Milvus's specific scale ceiling.

Getting Started

After deploying, the healthcheck should pass quickly, Qdrant is a small Rust binary with no external database dependency to wait on, unlike some other self-hosted tools in this collection that need a minute or two for first boot.

Copy your QDRANT_API_KEY value from Railway's Variables tab, you'll need it for every request. Qdrant has no login page or account system, this key isn't something you sign in with, it's something your code attaches to every API call. If you want to confirm the deploy actually worked before writing any code, just open your Railway domain in a browser, it redirects straight to Qdrant's built-in dashboard, which prompts for the key and shows your collections visually.

For real usage, install a Qdrant client library for whatever language you're working in (Python and JavaScript/TypeScript are the most common), and point it at your Railway domain with the API key set in the api-key header.

Create your first collection by specifying a vector size (matching whatever embedding model you're using, 1536 for OpenAI's text-embedding-3-small, 768 for many open-source models) and a distance metric (cosine similarity is the common default). Insert a handful of test vectors with some payload metadata attached, then run a search query and confirm you get sensible results back, ranked by similarity, with the payload filters actually narrowing results the way you'd expect.

One thing worth testing directly rather than assuming works: try a request with no API key or a wrong one, and confirm it's actually rejected. This is the real proof the authentication this template sets up is doing its job, not just that the happy path works.

Once basic search is confirmed working, decide your distance metric deliberately rather than defaulting blindly. Cosine similarity fits most text embedding models, but some image or audio embeddings are trained and normalized for dot product or Euclidean distance instead. The wrong metric for your model won't error out, it'll just quietly return worse results, harder to notice than a hard failure.

If migrating from a managed service, bring over a sample of data first, not everything at once. Confirm collection settings, payload structure, and filter behavior match expectations on a small dataset before a full migration.

Why Deploy Qdrant-Self-Hosted on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying Qdrant-self-hosted on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.

Frequently Asked Questions

Does Qdrant require authentication by default?

No, and that's worth knowing before you deploy anywhere. A bare Qdrant install accepts every request unauthenticated. This template specifically sets a real API key from the start so a publicly-reachable instance isn't wide open.

Will my vector data survive a redeploy?

Yes, as long as the Railway volume this template provisions stays attached to your project. All collections, vectors, and payloads live on that volume.

What embedding models work with Qdrant?

Any of them, Qdrant is model-agnostic. You generate embeddings with whatever model you choose (OpenAI, Cohere, an open-source model) and store the resulting vectors in Qdrant; it doesn't care where they came from, only their dimensionality and the distance metric you configure.

How many vectors can a self-hosted Qdrant instance handle?

It scales with available RAM and disk, millions of vectors run comfortably on modest hardware. Larger embedding dimensions and collection sizes need proportionally more memory for fast search.

Does Qdrant support filtering alongside vector search?

Yes, this is one of its core features. You can combine similarity search with structured payload filters (category, date range, tags) in a single query, not as a separate post-processing step.

Where can I download Qdrant?

Source code is at github.com/qdrant/qdrant, with Docker images published as qdrant/qdrant. This template pulls a specific verified version automatically.


Template Content

More templates in this category

View Template
Chat Chat
Chat Chat, your own unified chat and search to AI platform.

okisdev
113
View Template
stella
Self-host stella with web, API, Postgres, Redis, and object storage.

Jan Kubica
1
View Template
Hermes Agent | OpenClaw Alternative with Dashboard
Self-Hosted Hermes AI Agent for Telegram, Discord & Slack

codestorm
56