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:
1 parent
9438b75c9f
commit
dbbac84b0d
10 files changed
+144
-71
No files matched your search
+49
-16
@@ -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}"
|
||||
|
||||
Reference in new issue
Block a user