87 lines
3.2 KiB
Bash
87 lines
3.2 KiB
Bash
#!/bin/sh
|
|
# clawdie-iso build configuration
|
|
# Sourced by build.sh — edit before building
|
|
|
|
FREEBSD_VERSION="15.0-RELEASE"
|
|
FREEBSD_ARCH="amd64"
|
|
FREEBSD_MEMSTICK_URL="https://download.freebsd.org/releases/ISO-IMAGES/15.0/FreeBSD-${FREEBSD_VERSION}-${FREEBSD_ARCH}-memstick.img"
|
|
FREEBSD_MEMSTICK_SHA256_URL="${FREEBSD_MEMSTICK_URL}.SHA256"
|
|
|
|
# Output image
|
|
# User-facing date format: DD.mmm.YYYY (per AGENTS.md convention)
|
|
#
|
|
# USB KEY SIZING GUIDE:
|
|
# 64GB USB → IMAGE_SIZE="50G" (leaves ~14GB spare for user data/cache)
|
|
# 128GB USB → IMAGE_SIZE="100G" (leaves ~28GB spare)
|
|
# 256GB USB → IMAGE_SIZE="200G" (leaves ~56GB spare)
|
|
#
|
|
# Minimum: 64GB USB (with IMAGE_SIZE=50G)
|
|
# Recommended: 128GB USB (with IMAGE_SIZE=100G) for comfortable offline setup
|
|
#
|
|
IMAGE_SIZE="50G"
|
|
IMAGE_NAME="clawdie-iso-$(date +%d.%b.%Y | tr 'A-Z' 'a-z').img"
|
|
|
|
# Clawdie-AI release to bundle (fetched from Codeberg)
|
|
CLAWDIE_VERSION="1.0.2"
|
|
CLAWDIE_TARBALL_URL="https://codeberg.org/Clawdie/Clawdie-AI/archive/v${CLAWDIE_VERSION}.tar.gz"
|
|
|
|
# Default installer choices (can be overridden by clawdie.conf on USB)
|
|
DEFAULT_PKG_BRANCH="latest" # latest or quarterly
|
|
DEFAULT_DESKTOP="lumina" # lumina only (sole supported DE)
|
|
|
|
# GPU driver variant (set at build time via --gpu-driver flag)
|
|
# intel | amd | nvidia-590 | nvidia-470 | nvidia-390 | vesa | "" (auto-detect)
|
|
GPU_DRIVER=""
|
|
|
|
# Deploy target
|
|
TARGET="baremetal" # cloud | baremetal
|
|
|
|
# Cloud pre-bake vars (supplied via --assistant-name, --domain, --tz flags,
|
|
# or via environment variables). Env vars take precedence.
|
|
ASSISTANT_NAME="${ASSISTANT_NAME:-}"
|
|
AGENT_DOMAIN="${AGENT_DOMAIN:-}"
|
|
AGENT_GENDER="${AGENT_GENDER:-}"
|
|
TZ="${TZ:-}"
|
|
|
|
# LLM provider (default: zai with glm-5)
|
|
PI_TUI_PROVIDER="${PI_TUI_PROVIDER:-}"
|
|
PI_TUI_MODEL="${PI_TUI_MODEL:-}"
|
|
|
|
# API keys (pre-baked for cloud, deferred to web UI for baremetal)
|
|
ZAI_API_KEY="${ZAI_API_KEY:-}"
|
|
OPENROUTER_API_KEY="${OPENROUTER_API_KEY:-}"
|
|
ANTHROPIC_API_KEY="${ANTHROPIC_API_KEY:-}"
|
|
|
|
# Embeddings (default: OpenRouter with bge-m3)
|
|
EMBED_BASE_URL="${EMBED_BASE_URL:-}"
|
|
EMBED_MODEL="${EMBED_MODEL:-}"
|
|
|
|
# Local LLM runtime (optional)
|
|
# Choices: none | ollama | llama_cpp
|
|
LOCAL_LLM_PROVIDER="${LOCAL_LLM_PROVIDER:-none}"
|
|
FEATURE_OLLAMA="${FEATURE_OLLAMA:-NO}"
|
|
FEATURE_LLAMA_CPP="${FEATURE_LLAMA_CPP:-NO}"
|
|
FEATURE_OLLAMA_HPP="${FEATURE_OLLAMA_HPP:-NO}"
|
|
OLLAMA_RAM_ESTIMATE="${OLLAMA_RAM_ESTIMATE:-8-16 GB}"
|
|
OLLAMA_DISK_ESTIMATE="${OLLAMA_DISK_ESTIMATE:-4-20 GB per model}"
|
|
LLAMA_CPP_RAM_ESTIMATE="${LLAMA_CPP_RAM_ESTIMATE:-8-16 GB}"
|
|
LLAMA_CPP_DISK_ESTIMATE="${LLAMA_CPP_DISK_ESTIMATE:-4-20 GB per model}"
|
|
USB_LLM_MODELS_PATH="${USB_LLM_MODELS_PATH:-/mnt/media/llm-models}"
|
|
|
|
# Telegram (pre-baked for cloud, deferred for baremetal)
|
|
TELEGRAM_BOT_TOKEN="${TELEGRAM_BOT_TOKEN:-}"
|
|
TELEGRAM_CHAT_ID="${TELEGRAM_CHAT_ID:-}"
|
|
FEATURE_TELEGRAM="${FEATURE_TELEGRAM:-}"
|
|
|
|
# Code hosting (local git + Forgejo by default)
|
|
CODE_HOSTING_MODE="${CODE_HOSTING_MODE:-gitea}"
|
|
FEATURE_GIT="${FEATURE_GIT:-YES}"
|
|
FEATURE_GITEA="${FEATURE_GITEA:-YES}"
|
|
FORGEJO_DISK_ESTIMATE="${FORGEJO_DISK_ESTIMATE:-1.2 GB}"
|
|
|
|
# SSH public key (optional, supplied via --ssh-key flag)
|
|
SSH_PUBLIC_KEY="${SSH_PUBLIC_KEY:-}"
|
|
|
|
# System passwords (optional, supplied via flags)
|
|
ROOT_PASSWORD="${ROOT_PASSWORD:-}"
|
|
CLAWDIE_USER_PASSWORD="${CLAWDIE_USER_PASSWORD:-}"
|