Guide de déploiement

Héberger Weaviate sur un VPS

Déployer sur un VPS Cloud →

Bases de données8 min de lecture

Héberger Weaviate sur un VPS

Weaviate est une base de données vectorielle open source qui se distingue par ses modules de vectorisation intégrés et son API GraphQL riche. Pensée pour la recherche sémantique et le RAG, elle s'auto-héberge sur un VPS pour offrir une plateforme IA complète sous votre contrôle. Voici comment la déployer avec Docker, configurer ses modules et la sécuriser. Nous comparons aussi Weaviate à Qdrant pour vous aider à choisir.

Pourquoi auto-héberger Weaviate sur un VPS

Weaviate ne se contente pas de stocker des vecteurs : grâce à ses modules (text2vec, reranker, generative), il peut vectoriser vos données automatiquement à l'insertion et même orchestrer des requêtes génératives, le tout exposé via GraphQL et REST. C'est une plateforme de recherche sémantique de bout en bout. L'auto-héberger sur un VPS vous donne la liberté d'activer uniquement les modules dont vous avez besoin, de connecter vos propres modèles d'embeddings et de garder vos données IA en interne. Pour les équipes qui construisent un assistant documentaire ou un moteur de recommandation, cela évite la dépendance à un service vectoriel managé et ses coûts au volume. Vous contrôlez la latence, la rétention et le schéma de vos classes, et vous pouvez faire évoluer le VPS au rythme de votre corpus.

Les bénéfices concrets du self-hosting de Weaviate

  • Vectorisation intégrée via les modules text2vec : vos textes sont transformés en vecteurs sans pipeline externe.
  • API GraphQL expressive pour des requêtes hybrides (vectorielle + filtres + BM25) en une seule requête.
  • Modules génératifs et de reranking pour bâtir un pipeline RAG complet directement dans la base.
  • Index HNSW performant avec compression produit (PQ) pour maîtriser la mémoire.
  • Schéma orienté classes et propriétés, proche d'un graphe, pratique pour des données structurées.
  • Souveraineté : vos embeddings et vos documents source restent hébergés sur votre VPS.

Prérequis matériels et logiciels

Weaviate est plus gourmand que Qdrant, surtout si vous activez des modules de vectorisation locaux. Pour une instance avec vectorisation déléguée à une API externe, 4 Go de RAM constituent un minimum confortable. Si vous faites tourner un module text2vec-transformers en local, prévoyez plutôt 8 Go et idéalement un GPU, sinon la vectorisation sera lente sur CPU. Comptez 2 à 4 vCPU et 30 à 60 Go de SSD selon le volume de vecteurs et de snapshots. Vous aurez besoin de Docker Compose pour orchestrer Weaviate et ses conteneurs de modules, d'un domaine pour l'exposition HTTPS, et de l'activation de l'authentification par clé API : comme pour toute base vectorielle, ne laissez jamais une instance ouverte sur Internet.

Weaviate ou Qdrant : quel choix pour votre VPS

CritèreWeaviateQdrant
Langage et empreinteGo, plus gourmand en RAMRust, très léger et économe
Vectorisation intégréeOui, via modules text2vec et generativeNon, embeddings fournis par le client
API principaleGraphQL et RESTREST et gRPC
Recherche hybrideNative (vectorielle + BM25)Native (vectorielle + filtres payload)
Compression mémoireProduct Quantization (PQ)Quantification scalaire et binaire
Facilité de déploiementCompose multi-conteneurs (modules)Conteneur unique, démarrage immédiat
Idéal pourPipeline RAG complet tout-en-unRecherche vectorielle rapide et frugale

Déployer Weaviate étape par étape

01

Préparer le VPS et Docker Compose

Installez Docker et Docker Compose. Créez un enregistrement DNS A pour search.mondomaine.ma. Réservez assez de RAM si vous prévoyez un module de vectorisation local.

02

Écrire le docker-compose.yml avec les modules

Déclarez le service weaviate (cr.weaviate.io/semitechnologies/weaviate) et, si besoin, un conteneur de module comme text2vec-transformers. Reliez-les via ENABLE_MODULES et TRANSFORMERS_INFERENCE_API. Montez un volume sur /var/lib/weaviate pour la persistance.

03

Configurer l'authentification et les modules

Activez l'auth par clé API avec AUTHENTICATION_APIKEY_ENABLED=true, définissez AUTHENTICATION_APIKEY_ALLOWED_KEYS et AUTHENTICATION_APIKEY_USERS. Désactivez l'accès anonyme (AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED=false) et choisissez le DEFAULT_VECTORIZER_MODULE.

04

Démarrer la stack

Lancez docker compose up -d et vérifiez l'état via curl http://localhost:8080/v1/.well-known/ready. Suivez les logs des conteneurs pour confirmer que les modules sont bien chargés.

05

Placer le reverse proxy et le TLS

Mettez Caddy ou Nginx devant le port 8080 pour gérer Let's Encrypt et n'exposez pas le port directement. Transmettez l'en-tête Authorization contenant la clé API jusqu'à Weaviate.

06

Créer une classe et interroger en GraphQL

Définissez une classe avec ses propriétés et son vectorizer, importez vos objets (vectorisés automatiquement si un module est actif), puis testez une requête nearText ou hybride en GraphQL. Planifiez des backups via le module de backup vers un stockage S3.

Si vous activez la vectorisation locale avec text2vec-transformers sans GPU, l'inférence sur CPU deviendra vite un goulot d'étranglement à l'import massif. Préférez alors déléguer la vectorisation à une API externe (text2vec-openai, text2vec-cohere ou un endpoint compatible que vous hébergez), ou activez la Product Quantization pour réduire la mémoire de l'index HNSW. Surveillez la consommation RAM via les métriques Prometheus exposées par Weaviate sur le port 2112.

Déployez votre plateforme RAG Weaviate

Le VPS Cloud ServOrbit vous donne les ressources et l'environnement Docker pour héberger Weaviate et ses modules, et bâtir un pipeline de recherche sémantique complet, sécurisé et souverain.

Besoin d'aide ?

Parcourez notre centre d'aide et notre FAQ, ou écrivez à notre équipe — support en anglais, français et arabe.