Expand .env.example with ports, AI, Usenet, WireGuard, demo logins, and bootstrap flags. One script creates dirs, downloads the model, starts compose, heals gluetun, and configures SABnzbd from the same file.
167 lines
5.6 KiB
Text
167 lines
5.6 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
|
|
################################################################################
|
|
|
|
# =============================================================================
|
|
# 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)
|
|
# =============================================================================
|
|
# compose profiles to enable: empty, or coding
|
|
COMPOSE_PROFILES=
|
|
# After containers are up, run configure-usenet.sh
|
|
CONFIGURE_USENET=true
|
|
# Recreate gluetun/qbittorrent if unhealthy after start
|
|
HEAL_GLUETUN=true
|
|
# Pull images before up
|
|
COMPOSE_PULL=true
|