Self-hosting Weaviate the easy way

Self-hosting Weaviate the easy way

Yulei Chen - Content-Engineerin bei sliplane.ioYulei Chen
7 min

Weaviate is an open-source vector database that stores both objects and vectors. It lets you combine vector search with structured filtering, making it a go-to choice for AI applications, semantic search, and RAG pipelines. Weaviate Cloud offers a managed option, but pricing scales with usage and you lose control over your data.

Sliplane is a managed container platform that makes self-hosting painless. With one-click deployment, you can get Weaviate up and running in minutes - no server setup, no reverse proxy config, no infrastructure to maintain.

Prerequisites

Before deploying, ensure you have a Sliplane account (free trial available).

Quick start

Sliplane provides one-click deployment with presets.

SliplaneDeploy Weaviate >
  1. Click the deploy button above
  2. Select a project
  3. Select a server. If you just signed up you get a 48-hour free trial server
  4. Click Deploy!

About the preset

The one-click deploy above uses Sliplane's Weaviate preset. Here's what it includes:

  • Weaviate 1.37.2 from the official cr.weaviate.io registry
  • Persistent storage mounted to /var/lib/weaviate
  • API key authentication enabled by default (a random key is generated for you)
  • Anonymous access disabled for security
  • Telemetry disabled
  • Default vectorizer set to none so you can choose your own
  • OpenAI modules enabled (text2vec-openai, generative-openai, qna-openai)
  • Memory limit set to 1024 MiB and max CPU threads to 2 for stable performance on smaller servers

Next steps

Once Weaviate is running on Sliplane, access it using the domain Sliplane provided (e.g. weaviate-xxxx.sliplane.app).

Authenticating with your API key

The preset generates a random API key for you. You can find it in the AUTHENTICATION_APIKEY_ALLOWED_KEYS environment variable in your service settings. Use this key in the Authorization header when making requests:

curl https://weaviate-xxxx.sliplane.app/v1/meta \
  -H "Authorization: Bearer YOUR_API_KEY"

Or when using the Weaviate Python client:

import weaviate

client = weaviate.connect_to_custom(
    http_host="weaviate-xxxx.sliplane.app",
    http_port=443,
    http_secure=True,
    grpc_host="weaviate-xxxx.sliplane.app",
    grpc_port=443,
    grpc_secure=True,
    auth_credentials=weaviate.auth.AuthApiKey("YOUR_API_KEY"),
)

Environment variables you might want to customize

VariableDefaultDescription
ENABLE_MODULEStext2vec-openai,generative-openai,qna-openaiComma-separated list of modules to load
DEFAULT_VECTORIZER_MODULEnoneDefault vectorizer for new collections
QUERY_DEFAULTS_LIMIT1000Default result limit for queries
LOG_LEVELinfoLog verbosity (debug, info, warning, error)
GOMEMLIMIT1024MiBGo runtime memory limit
GOMAXPROCS2Max CPU threads for the Go runtime

If you want to use a different vectorizer (like Cohere or Hugging Face), update ENABLE_MODULES accordingly. Check the Weaviate modules documentation for the full list.

Logging

Weaviate logs to STDOUT by default, which works perfectly with Sliplane's built-in log viewer. If you need more detail for debugging, set LOG_LEVEL to debug. For general Docker log tips, check out our post on how to use Docker logs.

Troubleshooting

If Weaviate is slow to start or runs out of memory, try adjusting GOMEMLIMIT and GOMAXPROCS to match your server's resources. On a 2 GB server, 1024MiB and 2 are good defaults.

You can check if Weaviate is healthy by hitting the readiness endpoint:

curl https://weaviate-xxxx.sliplane.app/v1/.well-known/ready

Cost comparison

Of course you can also self-host Weaviate with other cloud providers. Here is a pricing comparison for the most common ones:

ProvidervCPURAMDiskMonthly CostNote
Sliplane22 GB40 GB€9 (~$10.65)Flat rate, 1 TB bandwidth, SSL included
Fly.io22 GB40 GB~$18Disk and bandwidth billed separately
Render12 GB40 GB~$35100 GB bandwidth, Disk billed separately
Railway22 GB40 GB~$67 + $20 planPro plan floor, usage-based, bandwidth billed separately
Click here to see how these numbers were calculated.

(Assuming an always-on instance running 730 hrs/month)

  • Sliplane: flat €9/month for the Base server. Unlimited services on the same server, 1 TB egress and SSL included.
  • Fly.io: shared-cpu-2x 2 GB = $11.83/mo + 40 GB volume × $0.15/GB = $6 -> ~$17.83/mo. Egress billed separately ($0.02/GB in EU).
  • Render: closest match is Standard ($25, 1 vCPU / 2 GB) plus 40 GB disk × $0.25/GB = $10 -> ~$35/mo. Stepping up to Pro (2 vCPU / 4 GB) costs $85/mo + disk.
  • Railway (Pro plan): CPU 2 × $0.00000772/s × 2,628,000 s = $40.57; RAM 2 × $0.00000386/s × 2,628,000 s = $20.29; volume 40 × $0.00000006/s × 2,628,000 s = $6.31 -> ~$67/mo compute, plus the $20/mo Pro plan floor and $0.05/GB egress.

Bandwidth costs can add up fast on usage-based providers. Use our bandwidth cost comparison tool to see what your egress would cost on each platform.

FAQ

What can I use Weaviate for?

Weaviate is ideal for AI-powered search, recommendation engines, RAG (Retrieval-Augmented Generation) pipelines, and any application that needs semantic similarity search. You store objects with their vector embeddings and query them using natural language or vector similarity. It also supports hybrid search combining vectors with traditional keyword (BM25) filtering.

How do I configure vectorizer modules?

Set the ENABLE_MODULES environment variable to a comma-separated list of modules you want. For example, to use Cohere instead of OpenAI, set it to text2vec-cohere,generative-cohere. Then set DEFAULT_VECTORIZER_MODULE to your preferred default. You'll also need to provide the relevant API key (e.g. COHERE_APIKEY) as an environment variable.

How do I update Weaviate?

Change the image tag in your service settings from cr.weaviate.io/semitechnologies/weaviate:1.37.2 to the new version and redeploy. Check the Weaviate GitHub releases for the latest stable version. Weaviate handles data migrations automatically on startup.

Are there alternatives to Weaviate?

Yes. Qdrant is another popular open-source vector database you can self-host on Sliplane. Other options include Milvus, Chroma, and Pinecone (cloud-only). Each has different trade-offs in terms of performance, API design, and feature set.

Can I use Weaviate without an external embedding provider?

Yes. Set DEFAULT_VECTORIZER_MODULE to none and provide your own vectors when importing data. This way you can use any embedding model you like (including local ones running on Ollama) and just store the resulting vectors in Weaviate.

Self-host Weaviate now - It's easy!

Sliplane gives you everything you need to run Weaviate without managing servers.