Merge pull request #5 from outis1one/claude/cleanup-setup-webui-bCgPE

Claude/cleanup setup webui b cg pe
This commit is contained in:
Outis
2026-03-20 17:42:22 -04:00
committed by GitHub
+58 -24
View File
@@ -48,6 +48,24 @@ info "Base : $BASE"
info "Host : $LOCAL_IP"
$IS_UPDATE && warn "Existing install found. Config files kept unless --force is passed."
# ── component menu ─────────────────────────────────────────────────────────────
echo ""
echo -e " ${BOLD}Select components to install:${NC}"
echo ""
echo " 1) Full stack — AI stack + Kiwix"
echo " 2) AI stack — Ollama · WebUI · RAG · MCP · ChromaDB · SearXNG · Gitea · InvokeAI · Portainer"
echo " 3) Kiwix only — Offline Wikipedia / docs (runs standalone)"
echo ""
read -rp " Choice [1]: " MENU_CHOICE
MENU_CHOICE="${MENU_CHOICE:-1}"
case "$MENU_CHOICE" in
1) INSTALL_AI=true; INSTALL_KIWIX=true ;;
2) INSTALL_AI=true; INSTALL_KIWIX=false ;;
3) INSTALL_AI=false; INSTALL_KIWIX=true ;;
*) die "Invalid choice '$MENU_CHOICE' — run again and choose 1, 2, or 3" ;;
esac
echo ""
# ── helper: write only if missing (or --force) ────────────────────────────────
# Usage: write_if_new /path/to/file << 'EOF' ... EOF
write_if_new() {
@@ -117,6 +135,7 @@ done
ok "Directories ready under $BASE"
# =============================================================================
if $INSTALL_AI; then
section "Server Files"
# =============================================================================
@@ -146,7 +165,10 @@ httpx
REQ
ok "mcp_requirements.txt"
fi # INSTALL_AI
# =============================================================================
if $INSTALL_AI; then
section "SearXNG Config"
# =============================================================================
write_if_new "$BASE/searxng/settings.yml" << SEARXNG
@@ -162,6 +184,8 @@ search:
formats: [html, json]
SEARXNG
fi # INSTALL_AI
# =============================================================================
section ".env File"
# =============================================================================
@@ -254,11 +278,6 @@ services:
environment:
- IS_PERSISTENT=TRUE
- ANONYMIZED_TELEMETRY=FALSE
healthcheck:
test: ["CMD-SHELL", "wget -qO- http://localhost:8000/api/v2/heartbeat || exit 1"]
interval: 15s
timeout: 5s
retries: 5
# ── RAG Server — code-aware retrieval ──────────────────────────────────────
rag-server:
@@ -288,7 +307,7 @@ services:
uvicorn server:app --host 0.0.0.0 --port 8001"
depends_on:
chromadb:
condition: service_healthy
condition: service_started
ollama:
condition: service_healthy
@@ -578,11 +597,18 @@ section "Starting Stack"
# =============================================================================
cd "$BASE"
info "Pulling images (this takes a few minutes on first run)..."
docker compose pull --quiet
docker compose up -d
COMPOSE_SERVICES=""
$INSTALL_AI && COMPOSE_SERVICES+=" ollama open-webui chromadb rag-server mcp-server searxng gitea invokeai portainer"
$INSTALL_KIWIX && COMPOSE_SERVICES+=" kiwix"
# shellcheck disable=SC2086
docker compose pull --quiet $COMPOSE_SERVICES
# shellcheck disable=SC2086
docker compose up -d $COMPOSE_SERVICES
ok "Stack started"
if ! $IS_UPDATE; then
if $INSTALL_AI && ! $IS_UPDATE; then
echo ""
read -rp "Pull Ollama models now? (~20GB total, takes 10-40 min) [Y/n]: " DO_PULL
if [[ "${DO_PULL,,}" != "n" ]]; then
@@ -596,22 +622,30 @@ fi
echo ""
echo -e "${GREEN}${BOLD}━━━ Done! ━━━${NC}"
echo ""
echo -e " ${CYAN}Open WebUI${NC} → http://$LOCAL_IP:3000"
echo -e " ${CYAN}InvokeAI${NC} → http://$LOCAL_IP:9090"
echo -e " ${CYAN}SearXNG${NC} → http://$LOCAL_IP:8888"
echo -e " ${CYAN}Kiwix${NC} → http://$LOCAL_IP:8181 (needs ZIMs — run kiwix_download.sh)"
echo -e " ${CYAN}Gitea${NC} → http://$LOCAL_IP:3001"
echo -e " ${CYAN}RAG Health${NC} → http://$LOCAL_IP:8001/health"
echo -e " ${CYAN}MCP SSE${NC} → http://$LOCAL_IP:8002/sse"
echo -e " ${CYAN}Portainer${NC} → https://$LOCAL_IP:9443"
if $INSTALL_AI; then
echo -e " ${CYAN}Open WebUI${NC} → http://$LOCAL_IP:3000"
echo -e " ${CYAN}InvokeAI${NC} → http://$LOCAL_IP:9090"
echo -e " ${CYAN}SearXNG${NC} → http://$LOCAL_IP:8888"
echo -e " ${CYAN}Gitea${NC} → http://$LOCAL_IP:3001"
echo -e " ${CYAN}RAG Health${NC} → http://$LOCAL_IP:8001/health"
echo -e " ${CYAN}MCP SSE${NC} → http://$LOCAL_IP:8002/sse"
echo -e " ${CYAN}Portainer${NC} → https://$LOCAL_IP:9443"
fi
if $INSTALL_KIWIX; then
echo -e " ${CYAN}Kiwix${NC} → http://$LOCAL_IP:8181 (needs ZIMs — run kiwix_download.sh)"
fi
echo ""
echo -e " ${YELLOW}Add MCP to Claude Code:${NC}"
echo " claude mcp add local http://$LOCAL_IP:8002/sse"
echo ""
echo -e " ${YELLOW}Add API tokens to:${NC} $BASE/.env"
echo -e " ${YELLOW}Drop PDFs into:${NC} $BASE/papers/"
echo -e " ${YELLOW}Your workspace:${NC} $BASE/workspace/"
echo -e " ${YELLOW}ZIM downloads:${NC} ./kiwix_download.sh"
if $INSTALL_AI; then
echo -e " ${YELLOW}Add MCP to Claude Code:${NC}"
echo " claude mcp add local http://$LOCAL_IP:8002/sse"
echo ""
echo -e " ${YELLOW}Add API tokens to:${NC} $BASE/.env"
echo -e " ${YELLOW}Drop PDFs into:${NC} $BASE/papers/"
echo -e " ${YELLOW}Your workspace:${NC} $BASE/workspace/"
fi
if $INSTALL_KIWIX; then
echo -e " ${YELLOW}ZIM downloads:${NC} ./kiwix_download.sh"
fi
echo ""
$IS_UPDATE && echo -e " ${GREEN}Update complete.${NC}" \
|| echo -e " ${GREEN}Fresh install complete.${NC}"