Puede ejecutar un asistente privado al estilo de ChatGPT en su propio servidor sin GPU. Ollama descarga y ejecuta modelos de lenguaje de pesos abiertos como Qwen, Llama y Gemma detrás de una API sencilla, y Open WebUI añade una interfaz de chat con usuarios, historial y carga de documentos. Como todo se ejecuta en su servidor, las consultas y los documentos nunca salen de él. Esta guía explica cómo elegir el tamaño del servidor, instalar Ollama, escoger un modelo que funcione bien en CPU, añadir Open WebUI con HTTPS y usar la API desde sus propias aplicaciones.
En CPU, la cantidad de RAM determina qué modelos puede cargar, y el número y la velocidad de los núcleos determinan la rapidez con la que aparecen las respuestas. Los modelos cuantizados (las versiones Q4 predeterminadas de Ollama) necesitan aproximadamente la siguiente memoria:
| Tamaño del modelo | RAM para el modelo | Servidor recomendado | Uso típico |
|---|---|---|---|
| 1–4B parámetros | unos 1–3 GB | 4 núcleos, 8 GB de RAM | Clasificación, respuestas cortas, pruebas |
| 7–8B parámetros | unos 5–6 GB | 8+ núcleos, 16 GB de RAM | Asistente de chat, resúmenes, base de conocimiento interna |
| 14B parámetros | unos 9–10 GB | 16+ núcleos, 32 GB de RAM | Mejor razonamiento y redacción, más lento en CPU |
Con modelos de 7–8B en una CPU multinúcleo moderna, cuente con unas pocas palabras por segundo: suficiente para un equipo pequeño o tareas en segundo plano, demasiado lento para cientos de usuarios simultáneos. Para un uso más intensivo, elija un servidor dedicado con más núcleos y RAM en lugar de un VPS pequeño, y no ejecute en la misma máquina otros servicios que consuman mucha memoria.
curl -fsSL https://ollama.com/install.sh | sh
systemctl status ollama --no-pager
ollama --version
ss -lntp | grep 11434 # should show 127.0.0.1:11434
El instalador crea un usuario de sistema ollama y un servicio systemd que escucha en 127.0.0.1:11434. Los modelos se guardan en /usr/share/ollama/.ollama/models; asegúrese de que ese disco tenga espacio suficiente (un modelo de 7B ocupa unos 4–5 GB).
# Strong multilingual model, good at Chinese and English
ollama pull qwen2.5:7b
# Smaller and faster alternative
ollama pull llama3.2:3b
ollama run qwen2.5:7b "Explain in three sentences what a reverse proxy is."
ollama list # downloaded models
ollama ps # loaded models and how much memory they use
Explore la biblioteca de modelos de ollama.com para encontrar otros modelos y tamaños. Empiece con un modelo de 3B o 7B, compruebe la velocidad y pase a uno mayor solo si las respuestas no son lo bastante buenas.
Open WebUI se ejecuta en Docker (consulte nuestra guía de instalación de Docker). El contenedor debe poder llegar a Ollama en el host, así que haga que Ollama escuche en todas las interfaces y asegúrese de que el firewall bloquee el puerto 11434 desde el exterior.
# Let Ollama accept connections from Docker containers
mkdir -p /etc/systemd/system/ollama.service.d
cat > /etc/systemd/system/ollama.service.d/override.conf <<'EOF2'
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
EOF2
systemctl daemon-reload && systemctl restart ollama
# Allow Docker networks to reach Ollama, block everyone else (ufw: rules are matched in order)
ufw allow from 172.16.0.0/12 to any port 11434 proto tcp
ufw deny 11434/tcp
# firewalld: simply do not open 11434; Docker's own zone already lets containers reach the host
# Start Open WebUI, reachable only from the server itself until Nginx is in front
docker run -d --name open-webui --restart always \
-p 127.0.0.1:3000:8080 \
--add-host=host.docker.internal:host-gateway \
-e OLLAMA_BASE_URL=http://host.docker.internal:11434 \
-v open-webui:/app/backend/data \
ghcr.io/open-webui/open-webui:main
Desde otra máquina, confirme que http://YOUR_SERVER_IP:11434 no responde. Si responde, corrija el firewall antes de continuar.
Apunte un subdominio como ai.example.com al servidor, obtenga un certificado (consulte SSL gratis con Certbot o acme.sh) y configure el proxy hacia el contenedor. Open WebUI transmite las respuestas mediante WebSockets, así que mantenga las cabeceras de upgrade y un tiempo de espera de lectura largo.
server {
listen 443 ssl;
http2 on;
server_name ai.example.com;
ssl_certificate /etc/letsencrypt/live/ai.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ai.example.com/privkey.pem;
client_max_body_size 50m; # document uploads
location / {
proxy_pass http://127.0.0.1:3000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 600s;
}
}
Abra el sitio y cree la primera cuenta de inmediato: se convertirá en la cuenta de administrador. Después, en la configuración de administración, desactive el registro de nuevos usuarios o exija la aprobación del administrador, y cree usted mismo las cuentas de su equipo.
Ollama ofrece su propia API y un endpoint compatible con OpenAI, así que muchas herramientas y SDK funcionan con solo cambiar la URL base. Llámela desde el mismo servidor, o desde sus otros servidores a través de una red privada o un túnel SSH.
# Native API
curl http://127.0.0.1:11434/api/generate -d '{
"model": "qwen2.5:7b",
"prompt": "Write a short product description for a Tokyo VPS.",
"stream": false
}'
# OpenAI-compatible API (base URL http://127.0.0.1:11434/v1, any API key)
curl http://127.0.0.1:11434/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"qwen2.5:7b","messages":[{"role":"user","content":"Hello"}]}'
Las herramientas de flujos de trabajo como Dify y n8n pueden usar Ollama como proveedor de modelos; consulte requisitos de servidor para Dify, n8n y agentes de IA.
Environment="OLLAMA_KEEP_ALIVE=1h" en el archivo override para evitar que las primeras respuestas sean lentas.OLLAMA_NUM_PARALLEL=2 permite que dos solicitudes compartan un modelo cargado; cada ranura adicional necesita más RAM.ollama ps y free -h para comprobarlo.Sí, para herramientas internas, preguntas y respuestas sobre documentos, redacción de borradores, traducción y tareas por lotes con modelos de 3B–8B. Para muchos usuarios simultáneos o modelos grandes, necesitará más núcleos y RAM, o hardware con GPU.
La familia Qwen se ha entrenado intensamente en chino e inglés y es una buena opción predeterminada. Pruebe primero qwen2.5:7b y después compárelo con otros modelos usando sus propias preguntas.
No. Ollama y Open WebUI procesan las consultas y los documentos localmente. Solo la descarga de modelos y de actualizaciones se conecta a internet.
¿Sigue sin resolverlo después de seguir estos pasos? Abra un ticket de soporte y el equipo técnico de IMIDC, disponible 24/7, le ayudará. Incluya la IP del servidor, la versión del sistema operativo, la CPU y la RAM, el modelo que usa y la salida completa del error para que podamos localizar el problema más rápido.