Profiles select CPU vs Vulkan and Bonsai-27B vs Qwen3.5-9B Abliterated Q4_K_M. OpenHands is no longer optional; compose deploys every service. download-models.sh fetches both GGUF families as the profile requests.
172 lines
5.9 KiB
Text
172 lines
5.9 KiB
Text
################################################################################
|
|
# arr-stack — single config file for a tech demo / fresh host
|
|
# Copy to .env and edit. Compose + bootstrap scripts read this file.
|
|
#
|
|
# Demo credentials (all local UIs): DEMO_USER / DEMO_PASS (default tim / asdfasdf)
|
|
# Security is intentionally weak for demos. Change before any real exposure.
|
|
#
|
|
# Fresh rebuild checklist:
|
|
# 1. Put a valid wireguard/wg0.conf (Endpoint IP + # EndpointHost = hostname)
|
|
# 2. cp .env.example .env && edit paths / host IP / usenet keys
|
|
# 3. ./scripts/bootstrap-stack.sh
|
|
################################################################################
|
|
|
|
# =============================================================================
|
|
# Hardware profile — apply with: ./scripts/apply-profile.sh mini|mid|gaming
|
|
# mini = Beelink-class (CPU, Ternary-Bonsai-27B)
|
|
# mid = 8GB AMD GPU / 16GB RAM (Vulkan, Qwen3.5-9B Abliterated Q4_K_M)
|
|
# gaming = 16GB AMD GPU / 64GB RAM (Vulkan, Ternary-Bonsai-27B + Qwen download)
|
|
# Full stack always deploys (no compose profiles to opt in).
|
|
# =============================================================================
|
|
STACK_PROFILE=mini
|
|
|
|
# =============================================================================
|
|
# Demo mode & shared login
|
|
# =============================================================================
|
|
DEMO_MODE=true
|
|
DEMO_USER=tim
|
|
DEMO_PASS=asdfasdf
|
|
# Used as OpenAI-compatible key for Bonsai / OpenHands / Open WebUI connections
|
|
OPENAI_API_KEY=sk-local-bonsai
|
|
|
|
# =============================================================================
|
|
# Host identity & paths
|
|
# =============================================================================
|
|
PUID=1000
|
|
PGID=1000
|
|
TZ=America/Los_Angeles
|
|
|
|
# Production-style (server):
|
|
# CONFIG_DIR=/opt/stack/config
|
|
# DATA_DIR=/storage
|
|
# BONSAI_MODELS_DIR=/opt/stack/models/bonsai
|
|
# AI_WORKSPACE_DIR=/opt/stack/workspace
|
|
# Laptop / relative demo:
|
|
CONFIG_DIR=./config
|
|
DATA_DIR=./data
|
|
BONSAI_MODELS_DIR=./models/bonsai
|
|
AI_WORKSPACE_DIR=./workspace
|
|
|
|
# LAN used by gluetun FIREWALL_OUTBOUND_SUBNETS (qBittorrent WebUI from LAN)
|
|
LAN_SUBNET=192.168.8.0/24
|
|
# Public hostname/IP other PCs use to open UIs (landing page, Forgejo ROOT_URL, …)
|
|
STACK_HOST=192.168.8.123
|
|
|
|
# =============================================================================
|
|
# Published ports (host → service)
|
|
# =============================================================================
|
|
LANDING_PORT=80
|
|
QB_WEBUI_PORT=8080
|
|
JELLYFIN_PORT=8096
|
|
SONARR_PORT=8989
|
|
RADARR_PORT=7878
|
|
LIDARR_PORT=8686
|
|
BAZARR_PORT=6767
|
|
PROWLARR_PORT=9696
|
|
SABNZBD_PORT=8085
|
|
OPEN_WEBUI_PORT=3000
|
|
BONSAI_PORT=8081
|
|
OPENHANDS_PORT=3001
|
|
FORGEJO_HTTP_PORT=3002
|
|
FORGEJO_SSH_PORT=2222
|
|
SEARXNG_PORT=8888
|
|
|
|
# =============================================================================
|
|
# WireGuard / gluetun
|
|
# =============================================================================
|
|
# Peer hostname for gluetun-endpoint-watch (must match provider; dig when unhealthy)
|
|
WIREGUARD_ENDPOINT_HOST=las-183-wg.whiskergalaxy.com
|
|
WIREGUARD_ENDPOINT_PORT=443
|
|
# Path to conf mounted into gluetun (create before first up)
|
|
WIREGUARD_CONF=./wireguard/wg0.conf
|
|
|
|
# =============================================================================
|
|
# Local AI — Ternary-Bonsai-27B
|
|
# =============================================================================
|
|
BONSAI_MODEL_PATH=/models/Ternary-Bonsai-27B-Q2_0.gguf
|
|
BONSAI_HF_REPO=prism-ml/Ternary-Bonsai-27B-gguf
|
|
BONSAI_MAIN_FILE=Ternary-Bonsai-27B-Q2_0.gguf
|
|
# Download model during bootstrap-stack.sh
|
|
DOWNLOAD_MODEL=true
|
|
DOWNLOAD_VISION=true
|
|
DOWNLOAD_DRAFTER=false
|
|
|
|
# Inference: vulkan on AMD iGPU; cpu for safe fallback
|
|
BONSAI_BACKEND=vulkan
|
|
BONSAI_NGL=99
|
|
BONSAI_CTX=16384
|
|
BONSAI_KV4=0
|
|
BONSAI_THREADS=12
|
|
BONSAI_TEMP=0.7
|
|
BONSAI_TOP_P=0.95
|
|
BONSAI_TOP_K=20
|
|
BONSAI_EXTRA_ARGS=
|
|
|
|
# Open WebUI
|
|
WEBUI_AUTH=true
|
|
OPENWEBUI_DEFAULT_MODEL=openai/Ternary-Bonsai-27B-Q2_0.gguf
|
|
RAG_EMBEDDING_ENGINE=
|
|
RAG_CHUNK_SIZE=1000
|
|
RAG_CHUNK_OVERLAP=100
|
|
|
|
# SearXNG
|
|
SEARXNG_SECRET=demo-searxng-secret-change-me
|
|
|
|
# OpenHands (compose profile: coding)
|
|
OPENHANDS_MODEL=openai/Ternary-Bonsai-27B-Q2_0.gguf
|
|
# true = also start openhands in bootstrap
|
|
START_OPENHANDS=false
|
|
|
|
# =============================================================================
|
|
# Forgejo
|
|
# =============================================================================
|
|
FORGEJO_DOMAIN=${STACK_HOST}
|
|
FORGEJO_ROOT_URL=http://${STACK_HOST}:3002/
|
|
FORGEJO_DISABLE_REGISTRATION=false
|
|
# First-run admin (set after install or via bootstrap when API allows)
|
|
FORGEJO_ADMIN_USER=${DEMO_USER}
|
|
FORGEJO_ADMIN_PASS=${DEMO_PASS}
|
|
FORGEJO_ADMIN_EMAIL=tim@stack.local
|
|
|
|
# Git remote used by server /opt/stack (see stack_deploy_method: git)
|
|
STACK_GIT_REPO=ssh://git@127.0.0.1:2222/tim/stack.git
|
|
STACK_GIT_BRANCH=main
|
|
|
|
# =============================================================================
|
|
# Usenet / NZB (also read by scripts/configure-usenet.sh)
|
|
# Prefer these names; legacy aliases still work (see configure-usenet.sh)
|
|
# =============================================================================
|
|
# NZBgeek indexer (Prowlarr)
|
|
NZBGEEKUSERNAME=
|
|
NZBGEEKEMAIL=
|
|
NZBGEEKAPI=https://api.nzbgeek.info/
|
|
NZBKEEPKEY=
|
|
# aliases: NZBGEEK_API_KEY
|
|
|
|
# Newshosting
|
|
NEWSHOSTINGAPI=news.newshosting.com
|
|
NEWSHOSTINGSSLPORT=563
|
|
NEWSHOSTINGUSER=
|
|
HNEWSHOSTINGPASS=
|
|
NEWSHOSTINGCONNECTIONS=20
|
|
|
|
# Tweaknews
|
|
TWEAKNEWSAPI=news.tweaknews.eu
|
|
TWEAKNEWSSSLPORT=563
|
|
TWEAKNEWSLOGIN=
|
|
TWEAKNEWSPASSWORD=
|
|
TWEAKNEWSCONNECTIONS=40
|
|
|
|
# =============================================================================
|
|
# FlareSolverr
|
|
# =============================================================================
|
|
FLARESOLVERR_LOG_LEVEL=info
|
|
FLARESOLVERR_CAPTCHA_SOLVER=none
|
|
|
|
# =============================================================================
|
|
# Bootstrap behaviour (scripts/bootstrap-stack.sh)
|
|
# =============================================================================
|
|
# Full stack always starts — no COMPOSE_PROFILES required
|
|
CONFIGURE_USENET=true
|
|
HEAL_GLUETUN=true
|
|
COMPOSE_PULL=true
|