125 lines
6.0 KiB
Bash
125 lines
6.0 KiB
Bash
# Copy to /root/mike-ai-install.env, edit, chmod 600, then run:
|
|
# sudo ./install.sh --config /root/mike-ai-install.env
|
|
|
|
AI_HOSTNAME=ki-host
|
|
ADMIN_USER=mike
|
|
MODEL_DIR=/data/models
|
|
# Installing a new NVIDIA driver can require one reboot. In that case this
|
|
# installer exits with code 20 (NVIDIA) or 21 (stable NIC rename); rerun the
|
|
# same command after reboot.
|
|
INSTALL_NVIDIA_DRIVER=true
|
|
# Optional: auf einen im offiziellen NVIDIA-Repository vorhandenen Hauptzweig
|
|
# festlegen (z. B. 610). Leer lassen, um dem aktuellen stabilen Zweig zu folgen.
|
|
NVIDIA_DRIVER_BRANCH=
|
|
NVIDIA_MIN_DRIVER_MAJOR=570
|
|
# Stable UUID order: CUDA0 = RTX 5080, CUDA1 = RTX 3060. Positional host
|
|
# indices are intentionally avoided because nvidia-smi currently enumerates
|
|
# the cards in the opposite order.
|
|
TEXT_GPU_DEVICES=GPU-8ad38c6c-5a01-9d8e-1dfa-ed662ad78fbe
|
|
SECONDARY_GPU_DEVICES=GPU-4834d9d7-5b61-3004-1fb3-4ae49d482d4b
|
|
IMAGE_GPU_DEVICES=GPU-8ad38c6c-5a01-9d8e-1dfa-ed662ad78fbe
|
|
# FLUX.2 Klein 9B is gated. Accept both BFL model licenses first, then store
|
|
# the Hugging Face token in this root-readable file (never in this config).
|
|
HF_TOKEN_FILE=/root/.cache/huggingface/token
|
|
FLUX_COMPONENT_DIR=/data/models/FLUX.2-klein-9B-components
|
|
FLUX_TRANSFORMER_DIR=/data/models/FLUX.2-klein-9B-fp8
|
|
|
|
# Headless remote reachability. Firmware power-loss recovery is configured
|
|
# separately once at the physical machine.
|
|
ENABLE_HARDWARE_WATCHDOG=true
|
|
# Bind the physical NIC to a stable name independent of its PCIe slot path.
|
|
PRIMARY_NETWORK_MAC=58:11:22:BB:AD:0C
|
|
PERSISTENT_NETWORK_NAME=lan0
|
|
PRIMARY_NETWORK_INTERFACE=lan0
|
|
WAKE_ON_LAN_INTERFACE=lan0
|
|
SSH_KEY_ONLY=true
|
|
|
|
# WireGuard terminates in a dedicated Docker gateway. The Fritzbox export is a
|
|
# root-only deployment secret and must never be committed.
|
|
WIREGUARD_MODE=container
|
|
WIREGUARD_CONFIG_FILE=/etc/mike-ai/wireguard/fritz-athena.conf
|
|
WIREGUARD_ENABLE=false
|
|
# Stable Fritzbox/WireGuard address used by direct VPN clients such as Pi or Hermes.
|
|
VPN_SERVICE_IP=192.168.1.212
|
|
# The values below are only used by the legacy host-terminated mode. The
|
|
# default container mode takes address, peer and routes from the Fritzbox file.
|
|
AI_BIND_ADDRESS=10.77.0.2
|
|
WG_INTERFACE=wg0
|
|
WG_ADDRESS=10.77.0.2/32
|
|
WG_HOME_SUBNET=192.168.1.0/24
|
|
WG_PEER_PUBLIC_KEY=REPLACE_WITH_HOME_WIREGUARD_PUBLIC_KEY
|
|
WG_PEER_ENDPOINT=home.example.net:51820
|
|
WG_PEER_PRESHARED_KEY_FILE=
|
|
WG_DNS=192.168.1.1
|
|
WG_ROUTE_AI_INTERNET=true
|
|
|
|
# Exact model artifacts. Never put access tokens in these URLs.
|
|
FAST_MODEL_FILE=qwen-mix/Qwen3.8-27B-IQ4-MIX.gguf
|
|
FAST_MODEL_URL=https://huggingface.co/vmarcelo/Qwen3.8-27B-MIX_GGUF/resolve/main/Qwen3.8-27B-IQ4-MIX.gguf
|
|
FAST_MODEL_SHA256=54879ae8738d5938f46cb3b8cbf16bf42b8c85b7d68d7c73f062b612ec183e36
|
|
MEDIUM_MODEL_FILE=qwen-pure/qwen3.8-27b-IQ4_XS-pure.gguf
|
|
MEDIUM_MODEL_URL=https://huggingface.co/jpetrina/Qwen3.8-27B-IQ4_XS-pure-GGUF/resolve/main/qwen3.8-27b-IQ4_XS-pure.gguf
|
|
MEDIUM_MODEL_SHA256=ea5a3c45d407f9b9e5d2c0d647f0ea600f486f6b86b92b56d0823ba073dae675
|
|
BETA1_MODEL_FILE=qwen3.8-27b-gsq-rco-iq3s/Qwen3.8-27B-GSQ-RCO-IQ3_S-mtp.gguf
|
|
BETA1_MODEL_URL=https://huggingface.co/ISTA-DASLab/Qwen3.8-27B-GSQ-RCO-GGUF/resolve/main/Qwen3.8-27B-GSQ-RCO-IQ3_S-mtp.gguf
|
|
BETA1_MODEL_SHA256=58fd826723939933dc86f45b7fe04545cbc2de1c70f6fe2cdd3858c87a98c12f
|
|
LARGE_MODEL_FILE=qwen-pure/qwen3.8-27b-IQ4_XS-pure.gguf
|
|
LARGE_MODEL_URL=https://huggingface.co/jpetrina/Qwen3.8-27B-IQ4_XS-pure-GGUF/resolve/main/qwen3.8-27b-IQ4_XS-pure.gguf
|
|
LARGE_MODEL_SHA256=ea5a3c45d407f9b9e5d2c0d647f0ea600f486f6b86b92b56d0823ba073dae675
|
|
ULTRA_MODEL_FILE=qwen-pure/qwen3.8-27b-IQ4_XS-pure.gguf
|
|
ULTRA_MODEL_URL=https://huggingface.co/jpetrina/Qwen3.8-27B-IQ4_XS-pure-GGUF/resolve/main/qwen3.8-27b-IQ4_XS-pure.gguf
|
|
ULTRA_MODEL_SHA256=ea5a3c45d407f9b9e5d2c0d647f0ea600f486f6b86b92b56d0823ba073dae675
|
|
UNCENSORED_MODEL_FILE=qwen3.8-27b-abliterated/Qwen3.8-27B-ABLITERATED-Q4_K_M.gguf
|
|
UNCENSORED_MODEL_URL=https://huggingface.co/Blackfrost-AI/Qwen3.8-27B-ABLITERATED-GGUF/resolve/main/Qwen3.8-27B-ABLITERATED-Q4_K_M.gguf
|
|
UNCENSORED_MODEL_SHA256=5d53637a59cfcd3a4d8354e254ffd44943e5a693da2405a3e228c62962355509
|
|
UNCENSORED_PROJECTOR_FILE=qwen3.8-27b-abliterated/mmproj-Qwen3.8-27B-ABLITERATED-F16.gguf
|
|
UNCENSORED_PROJECTOR_URL=https://huggingface.co/Blackfrost-AI/Qwen3.8-27B-ABLITERATED-GGUF/resolve/main/mmproj-Qwen3.8-27B-ABLITERATED-F16.gguf
|
|
UNCENSORED_PROJECTOR_SHA256=2284099ce864f1023d721e6ef5eaef32bb56abdbc1dc561c6d91300f12ef2e4b
|
|
VISION_PROJECTOR_FILE=qwen/mmproj-BF16.gguf
|
|
VISION_PROJECTOR_URL=https://huggingface.co/unsloth/Qwen3.8-27B-GGUF/resolve/main/mmproj-BF16.gguf
|
|
VISION_PROJECTOR_SHA256=83ee4f4f205fa514161778c41df1ea14144faa0f713510893b63c2395f5c2d53
|
|
DEFAULT_REASONING_EFFORT=off
|
|
# All standard profiles use the MTP tensor embedded in their GGUF. A separate
|
|
# draft-model artifact is neither downloaded nor passed to llama-server.
|
|
|
|
FAST_CONTEXT=76800
|
|
FAST_BATCH_SIZE=64
|
|
FAST_UBATCH_SIZE=32
|
|
MEDIUM_CONTEXT=160000
|
|
MEDIUM_BATCH_SIZE=2048
|
|
MEDIUM_UBATCH_SIZE=128
|
|
MEDIUM_TENSOR_SPLIT=85,15
|
|
BETA1_CONTEXT=112000
|
|
BETA1_BATCH_SIZE=2048
|
|
BETA1_UBATCH_SIZE=128
|
|
BETA1_GPU_DEVICES=GPU-8ad38c6c-5a01-9d8e-1dfa-ed662ad78fbe,GPU-4834d9d7-5b61-3004-1fb3-4ae49d482d4b
|
|
BETA1_PARALLEL_SLOTS=1
|
|
LARGE_CONTEXT=192000
|
|
LARGE_BATCH_SIZE=2048
|
|
LARGE_UBATCH_SIZE=128
|
|
LARGE_TENSOR_SPLIT=86,14
|
|
ULTRA_CONTEXT=262144
|
|
ULTRA_BATCH_SIZE=2048
|
|
ULTRA_UBATCH_SIZE=128
|
|
ULTRA_TENSOR_SPLIT=80,20
|
|
UNCENSORED_CONTEXT=80000
|
|
UNCENSORED_BATCH_SIZE=2048
|
|
UNCENSORED_UBATCH_SIZE=128
|
|
UNCENSORED_TENSOR_SPLIT=90,10
|
|
UNCENSORED_MTP_MAX=2
|
|
LLAMA_THREADS=6
|
|
LLAMA_THREADS_BATCH=6
|
|
FAST_PARALLEL_SLOTS=1
|
|
LLAMA_CACHE_RAM_MIB=32768
|
|
MEDIUM_PARALLEL_SLOTS=1
|
|
LARGE_PARALLEL_SLOTS=1
|
|
ULTRA_PARALLEL_SLOTS=1
|
|
UNCENSORED_PARALLEL_SLOTS=1
|
|
PIPER_TTS_VERSION=1.6.0
|
|
PIPER_VOICE=de_DE-thorsten-high
|
|
QWEN3_TTS_IMAGE=ghcr.io/malaiwah/qwen3-tts-server:latest@sha256:b363a01d08b1bbecbfc3ca6f585368fae2cfdc591f9ecca6643738369f9a9d98
|
|
QWEN3_TTS_CACHE_DIR=/data/models/qwen3-tts-cache
|
|
QWEN3_TTS_VOICES_DIR=/data/models/qwen3-tts-voices
|
|
# Stable UUID of Athena's RTX 3060. Do not use a positional GPU index here.
|
|
QWEN3_TTS_GPU_DEVICE=GPU-4834d9d7-5b61-3004-1fb3-4ae49d482d4b
|