Saltar al contenido

Soluciones · Chat con documentos

Un VPS para AnythingLLM

AnythingLLM es un espacio de chat privado sobre sus propios documentos: sube archivos, se convierten en embeddings en una base de datos vectorial integrada y conversa con ellos a través de un modelo alojado con una clave de API o de uno local mediante Ollama. Su documentación pide 2 GB de RAM, una CPU de 2 núcleos con AVX2 y 5 GB de disco, y considera AVX2 el único requisito obligatorio. GL2-4 a $11.90 al mes es la máquina más barata que cumple ese mínimo; BD-8 a $12.90 es la que compraríamos nosotros, porque el embedder se ejecuta en la CPU de esta máquina.

Lo que necesita

Software según la documentación, tamaños etiquetados por fuente

El software y la configuración de seguridad provienen de la documentación oficial del proyecto. Cuando el proyecto no publica requisitos de hardware, los tamaños indican de quién son.

Según docs.anythingllm.com y la guía de Docker del proyecto

  • “RAM 2GB, 2-core CPU with AVX2, Storage 5GB”: el mínimo de la documentación. En una máquina en la nube, la guía de Docker indica al menos 2 GB de RAM y un mínimo de 10 GB de disco.
  • AVX2 es “el único requisito obligatorio”: la base de datos vectorial predeterminada está compilada para CPU de 2013 en adelante y, sin él, el servidor se cae al arrancar. Compruébelo dentro de la máquina: lscpu | grep -o avx2. Si no muestra nada, configure VECTOR_DB con otra base de datos vectorial.
  • Instalación: docker run -d -p 3001:3001 --cap-add SYS_ADMIN … mintplexlabs/anythingllm con un directorio de almacenamiento montado en /app/server/storage. La aplicación está en el puerto 3001.
  • El chat necesita un modelo: una clave de API de un proveedor alojado, u Ollama en la misma u otra máquina. Los embeddings se ejecutan por defecto en la CPU de esta máquina. El modo multiusuario con permisos es una función de la versión Docker. Sin GPU.

Tamaños (el mínimo del proyecto y luego el nuestro)

Dimensionamiento por carga de trabajo
Carga de trabajovCPURAM
Documentos, chats, un modelo alojado (mínimo oficial)Dos núcleos con AVX2. 5 GB de disco, 10 GB en una máquina en la nube; solo las imágenes ocupan unos cuantos gigabytes.22 GB
Una biblioteca de documentos real, el embedder de CPU integrado, unos pocos usuariosNuestro. Los embeddings se ejecutan en esta CPU; una subida grande con dos núcleos tarda bastante.48 GB
Ollama al lado para una pila totalmente localNuestro. Es una cuestión de alojamiento de modelos, no de AnythingLLM: dimensiónelo en la página de Ollama.832 GB

Los planes adecuados

5 máquinas, con precio en tiempo real

Primero la máquina más barata que encaja. Los precios son los de hoy, por mes, tomados del catálogo. Ejecute la comprobación de AVX2 en la que compre, en el primer minuto.

  • GL2-4$11.90/mes

    2 vCPU · 4 GB · 40 GB de disco · Unmetered

    La más barata que cumple el mínimo, sin medición de tráfico. 2 vCPU / 4 GB / 40 GB, el doble de la memoria que pide la documentación, y tráfico sin medición para las subidas. Ejecute la comprobación de AVX2 antes que nada.

  • BD-8$12.90/mes

    4 vCPU · 8 GB · 100 GB de disco · 32 TB

    La que compraríamos nosotros: 4 núcleos para el embedder. 4 vCPU, 8 GB, 100 GB y 32 TB de transferencia por un dólar más. Procesar los embeddings de una biblioteca con cuatro núcleos en lugar de dos es la diferencia que se nota.

  • BD-24$31.90/mes

    8 vCPU · 24 GB · 300 GB de disco · 32 TB

    8 vCPU / 24 GB para muchos usuarios y Ollama al lado. Espacio para un modelo 8B en Ollama en la misma máquina, lento, y los documentos de un equipo.

  • C2-4-80$37.90/mes

    2 vCPU · 4 GB · 80 GB de disco · 3 TB

    La configuración del mínimo, en decenas de ciudades. 2 vCPU / 4 GB / 80 GB. Elíjalo por la ciudad. Modelo alojado, biblioteca modesta.

  • C4-8-160$75.90/mes

    4 vCPU · 8 GB · 160 GB de disco · 3 TB

    4 vCPU / 8 GB / 160 GB, en decenas de ciudades. El tamaño holgado, con disco para una biblioteca grande y sus vectores.

Todavía no hay un preajuste de inicio para AnythingLLM: la instalación son los cinco pasos siguientes, que usted escribe. El paso 3 difiere del comando del proyecto en una opción, que vincula el puerto a loopback, y lo indica.

La instalación

Cinco pasos, según la guía de Docker del proyecto

Compruebe la CPU, instale Docker, ejecute el contenedor en loopback, configúrelo por SSH y luego asígnele un dominio.

  1. Compruebe primero AVX2. lscpu | grep -o avx2 Debe mostrar avx2. La documentación deja claro que esta es la única regla de hardware y que no se puede emular; una máquina sin ella necesita VECTOR_DB configurado con una base de datos vectorial externa antes del primer arranque.
  2. Docker. curl -fsSL https://get.docker.com | sh
  3. Ejecútelo en loopback. export STORAGE_LOCATION=/opt/anythingllm && mkdir -p $STORAGE_LOCATION && touch $STORAGE_LOCATION/.env docker run -d --name anythingllm --restart unless-stopped -p 127.0.0.1:3001:3001 --cap-add SYS_ADMIN --add-host=host.docker.internal:host-gateway -v $STORAGE_LOCATION:/app/server/storage -v $STORAGE_LOCATION/.env:/app/server/.env -e STORAGE_DIR="/app/server/storage" mintplexlabs/anythingllm Es el comando del proyecto con un cambio: -p 127.0.0.1:3001:3001 en lugar de -p 3001:3001, para que el chat no esté expuesto en internet antes de que haya definido una contraseña. El directorio de almacenamiento contiene la base de datos, los vectores y sus documentos; haga copia de seguridad.
  4. Configúrelo por SSH. ssh -N -L 3001:127.0.0.1:3001 root@your-server y luego http://127.0.0.1:3001. Elija el LLM: un proveedor alojado y su clave de API, u Ollama en http://host.docker.internal:11434 si se ejecuta en esta máquina. Active el modo multiusuario o defina la contraseña de la instancia en Settings antes de que nadie más pueda acceder.
  5. Asígnele un dominio. Apunte un registro A al servidor, instale Caddy, y un bloque de Caddyfile reverse_proxy 127.0.0.1:3001 bajo su dominio obtiene el certificado y pone HTTPS delante del 3001. Abra el 80 y el 443 en el firewall, nada más.

Con franqueza

Lo que realmente compraríamos

El mínimo es 2 núcleos y 2 GB, y la fila más barata lo cumple. Aun así, nosotros gastaríamos el dólar de más.

Para una biblioteca de documentos que realmente vaya a usar

BD-8 · $12.90/mes

4 vCPU, 8 GB y 100 GB por $12.90, frente a GL2-4 por $11.90: un dólar al mes compra dos núcleos más para el embedder que se ejecuta en esta máquina cada vez que sube un archivo, y 100 GB para los documentos y sus vectores. El modelo está en otro lugar, detrás de una clave de API, así que no hace falta GPU; si quiere Ollama a su lado, lea la página de Ollama y compre para el modelo, no para AnythingLLM. En cualquiera de ellos, ejecute la comprobación de AVX2 antes de subir un solo archivo.

Preguntas

Lo que se pregunta antes de contratar uno.

¿Cuáles son los requisitos del sistema de AnythingLLM?
Su documentación indica un mínimo de 2 GB de RAM, una CPU de 2 núcleos con AVX2 y 5 GB de almacenamiento, y dice que basta para guardar algunos documentos, chatear y usar sus funciones. La guía de Docker del proyecto añade que en una máquina en la nube conviene contar con al menos 2 GB de RAM y 10 GB de disco, porque el disco crece con los documentos, los vectores y los modelos locales. La documentación también dice que la aplicación es una capa sobre servicios externos, por lo que es ligera cuando el modelo y el embedder están en otro sitio, y más pesada cuando se ejecutan en la misma máquina.
¿Qué es el requisito de AVX2 y lo tendrá mi VPS?
La base de datos vectorial predeterminada, LanceDB, está compilada para CPU con el conjunto de instrucciones AVX2 (Intel Haswell, 2013, y posteriores). Sin él, el proceso del servidor se termina en cuanto se carga la base de datos, y la documentación lo considera el único requisito de hardware obligatorio. Las máquinas virtuales son el problema: un hipervisor puede presentar un modelo de CPU genérico que oculta AVX2 incluso en un host moderno, por eso la documentación indica comprobarlo dentro del invitado con lscpu | grep -o avx2, no en el host. No prometemos una característica de CPU que no podemos ver desde el catálogo, así que ejecute esa línea en el primer minuto. Si no muestra nada, configure VECTOR_DB con una de las otras bases de datos vectoriales compatibles, que se ejecutan como servicios independientes.
¿Necesita una GPU?
No. AnythingLLM en sí ejecuta la aplicación web, el procesamiento de documentos y, por defecto, un embedder solo de CPU. Las respuestas del chat vienen del LLM que conecte: un proveedor alojado mediante una clave de API, con lo que la documentación llama una sobrecarga casi nula, o uno local mediante Ollama. La propia recomendación de la documentación es alojar un modelo local en otra máquina que tenga GPU si la máquina de AnythingLLM no la tiene. Eso corresponde a la página de Ollama y a la línea GPU, no a esta.
¿Queda abierto en internet tras la instalación?
El comando del proyecto publica el puerto 3001 en todas las interfaces, y una instancia nueva no tiene contraseña hasta que usted la establezca. La instalación de esta página vincula el 3001 a 127.0.0.1, así que, hasta que añada un dominio, la única forma de acceder es un túnel SSH. Después, en Settings, establezca la contraseña de la instancia o active el modo multiusuario, que el README indica como una función de la versión Docker, antes de poner HTTPS delante.
¿Dónde se guardan mis datos?
En el directorio de almacenamiento que monta en /app/server/storage: la base de datos SQLite, los vectores de LanceDB, los documentos subidos y cualquier modelo descargado localmente. La guía de Docker indica montarlo en el host precisamente para que pueda descargar una imagen nueva sin perder nada. Haga copia de seguridad de ese directorio y del .env que está junto a él; juntos son la instancia completa.
¿Puede usar Ollama en la misma máquina?
Sí. Desde dentro del contenedor, el host es http://host.docker.internal:11434, lo que en Linux requiere --add-host=host.docker.internal:host-gateway en el comando run; el paso anterior lo incluye. En ese caso, dimensione la máquina para el modelo: un modelo de 8B necesita 8 GB propios además de AnythingLLM, y responde a unos pocos tokens por segundo en CPU. La fila de 24 GB es la más pequeña de esta página en la que eso resulta cómodo.