clawdie-iso/build.cfg

105 lines
4.1 KiB
INI
Raw Normal View History

#!/bin/sh
# clawdie-iso build configuration
# Sourced by build.sh — edit before building
FREEBSD_VERSION="15.0-RELEASE"
FREEBSD_ARCH="amd64"
FREEBSD_RELEASE_SERIES="${FREEBSD_VERSION%-RELEASE}"
FREEBSD_ISO_BASE_URL="https://download.freebsd.org/releases/${FREEBSD_ARCH}/${FREEBSD_ARCH}/ISO-IMAGES/${FREEBSD_RELEASE_SERIES}"
FREEBSD_MEMSTICK_URL="${FREEBSD_ISO_BASE_URL}/FreeBSD-${FREEBSD_VERSION}-${FREEBSD_ARCH}-memstick.img"
FREEBSD_MEMSTICK_SHA256_URL="${FREEBSD_ISO_BASE_URL}/CHECKSUM.SHA256-FreeBSD-${FREEBSD_VERSION}-${FREEBSD_ARCH}"
2026-05-12 17:10:54 +02:00
# ISO version metadata.
# ISO version is independent from the bundled Clawdie-AI runtime version.
ISO_VERSION="0.1.0"
BUILD_CHANNEL="${BUILD_CHANNEL:-dev}" # dev | release
# Output image
# User-facing date format: DD.mmm.YYYY (per AGENTS.md convention)
#
# USB KEY SIZING GUIDE:
2026-05-13 12:19:47 +02:00
# 32GB USB → IMAGE_SIZE="28G" (fits typical 29.5GiB sticks)
# 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)
#
2026-05-13 12:19:47 +02:00
# Minimum: 32GB USB (with IMAGE_SIZE=28G)
# Recommended: 64GB+ USB for comfortable offline setup
#
2026-05-13 12:19:47 +02:00
IMAGE_SIZE="28G"
# build.sh overrides IMAGE_NAME with the "unified" prefix; do not edit here.
# Clawdie-AI ref to bundle from Codeberg.
# Use main for install validation so ISO firstboot exercises the current
# post-install setup/token flow. Use --clawdie-version X.Y.Z for release builds.
CLAWDIE_VERSION="main"
CLAWDIE_REF="${CLAWDIE_REF:-main}"
# Default installer choices (can be overridden by setup.txt on the writable USB config partition)
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" # vps | 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/model. Leave blank for post-install setup and Clawdie-AI profile defaults.
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. Leave base URL blank to let Clawdie-AI choose OpenRouter when
# OPENROUTER_API_KEY is present, otherwise local llama-server.
EMBED_BASE_URL="${EMBED_BASE_URL:-}"
EMBED_MODEL="${EMBED_MODEL:-}"
EMBED_API_KEY="${EMBED_API_KEY:-}"
EMBED_DIMENSIONS="${EMBED_DIMENSIONS:-1024}"
# 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_ADMIN_IDS="${TELEGRAM_ADMIN_IDS:-}"
FEATURE_TELEGRAM="${FEATURE_TELEGRAM:-}"
# Tailscale (recommended for secure remote access)
FEATURE_TAILSCALE="${FEATURE_TAILSCALE:-YES}"
TAILSCALE_AUTHKEY="${TAILSCALE_AUTHKEY:-}"
# Code hosting (local git + Forgejo by default)
CODE_HOSTING_MODE="${CODE_HOSTING_MODE:-git}"
FEATURE_GIT="${FEATURE_GIT:-YES}"
FEATURE_GITEA="${FEATURE_GITEA:-NO}"
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:-}"