Tutorial

Alojar Weaviate en un VPS

Bases de datos4 min de lectura6 pasos

Weaviate es una base de datos vectorial open source que destaca por sus módulos de vectorización integrados y por su rica API GraphQL. Pensada para la búsqueda semántica y el RAG, se autoaloja en un VPS para ofrecer una plataforma de IA completa bajo su control. Veamos cómo desplegarla con Docker, configurar sus módulos y protegerla. También comparamos Weaviate con Qdrant para ayudarle a elegir.

Contenido· Por qué autoalojar Weaviate en un VPS1/5
  1. 01Por qué autoalojar Weaviate en un VPS
  2. 02Las ventajas concretas del self-hosting de Weaviate
  3. 03Requisitos de hardware y software
  4. 04Weaviate o Qdrant: qué elegir para su VPS
  5. 05Desplegar Weaviate paso a paso

Por qué autoalojar Weaviate en un VPS

Weaviate no se limita a almacenar vectores: gracias a sus módulos (text2vec, reranker, generative), puede vectorizar sus datos automáticamente en la inserción e incluso orquestar consultas generativas, todo ello expuesto por GraphQL y REST. Es una plataforma de búsqueda semántica de extremo a extremo. Autoalojarla en un VPS le da la libertad de activar únicamente los módulos que necesita, de conectar sus propios modelos de embeddings y de mantener sus datos de IA en casa. Para los equipos que construyen un asistente documental o un motor de recomendación, esto evita la dependencia de un servicio vectorial gestionado y su facturación por volumen. Usted controla la latencia, la retención y el esquema de sus clases, y puede hacer evolucionar el VPS al ritmo de su corpus.

Las ventajas concretas del self-hosting de Weaviate

  • Vectorización integrada mediante los módulos text2vec: sus textos se transforman en vectores sin pipeline externo.
  • API GraphQL expresiva para consultas híbridas (vectorial + filtros + BM25) en una sola petición.
  • Módulos generativos y de reranking para construir un pipeline RAG completo directamente en la base.
  • Índice HNSW de alto rendimiento con compresión de producto (PQ) para controlar la memoria.
  • Esquema orientado a clases y propiedades, cercano a un grafo, práctico para datos estructurados.
  • Soberanía: sus embeddings y sus documentos de origen permanecen alojados en su VPS.

Requisitos de hardware y software

Weaviate es más exigente que Qdrant, sobre todo si activa módulos de vectorización locales. Para una instancia con la vectorización delegada a una API externa, 4 GB de RAM constituyen un mínimo cómodo. Si ejecuta un módulo text2vec-transformers en local, prevea más bien 8 GB e, idealmente, una GPU; de lo contrario, la vectorización será lenta en CPU. Cuente con 2 a 4 vCPU y de 30 a 60 GB de SSD según el volumen de vectores y de snapshots. Necesitará Docker Compose para orquestar Weaviate y sus contenedores de módulos, un dominio para la exposición HTTPS y la activación de la autenticación por clave API: como con cualquier base vectorial, nunca deje una instancia abierta en Internet.

Weaviate o Qdrant: qué elegir para su VPS

Desplace la tabla

CriterioWeaviateQdrant
Lenguaje y huellaGo, más exigente en RAMRust, muy ligero y frugal
Vectorización integradaSí, mediante módulos text2vec y generativeNo, embeddings aportados por el cliente
API principalGraphQL y RESTREST y gRPC
Búsqueda híbridaNativa (vectorial + BM25)Nativa (vectorial + filtros de payload)
Compresión de memoriaProduct Quantization (PQ)Cuantificación escalar y binaria
Facilidad de despliegueCompose multicontenedor (módulos)Contenedor único, arranque inmediato
Ideal paraPipeline RAG completo todo en unoBúsqueda vectorial rápida y frugal

Desplegar Weaviate paso a paso

  1. Preparar el VPS y Docker Compose

    Instale Docker y Docker Compose. Cree un registro DNS A para search.mondomaine.com. Reserve suficiente RAM si prevé un módulo de vectorización local.

  2. Escribir el docker-compose.yml con los módulos

    Declare el servicio weaviate (cr.weaviate.io/semitechnologies/weaviate) y, si hace falta, un contenedor de módulo como text2vec-transformers. Enlácelos mediante ENABLE_MODULES y TRANSFORMERS_INFERENCE_API. Monte un volumen en /var/lib/weaviate para la persistencia.

  3. Configurar la autenticación y los módulos

    Active la autenticación por clave API con AUTHENTICATION_APIKEY_ENABLED=true y defina AUTHENTICATION_APIKEY_ALLOWED_KEYS y AUTHENTICATION_APIKEY_USERS. Desactive el acceso anónimo (AUTHENTICATION_ANONYMOUS_ACCESS_ENABLED=false) y elija el DEFAULT_VECTORIZER_MODULE.

  4. Arrancar el stack

    Ejecute docker compose up -d y compruebe el estado con curl http://localhost:8080/v1/.well-known/ready. Siga los logs de los contenedores para confirmar que los módulos se han cargado correctamente.

  5. Colocar el reverse proxy y el TLS

    Ponga Caddy o Nginx delante del puerto 8080 para gestionar Let's Encrypt y no exponga el puerto directamente. Transmita la cabecera Authorization con la clave API hasta Weaviate.

  6. Crear una clase y consultar en GraphQL

    Defina una clase con sus propiedades y su vectorizer, importe sus objetos (vectorizados automáticamente si hay un módulo activo) y pruebe después una consulta nearText o híbrida en GraphQL. Programe copias de seguridad con el módulo de backup hacia un almacenamiento S3.

Si activa la vectorización local con text2vec-transformers sin GPU, la inferencia en CPU se convertirá rápidamente en un cuello de botella durante las importaciones masivas. Prefiera entonces delegar la vectorización en una API externa (text2vec-openai, text2vec-cohere o un endpoint compatible que usted mismo aloje), o active la Product Quantization para reducir la memoria del índice HNSW. Vigile el consumo de RAM mediante las métricas Prometheus que Weaviate expone en el puerto 2112.

Despliegue su plataforma RAG Weaviate

El VPS Cloud de ServOrbit le da los recursos y el entorno Docker para alojar Weaviate y sus módulos, y construir un pipeline de búsqueda semántica completo, seguro y soberano.

¿Necesita ayuda?

Consulte nuestro centro de ayuda y nuestra FAQ, o contacte con nuestro equipo: llamada, WhatsApp o correo electrónico. Soporte en francés, inglés y árabe.

Escribir por WhatsAppse abre en una pestaña nueva