Commit Graph
28 Commits
Author SHA1 Message Date
Claude f5ddb345dd Add Open WebUI MCP tool registration hint to Done output
After install, remind users to add the MCP SSE URL in Open WebUI's
Admin → Settings → Tools panel (only shown when both MCP and WebUI
are selected).

https://claude.ai/code/session_012gDnantBmFTWZGCiKyjazx
2026-03-21 02:54:20 +00:00
Claude 55cfa71464 Fix permission denied when --force overwrites root-owned config files
When Docker containers write config files (e.g. searxng/settings.yml),
those files end up owned by root. write_if_new now falls back to
sudo tee when the destination file exists but is not writable.

https://claude.ai/code/session_012gDnantBmFTWZGCiKyjazx
2026-03-21 02:49:51 +00:00
Claude cd150a7911 Move ZIM selection into the wizard so all prompts complete before downloads start
- The "select which ZIMs" menu now fires during Q4 (upfront wizard),
  alongside the yes/select/no choice, not after docker/models start
- Each ZIM entry shows [downloaded] if a matching .zim already exists
  in KIWIX_DIR — skips re-downloading automatically via dl_zim check
- Download phase now uses the pre-captured ZIM_PICKS directly,
  no interactive prompt mid-install

https://claude.ai/code/session_012gDnantBmFTWZGCiKyjazx
2026-03-21 02:21:54 +00:00
Claude 01ab7b8cc9 Number drive mount points for Ollama and Kiwix storage selection
Both [2/6] and [3/6] prompts now show detected mount points as a
numbered list. Type 0 for default/Docker volume, or 1/2/3 to pick a
drive directly. Typing a path manually still works as fallback.

https://claude.ai/code/session_012gDnantBmFTWZGCiKyjazx
2026-03-21 02:11:39 +00:00
Claude 19346ba867 Use numbered input for size tier selection
The tier table now shows 1–4 numbers so you type 1/2/3/4 instead of
typing "14B" or "32B". Tier names are still accepted as fallback.
Recommended tier is shown as a number (e.g. [2] instead of [14B]).

https://claude.ai/code/session_012gDnantBmFTWZGCiKyjazx
2026-03-21 02:08:21 +00:00
Claude 342c746b51 Revert "Replace whiptail menus with numbered text toggle selection"
This reverts commit c83439f576.
2026-03-21 02:06:55 +00:00
Claude c83439f576 Replace whiptail menus with numbered text toggle selection
All interactive prompts now use numbered toggles (type a number to
toggle on/off, Enter to confirm) instead of requiring whiptail.
Removed whiptail from apt dependencies in ubuntu-post-install.sh.

https://claude.ai/code/session_012gDnantBmFTWZGCiKyjazx
2026-03-21 02:05:08 +00:00
Claude 47e91baf69 Fix start.sh and Done output to only show URLs for selected services
Build URL/path lines as variables before the heredoc so only
installed services appear in start.sh and the final Done summary.

https://claude.ai/code/session_012gDnantBmFTWZGCiKyjazx
2026-03-21 01:48:22 +00:00
Claude 7e52271cb6 Replace component menu with per-service whiptail checklist
- Top-level menu now just: Full system setup / AI stack
- AI stack opens a second whiptail checklist (same style as
  ubuntu-post-install.sh) where each service is individually toggled:
    Ollama (always on, core)
    Open WebUI · RAG+ChromaDB · MCP Server · SearXNG
    Gitea · InvokeAI · Portainer · Kiwix
- Kiwix moved from top-level into the AI stack service list
- Existing containers auto-detected and pre-ticked ON
- MCP dependency on RAG enforced automatically with a warning
- COMPOSE_SERVICES, Done URLs, and summary all driven by per-service
  SVC_* flags so only selected services are started/shown
- Text toggle fallback for systems without whiptail

https://claude.ai/code/session_012gDnantBmFTWZGCiKyjazx
2026-03-21 00:33:14 +00:00
Claude 7953ba9d99 Add model selection wizard with speed estimates and origin preference
Replace fixed model defaults with an interactive wizard:

Origin preference:
  1) Western-only      — Codestral (Mistral 🇫🇷) · Phi4 · Mistral 7B
  2) Performance-first — Qwen2.5 + Qwen2.5-Coder (top benchmarks)
  3) Mixed             — Western chat/reasoning, Qwen for coding only
  4) Custom            — free-form model names

Size tier table — speed estimated for the user's actual VRAM with no
hard limits (Ollama already uses all available VRAM via NUM_GPU=999):
  ✓ fast  — fully in VRAM
  ~ good  — fits with small overhang (~reading speed)
  ✗ slow  — partial CPU offload
  ✗ very slow — heavy CPU offload

Recommended tier shown as suggestion based on VRAM, user can override.
pull-models.sh now bakes in the chosen model names at install time.
REASON_MODEL replaces hardcoded deepseek-r1:14b; skipped if empty or
same as chat model.

https://claude.ai/code/session_012gDnantBmFTWZGCiKyjazx
2026-03-21 00:23:11 +00:00
Claude 796a073c0a Add Docker/Compose always-check and SSH key import to AI stack setup
- Docker + Docker Compose check now runs on every invocation (not skipped
  on updates), installing if missing — ensures the stack can always run
- Added Docker Compose plugin install as fallback if compose is missing
- NVIDIA Container Toolkit check also always runs (not update-gated)
- Added SSH key import wizard question: import public keys from GitHub
  (gh:username) and/or Launchpad (lp:username) using ssh-import-id,
  so the machine is accessible over SSH immediately after setup

https://claude.ai/code/session_012gDnantBmFTWZGCiKyjazx
2026-03-20 22:22:02 +00:00
Claude 45dfa58d93 Add top-level checklist menu to laptop_full_setup.sh
Replace the single-choice component menu with a multi-select checklist
(whiptail if available, text-based toggle fallback). Users now pick any
combination of:

  [*] Full system setup  — runs ubuntu-post-install.sh (Ubuntu apps,
                           security hardening, backups, Docker services)
  [*] AI stack           — Ollama, Open WebUI, RAG, MCP, Gitea, InvokeAI
  [*] Kiwix              — Offline Wikipedia, Stack Overflow, Arch Wiki

This makes laptop_full_setup.sh the single entry point — run it once,
toggle what you need (like Ubuntu Server's tasksel), leave overnight.

https://claude.ai/code/session_012gDnantBmFTWZGCiKyjazx
2026-03-20 22:03:49 +00:00
Claude 92f5d886c7 Add leave-overnight wizard to laptop_full_setup.sh
Gather all setup choices upfront so users can answer questions once and
walk away. Changes:
- Setup wizard asks all questions before any installation begins:
  1. Component selection (AI stack / Kiwix / both)
  2. Ollama model storage (Docker volume or custom bind-mount path)
  3. Kiwix ZIM storage location (detect drives with enough free space)
  4. Firewall LAN subnet (auto-detected from current IP)
  5. Model downloads (confirm GPU-matched models, optional DeepSeek-R1)
  6. ZIM downloads (all / select / skip)
- Shows a summary and asks for confirmation before doing anything
- Ollama supports bind-mount to custom path (e.g. /mnt/ssd/ollama)
- Kiwix ZIM dir is configurable (separate large drive)
- Model pull runs unattended at end using upfront answer
- ZIM downloads integrated inline (no need to run kiwix_download.sh
  separately) — background wget with progress log

https://claude.ai/code/session_012gDnantBmFTWZGCiKyjazx
2026-03-20 22:01:27 +00:00
Claude 5da719b1d0 Remove ChromaDB healthcheck, use service_started for depends_on
Healthcheck tools (wget/curl) are not reliably available in the
chromadb image. Removing the healthcheck and switching rag-server
depends_on to service_started avoids the unhealthy container error.

https://claude.ai/code/session_012gDnantBmFTWZGCiKyjazx
2026-03-20 21:40:22 +00:00
Claude a815a3555e Add interactive component menu and fix ChromaDB healthcheck
- Show menu at startup to select: full stack, AI stack only, or Kiwix only
- Gate server files, SearXNG config, docker compose up, model pull,
  and summary URLs based on selection
- Fix ChromaDB healthcheck: wget → curl, /api/v2/ → /api/v1/heartbeat

https://claude.ai/code/session_012gDnantBmFTWZGCiKyjazx
2026-03-20 21:37:58 +00:00
Claude 6ac4fc617e Fix NVIDIA Container Toolkit install URL
NVIDIA dropped the distro-specific repo URL in favour of a single
stable path. Also pass --yes to gpg --dearmor to avoid the interactive
overwrite prompt on re-runs.

https://claude.ai/code/session_012gDnantBmFTWZGCiKyjazx
2026-03-20 21:26:10 +00:00
Claude 66c530035d Add README with full setup instructions and script reference
Documents workflow, service URLs, day-to-day commands, generated file
layout, first-run checklist, GPU/model tiers, and what each script does.

https://claude.ai/code/session_012gDnantBmFTWZGCiKyjazx
2026-03-20 21:25:09 +00:00
Claude 07e8e93b4c Inline local-ai-setup.sh and kiwix_download.sh — truly self-contained
ubuntu-post-install.sh now embeds both companion scripts as single-quoted
heredocs written to mktemp files at runtime. No external files, git clone,
or internet access needed for [A] Local AI stack or [Z] Download ZIMs —
the single script is the only file required.

  local-ai-setup.sh  → embedded at lines 1084-1922 (LOCAL_AI_SETUP_EOF)
  kiwix_download.sh  → embedded at lines 2022-2221 (KIWIX_DOWNLOAD_EOF)

https://claude.ai/code/session_012gDnantBmFTWZGCiKyjazx
2026-03-20 21:09:09 +00:00
Claude 1f37def86d Add Local AI stack and ZIM download options to ubuntu-post-install.sh
Adds two new top-level menu choices to the installation mode selector:

  [A] Local AI stack  — finds or clones local-ai-setup.sh, asks which
      mounted drive to use for Ollama models and Kiwix ZIM files, runs
      the installer as the actual user, then patches docker-compose.yml
      for alternate storage if selected.

  [Z] Download ZIMs   — finds or clones kiwix_download.sh, shows
      mounted drives, optionally redirects the download via KIWIX_DIR,
      then runs the downloader as the actual user in the background.

Both functions locate their scripts alongside ubuntu-post-install.sh
first, then ~/local-ai/, then fall back to cloning outis1one/local-ai.

https://claude.ai/code/session_012gDnantBmFTWZGCiKyjazx
2026-03-20 21:09:09 +00:00
Outis 716477e907 Add files via upload 2026-03-20 15:38:51 -04:00
Outis 98f1021d40 Add files via upload 2026-03-20 15:29:01 -04:00
Outis 0a8b19fbdb Merge pull request #2 from outis1one/claude/cleanup-setup-webui-bCgPE
Add configure-storage.sh — interactive drive/folder setup for ZIM and…
2026-03-20 15:28:14 -04:00
Claude b2946a1c24 Add configure-storage.sh — interactive drive/folder setup for ZIM and models
Scans mounted drives, shows size/free space, prompts user to assign drives
for Kiwix ZIM files and Ollama model storage, then patches docker-compose.yml
in place with a backup.

https://claude.ai/code/session_012gDnantBmFTWZGCiKyjazx
2026-03-20 19:22:24 +00:00
Outis aa415cbecf Merge pull request #1 from outis1one/claude/cleanup-setup-webui-bCgPE
Claude/cleanup setup webui b cg pe
2026-03-20 11:17:04 -04:00
Claude 8a1ac05f1e Add single self-contained local-ai-setup.sh
Merges all components into one script — no separate server files needed.
Embeds server.py (RAG) and mcp_server.py (MCP) as inline heredocs.

- Auto-detects VRAM and sets models + context window accordingly:
  6GB  → 7B models, 8k ctx
  8GB+ → 14B chat + 7B code, 16k ctx
  16GB → 14B models, 32k ctx (V100/A100 friendly)
- New install or update (detects existing compose)
- --force flag to overwrite config files
- --no-pull to skip model download prompt
- Adds fetch_url tool to MCP server
- Optional DeepSeek-R1:14b pull for reasoning tasks

https://claude.ai/code/session_012gDnantBmFTWZGCiKyjazx
2026-03-20 15:14:10 +00:00
Claude 0f6d09db12 Refactor setup: new/update detection, split Python servers, add MCP server
- laptop_full_setup.sh now handles both fresh install and updates cleanly
  (detects existing install, --force flag to overwrite config files)
- server.py: standalone RAG server with AST-aware code chunking (Python),
  pattern-split for JS/TS/Go, /ingest/repo and /webhook/gitea|github endpoints
- mcp_server.py: new MCP server (port 8002/SSE) with Claude Code-equivalent
  tools: bash, file ops, ripgrep search, git ops, Gitea API, GitHub API,
  RAG repo ingest
- docker-compose: adds mcp-server service, workspace volume, env_file for tokens
- .env preserved on update (tokens never overwritten)
- GPU: OLLAMA_NUM_GPU=999 auto-adapts to any VRAM size (no hard-coded 6GB)
- ZIM downloads remain in kiwix_download.sh (separate, large files)

https://claude.ai/code/session_012gDnantBmFTWZGCiKyjazx
2026-03-20 12:50:59 +00:00
Claude 8a1780b179 Remove obsolete update_script.sh
Prep for full rewrite with MCP server, enhanced RAG, and Claude Code parity.

https://claude.ai/code/session_012gDnantBmFTWZGCiKyjazx
2026-03-20 11:05:25 +00:00
Outis e9bee0f13d Add files via upload 2026-03-19 22:25:26 -04:00