Files
carlospalanca.es/docs/setup/03-openwebui.md

133 lines
3.4 KiB
Markdown

# Setup 03 — OpenWebUI
OpenWebUI es el gateway de LLM. Los 9 agentes lo llaman vía API en lugar de llamar directamente a OpenAI/Anthropic. Esto centraliza el modelo y permite cambiarlo sin redeployar los bots.
## 1. Subir el archivo de configuración al VPS
Desde tu máquina local:
```bash
# Crear el directorio en el VPS
ssh root@<IP_VPS> "mkdir -p /opt/openwebui"
# Subir el docker-compose
scp vps/docker-compose.openwebui.yml root@<IP_VPS>:/opt/openwebui/docker-compose.yml
```
## 2. Crear el archivo `.env` en el VPS
```bash
ssh root@<IP_VPS>
cd /opt/openwebui
```
Crea el archivo `/opt/openwebui/.env`:
```bash
cat > .env << 'EOF'
# Genera con: openssl rand -hex 32
WEBUI_SECRET_KEY=CAMBIA_ESTO_POR_STRING_ALEATORIO
# Modelo por defecto que verán los usuarios en la UI
DEFAULT_MODEL=gpt-4o
# Pon SOLO la clave del proveedor que vayas a usar:
# OpenAI (GPT-4o, GPT-4, etc.)
OPENAI_API_KEY=sk-...
# Anthropic (Claude 3.5 Sonnet, Claude 3 Opus, etc.)
# ANTHROPIC_API_KEY=sk-ant-...
EOF
```
**Para generar un WEBUI_SECRET_KEY seguro:**
```bash
openssl rand -hex 32
```
## 3. Levantar OpenWebUI
```bash
cd /opt/openwebui
docker compose up -d
# Verificar que está corriendo
docker compose ps
docker compose logs -f openwebui
```
Espera a que aparezca `Application startup complete` en los logs.
## 4. Verificar acceso
Abre en el navegador: `https://ai.carlospalanca.es`
Deberías ver la pantalla de login de OpenWebUI.
1. Crea una cuenta de administrador (la primera cuenta es admin automáticamente)
2. Verifica que puedes chatear (Settings → Models → selecciona un modelo)
## 5. Crear el API Key para los agentes
Los agentes necesitan un API key para autenticarse contra OpenWebUI.
1. Inicia sesión en `https://ai.carlospalanca.es`
2. Ve a **Settings** (icono de usuario arriba a la derecha)
3. **Account****API Keys**
4. Clic en **"Create new secret key"**
5. Nombre: `agents-key`
6. **Copia el token** (empieza por `sk-...`) — solo lo verás una vez
> Guarda este token como `OPENWEBUI_API_KEY` en el `.env` de los agentes.
## 6. Verificar el API con curl
```bash
curl -X POST https://ai.carlospalanca.es/api/chat/completions \
-H "Authorization: Bearer <TU_OPENWEBUI_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-4o",
"messages": [{"role": "user", "content": "Responde solo: OK"}]
}'
```
Debería responder algo como: `{"choices":[{"message":{"content":"OK",...`
## 7. (Opcional) Añadir modelos de Ollama para uso local
Si quieres usar modelos locales (Llama 3.1, Mistral, etc.) además de los de OpenAI:
En `docker-compose.yml`, descomenta la sección de `ollama` y la variable `OLLAMA_BASE_URL`.
Luego:
```bash
docker compose up -d
# Descargar un modelo (ej: llama3.1:8b)
docker exec -it ollama ollama pull llama3.1:8b
```
> Los modelos locales requieren más RAM. Para el CX22 de Hetzner (4 GB), usa solo modelos de 7-8B.
## Cambiar el modelo que usan los agentes
Para cambiar de GPT-4o a Claude (sin tocar código):
1. En `/opt/agents/.env`, cambia:
```bash
OPENWEBUI_MODEL=claude-3-5-sonnet-20241022
```
2. `docker compose restart` en la carpeta de agentes
## Checklist
- [ ] `/opt/openwebui/` creado en el VPS
- [ ] `docker-compose.yml` subido
- [ ] `.env` creado con las API keys
- [ ] `docker compose up -d` ejecutado
- [ ] `https://ai.carlospalanca.es` accesible
- [ ] Cuenta de admin creada
- [ ] API Key creada y copiada
- [ ] Verificado con curl que el API responde