stack/.env.example

182 lines
6.3 KiB
Text
Raw Permalink Normal View History

################################################################################
# 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
LANDING_HTTPS_PORT=443
CADDY_EMAIL=admin@devopshomelab.com
PUBLIC_DOMAIN=devopshomelab.com
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
RUSTDESK_DOMAIN=rustdesk.devopshomelab.com
# =============================================================================
# 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 — model files under BONSAI_MODELS_DIR (both families can coexist)
# =============================================================================
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
BONSAI27_HF_REPO=prism-ml/Ternary-Bonsai-27B-gguf
BONSAI27_MAIN_FILE=Ternary-Bonsai-27B-Q2_0.gguf
QWEN_HF_REPO=mradermacher/Qwen3.5-9B-abliterated-v2-MAX-GGUF
QWEN_MAIN_FILE=Qwen3.5-9B-abliterated-v2-MAX.Q4_K_M.gguf
DOWNLOAD_MODEL=true
DOWNLOAD_BONSAI27=true
DOWNLOAD_QWEN=true
DOWNLOAD_VISION=true
DOWNLOAD_DRAFTER=false
# mini=cpu; mid/gaming=vulkan (overridden by apply-profile.sh)
BONSAI_BACKEND=cpu
BONSAI_NGL=0
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 (always deployed)
OPENHANDS_MODEL=openai/Ternary-Bonsai-27B-Q2_0.gguf
# =============================================================================
# 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