Tu propio ChatGPT, con todos los modelos de NaN, corriendo en tu equipo y montado en 2 minutos.
Una interfaz web tipo ChatGPT (Open WebUI) ya conectada a la API de NaN. Self-hosted, en Docker, con tu propia API key. Tus chats y tus cuentas se quedan en tu máquina.
¿No has usado Docker nunca? Sigue la guia paso a paso, a prueba de errores y no te equivocaras. Si te atascas, hasta puedes pedirle a un asistente de IA (como OpenCode con un modelo de NaN, p. ej.
mimo-v2.5) que te lo monte: le abres dentro de la carpeta y le dices "levanta esta imagen Docker siguiendo el README".
- Un único frontend para todo NaN. Chat, visión, audio y embeddings de todos los modelos de NaN desde la misma interfaz, sin saltar de herramienta.
- Tus datos, tu casa. Las conversaciones, usuarios y ajustes viven en tu Docker, no en la nube de un tercero. La API key es tuya y solo sale hacia NaN.
- Coste predecible. Pagas tu inferencia en NaN y punto: la interfaz es gratuita y open source, sin capas de suscripción por encima.
- Listo para equipos. Levanta un servidor para tu equipo o comunidad: cada persona con su cuenta, tú administras quién entra.
- Sin lock-in. Es compatible con la API de OpenAI; si mañana cambias de proveedor, cambias una URL.
En una frase: la experiencia ChatGPT, con el catálogo de NaN, bajo tu control.
- Open WebUI (la UI self-hosted de referencia) preconfigurada para NaN.
- Modelos de NaN disponibles desde el selector:
qwen3.6,deepseek-v4-flash,mimo-v2.5,gemma4(chat / visión / razonamiento),whisper(audio -> texto),kokoro(texto -> voz) yqwen3-embedding(embeddings). - Capacidades: chat con historial, visión (subir imágenes a los modelos
multimodales), búsqueda web (incluye SearXNG autoalojado, sin API key: el modelo
busca en internet y responde con fuentes), voz (lee las respuestas con
kokorode NaN y dicta con un whisper local), intérprete de código (el modelo escribe y ejecuta Python en el navegador), RAG sobre tus documentos (embeddings conqwen3-embedding), multiusuario con control de acceso, y persistencia. - Despliegue en un comando con Docker Compose.
- API key segura por diseño: solo vive en tu
.env, nunca en la imagen ni en el repo.
- Docker y Docker Compose.
- Una API key de NaN -> https://nan.builders
# 0) Descarga el proyecto desde GitHub
git clone https://github.com/686f6c61/NaN-Open-WebUI.git
cd NaN-Open-WebUI
# 1) Crea tu .env (genera tambien la clave secreta de sesion)
./setup.sh
# 2) Edita .env y pon tu API key en NAN_API_KEY
nano .env
# 3) Arranca
docker compose up -dAbre http://localhost:3000. La primera cuenta que crees sera la de administrador.
Windows/Mac sin
./setup.sh: copia.env.examplea.env, pon tuNAN_API_KEYy (recomendado) genera unaWEBUI_SECRET_KEYconopenssl rand -hex 32. Luegodocker compose up -d.
La imagen esta publicada en GitHub Packages (GHCR), asi que puedes arrancarla con un
solo comando (cambia sk-tu-key-de-nan por tu clave):
docker run -d --name nan-open-webui -p 3000:8080 \
-e ENABLE_OPENAI_API=true \
-e OPENAI_API_BASE_URL=https://api.nan.builders/v1 \
-e OPENAI_API_KEY=sk-tu-key-de-nan \
-e WEBUI_AUTH=true \
-v nan-open-webui-data:/app/backend/data \
ghcr.io/686f6c61/nan-open-webui:latestImagen: ghcr.io/686f6c61/nan-open-webui:latest
Nota: este modo de un solo contenedor no incluye la búsqueda web (que necesita el servicio SearXNG). Para tener búsqueda web, usa el
docker compose up -dde arriba.
| Variable | Obligatoria | Por defecto | Descripcion |
|---|---|---|---|
NAN_API_KEY |
Si | — | Tu API key de NaN |
WEBUI_SECRET_KEY |
Recomendado | (se genera) | Firma las sesiones de la web |
WEBUI_PORT |
No | 3000 |
Puerto local de la interfaz |
WEBUI_NAME |
No | NaN Chat |
Nombre mostrado en la UI |
ENABLE_SIGNUP |
No | true |
Permitir nuevos registros |
OPENAI_API_BASE_URL |
No | https://api.nan.builders/v1 |
Endpoint OpenAI-compatible |
Tras crear tu cuenta admin, si no quieres mas registros pon ENABLE_SIGNUP=false y
docker compose up -d.
- La key vive solo en tu
.envlocal. No esta en la imagen Docker, ni en eldocker-compose.yml, ni en el repositorio. - El
.gitignoreexcluye.env: no lo subes a git por error. - Si arrancas sin key, Compose se detiene con un aviso claro en vez de arrancar mal.
- No compartas tu
.env. Para pasarle esto a otra persona, dale el proyecto sin el.env(o solo el.env.example); que cada uno ponga la suya. - Si tu key se filtra, revocala/rotala en NaN y actualiza el
.env.
Opcion A (recomendada): comparte la carpeta sin tu .env. Cada persona hace
./setup.sh, pone su NAN_API_KEY y arranca.
Opcion B: publica la imagen preconfigurada (sin secretos dentro):
docker build -t TU_USUARIO/nan-open-webui:latest .
docker push TU_USUARIO/nan-open-webui:latestQuien la reciba solo necesita el docker-compose.yml + .env.example y su propia key.
docker compose up -d # arrancar / aplicar cambios
docker compose logs -f # ver logs
docker compose down # parar (conserva los datos)
docker compose pull && docker compose up -d # actualizar Open WebUI
docker compose down -v # parar y BORRAR todos los datosLos datos (cuentas, chats, ajustes) persisten en el volumen nan-open-webui-data.
- No aparece ningun modelo -> la
NAN_API_KEYes incorrecta o vacia. Verificala:curl https://api.nan.builders/v1/models -H "Authorization: Bearer TU_KEY" - El puerto 3000 esta ocupado -> cambia
WEBUI_PORTen.envydocker compose up -d. - "Falta NAN_API_KEY" al arrancar -> ejecuta
./setup.shy rellena el.env. - Una imagen da "no soporta imagenes" -> selecciona un modelo de vision
(
qwen3.6,gemma4,mimo-v2.5), no uno de solo texto comodeepseek-v4-flash.
- Por defecto la web escucha en
0.0.0.0:WEBUI_PORT, accesible desde tu red local (http://IP-de-tu-equipo:3000). Exponerlo a internet requiere HTTPS + firewall, fuera del alcance de este paquete. - Compatible con cualquier endpoint estilo OpenAI: cambia
OPENAI_API_BASE_URLpara usar otro proveedor.
Hecho para la comunidad de NaN. Open WebUI es un proyecto open source independiente; NaN es el proveedor de inferencia. Cada usuario aporta su propia API key.
