#!/usr/bin/env bash set -euo pipefail # Minimal bootstrap for Ubuntu: # - installs OpenClaude + Ollama # - pulls one local model # - does not install Docker/Qdrant/RAG stack # # Usage: # ./install-minimal.sh # ./install-minimal.sh --model qwen2.5:3b # ./install-minimal.sh --skip-model-pull MODEL="${MODEL:-qwen2.5-coder:7b}" SKIP_MODEL_PULL=0 while [[ $# -gt 0 ]]; do case "$1" in --model) MODEL="$2" shift 2 ;; --skip-model-pull) SKIP_MODEL_PULL=1 shift ;; *) echo "Unknown argument: $1" exit 2 ;; esac done need_cmd() { command -v "$1" >/dev/null 2>&1 || { echo "Missing command: $1" exit 1 } } echo "==> Installing base packages" sudo apt update sudo apt install -y curl git echo "==> Installing Ollama if needed" if ! command -v ollama >/dev/null 2>&1; then curl -fsSL https://ollama.com/install.sh | sh fi sudo systemctl enable ollama sudo systemctl start ollama echo "==> Checking Ollama API" curl -fsS "http://127.0.0.1:11434/api/tags" >/dev/null || true echo "==> Installing OpenClaude CLI" if ! command -v openclaude >/dev/null 2>&1; then need_cmd npm npm install -g @gitlawb/openclaude fi if [[ "$SKIP_MODEL_PULL" -eq 0 ]]; then echo "==> Pulling model: $MODEL" ollama pull "$MODEL" else echo "==> Skipping model pull (--skip-model-pull)" fi cat <