Files
LLM-Server/.env.example
T
haylanandClaude-Bot f508f5670a feat(litellm): wire SearXNG search, pgvector knowledgebase, and memory ingestion
- search_tools block in litellm-config.yaml (SearXNG as a first-class
  search_provider, standalone /v1/search endpoint, not a model tool) plus
  extra_hosts on the litellm service so it can resolve search.home.
- New embedding-server (nomic-embed-text-v1.5 on a second llama.cpp
  instance), pgvector-db, and litellm-pgvector services — LiteLLM's native
  knowledgebase feature has no Qdrant backend, so this is the only
  self-hosted path (docs/research/litellm-knowledgebase.md).
- vector_store_registry + local-embedding model entry in
  litellm-config.yaml, wiring it together.
- scripts/ingest-memory.sh to load data/memory.md and
  data/claude-legacy-memory.md into the knowledgebase.
- docs/memory-knowledgebase.md documenting the whole setup; data/
  gitignored (personal memory content, not meant to be committed).
- New .env vars (SEARXNG_LAN_IP, PGVECTOR_DB_PASSWORD,
  LITELLM_PGVECTOR_API_KEY, LITELLM_PGVECTOR_EMBEDDING_KEY,
  EMBEDDING_MODEL_FILE) and generate-secrets.sh support for the
  auto-generatable ones.

Resolves #22 and #23 (wayfinder map #21). Not yet verified on real
hardware — see #24.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-02 21:38:16 +02:00

55 lines
2.3 KiB
Bash

# Copy to .env and adjust. All values below are defaults baked into
# docker-compose.yml — only uncomment/change what you actually want to override.
# --- llama.cpp / model ---
LLAMA_MODEL_FILE=Qwen3.8-27B-UD-Q4_K_XL.gguf
LLAMA_GPU_LAYERS=999
# 65536 (64K) fits comfortably in 32GB VRAM alongside the model weights.
# Raise toward 131072 if you need more context; see docs/research/qwen3.8-27b-quant.md
# for the VRAM math at larger context sizes.
LLAMA_CTX_SIZE=65536
# --- Open WebUI ---
WEBUI_PORT=8008
# Required — create an "openwebui" virtual key in LiteLLM's Admin UI first
# (see docs/proxy-key-onboarding.md), then paste it here.
OPENWEBUI_LITELLM_KEY=
# --- Lazytainer ---
# Seconds of inactivity before llama-server is stopped. 900 = 15 min.
LAZYTAINER_INACTIVE_TIMEOUT=900
# --- Embedding model (knowledgebase, see docs/memory-knowledgebase.md) ---
EMBEDDING_MODEL_FILE=nomic-embed-text-v1.5.Q8_0.gguf
# --- SearXNG web search (see docs/research/litellm-searxng-search.md) ---
# Required — the litellm container can't resolve search.home's LAN mDNS
# name on its own; this becomes an extra_hosts entry. Use a static
# DHCP-reserved IP so it doesn't drift.
SEARXNG_LAN_IP=
# --- LiteLLM proxy (see docs/proxy-key-onboarding.md, docs/network-access.md) ---
LITELLM_PORT=4000
# Required — generate real random values before first run, e.g. `openssl rand -hex 32`.
# LITELLM_SALT_KEY encrypts stored data; do not change it after the first run
# (existing encrypted data becomes unreadable if you do).
# Required — generate a real random value before first run, e.g. `openssl rand -hex 32`.
LITELLM_MASTER_KEY=
LITELLM_SALT_KEY=
LITELLM_DB_PASSWORD=
# Admin UI login (https://<proxy>/ui). Without these, LiteLLM falls back to
# username "admin" / password = LITELLM_MASTER_KEY — set these instead so the
# master key never has to be typed into the browser.
UI_USERNAME=admin
UI_PASSWORD=
# --- Knowledgebase (pgvector, see docs/memory-knowledgebase.md) ---
# Required — random values, e.g. `openssl rand -hex 32`.
PGVECTOR_DB_PASSWORD=
# Auth key litellm-pgvector requires on its own API (its SERVER_API_KEY).
LITELLM_PGVECTOR_API_KEY=
# A virtual key litellm-pgvector uses to call back into litellm for
# embeddings — create it in the Admin UI like any other workload key
# (see docs/proxy-key-onboarding.md), name it "litellm-pgvector".
LITELLM_PGVECTOR_EMBEDDING_KEY=