feat: pack wordpress con IA nativa de WP 7.1 — fuera Open WebUI

- Eliminado el servicio openwebui del pack wordpress (no estaba integrado
  con WP; el chat IA vive ahora dentro del editor de WordPress).
- Plugins IA oficiales preinstalados y configurados en el arranque:
  'AI' (AI Experiments) + 'AI Provider for Ollama' (connector), host
  http://ollama:11434 (red interna del compose, sin puerto publicado).
- Autoconfig via contenedor oficial wordpress:cli (--volumes-from):
  espera a core is-installed, instala plugins y setea el option. Si WP
  aun no esta instalado, aviso y re-ejecucion tras el asistente.
- CPU cap dinamico en hermes/openclaw (min 6, nproc) y OLLAMA_CPUS
  parametrizado en compose (6.0 default) — evita fallo en hosts de 4 cores.
- .gitignore raiz (**/.env, *.gguf, override GPU).
- GATE A PASS: subagente independiente (5 findings aplicados: EAP 5.1,
  .gitignore, fallo autoconfig visible, red vacia, indentacion).
- E2E verificado en VPS: plugins activos + option host + provider
  responde /v1/chat/completions del modelo local.
This commit is contained in:
hermes committed 2026-09-12 23:48:19 +02:00
1 parent 9438b75c9f
commit dbbac84b0d
10 files changed
+144 -71

No files matched your search

+49 -16
View File
@@ -84,20 +84,16 @@ find_free_port() {
return 1
}
export OLLAMA_PORT=$(find_free_port 11434)
export WP_PORT=$(find_free_port 8080)
export WEBUI_PORT=$(find_free_port 3000)
# ── Mode info ───────────────────────────────
if [ "$MODE" = "local" ]; then
echo -e "${YELLOW}Modo:${NC} local (tu ordenador)"
echo -e " WordPress: ${CYAN}http://localhost:${WP_PORT}${NC}"
echo -e " IA (chat): ${CYAN}http://localhost:${WEBUI_PORT}${NC}"
elif [ "$MODE" = "vps" ]; then
IP=$(hostname -I 2>/dev/null | awk '{print $1}' || echo 'TU_IP')
echo -e "${YELLOW}Modo:${NC} VPS (accesible desde fuera)"
echo -e " WordPress: ${CYAN}http://${IP}:${WP_PORT}${NC}"
echo -e " IA (chat): ${CYAN}http://${IP}:${WEBUI_PORT}${NC}"
echo ""
echo -e " ${BOLD}¿No tienes VPS?${NC} Consigue uno con descuento:"
echo -e " ${CYAN}https://d0a1.es/go/vultr/${NC} — Vultr"
@@ -108,15 +104,9 @@ else
exit 1
fi
if [ "$OLLAMA_PORT" != "11434" ]; then
echo -e "${YELLOW}⚠ Puerto 11434 ocupado, usando ${OLLAMA_PORT}${NC}"
fi
if [ "$WP_PORT" != "8080" ]; then
echo -e "${YELLOW}⚠ Puerto 8080 ocupado, usando ${WP_PORT}${NC}"
fi
if [ "$WEBUI_PORT" != "3000" ]; then
echo -e "${YELLOW}⚠ Puerto 3000 ocupado, usando ${WEBUI_PORT}${NC}"
fi
echo ""
# ── Deploy ──────────────────────────────────
@@ -140,19 +130,62 @@ docker exec d0a1-wp-ollama ollama pull qwen3:4b
# ── Done ────────────────────────────────────
echo ""
echo -e "${BOLD}${GREEN}¡Listo! Tu WordPress con IA está corriendo.${NC}"
echo ""
# ── Auto-config WordPress (plugins IA + conexión a Ollama) ──
# El contenedor wordpress:7.1 no trae WP-CLI; usar el contenedor wordpress:cli.
echo -e "${YELLOW}Configurando los plugins de IA en WordPress (1-2 min la primera vez)...${NC}"
docker pull wordpress:cli >/dev/null 2>&1
# Red real del compose (el nombre depende del directorio, no es fijo):
WP_NET=$(docker inspect d0a1-wp --format '{{range $k,$_ := .NetworkSettings.Networks}}{{$k}}{{end}}' 2>/dev/null)
if [ -z "$WP_NET" ]; then
echo -e "${YELLOW}⚠ No se detecto la red del compose (d0a1-wp no corre). Saltando autoconfig.${NC}"
exit 1
fi
WP_DB_PASS=$(grep '^MYSQL_PASSWORD=' "$SCRIPT_DIR/.env" | cut -d= -f2)
wpcli() {
docker run --rm --network "$WP_NET" --volumes-from d0a1-wp \
--env WORDPRESS_DB_HOST=db:3306 \
--env WORDPRESS_DB_NAME=wordpress \
--env WORDPRESS_DB_USER=wordpress \
--env WORDPRESS_DB_PASSWORD="$WP_DB_PASS" \
wordpress:cli "$@" --allow-root
}
# Esperar a que WP esté instalado (el asistente del navegador es opcional:
# si el usuario aun no instalo WP, la autoconfig se salta y se puede repetir
# re-ejecutando deploy.sh).
WP_READY=0
for i in $(seq 1 15); do
if wpcli core is-installed >/dev/null 2>&1; then
WP_READY=1
break
fi
sleep 4
done
if [ "$WP_READY" = "1" ]; then
wpcli plugin install ai ai-provider-for-ollama --activate >/dev/null 2>&1 \
&& wpcli option update ai_provider_for_ollama_settings \
'{"host":"http://ollama:11434"}' --format=json >/dev/null 2>&1 \
&& echo -e "${GREEN}✓${NC} Plugins de IA activados y conectados a Ollama (IA local)" \
|| echo -e "${YELLOW}⚠ No se pudo auto-configurar. Re-ejecuta ./deploy.sh tras el asistente de WordPress.${NC}"
else
echo -e "${YELLOW}⚠ WordPress aun no está instalado. Tras el asistente del navegador,"
echo -e " vuelve a ejecutar ./deploy.sh y los plugins de IA se configuran solos.${NC}"
fi
echo ""
if [ "$MODE" = "local" ]; then
echo -e " ${BOLD}WordPress:${NC} ${CYAN}http://localhost:${WP_PORT}${NC}"
echo -e " ${BOLD}IA (chat):${NC} ${CYAN}http://localhost:${WEBUI_PORT}${NC}"
else
echo -e " ${BOLD}WordPress:${NC} ${CYAN}http://${IP}:${WP_PORT}${NC}"
echo -e " ${BOLD}IA (chat):${NC} ${CYAN}http://${IP}:${WEBUI_PORT}${NC}"
fi
echo ""
echo -e " ${BOLD}Configurar WordPress:${NC}"
echo " 1. Abre la URL de WordPress en tu navegador"
echo " 2. Sigue el asistente de instalación (2 minutos)"
echo " 3. Instala el plugin 'AI Agent Bridge' desde el panel"
echo -e " ${BOLD}IA integrada en el editor:${NC} títulos sugeridos, extractos, alt text"
echo -e " y moderación de comentarios con tu modelo local (qwen3:4b)."
echo -e " Configuración en ${BOLD}Ajustes → Connectors${NC} dentro de WordPress."
echo ""
echo -e " ${BOLD}Parar:${NC} ./deploy.sh stop"
echo -e " ${BOLD}¿Quieres más?${NC} ${CYAN}https://d0a1.es/packs/${NC}"