- 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>
33 lines
1.3 KiB
Bash
Executable File
33 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Generates random values for the secrets docker-compose.yml requires
|
|
# (LITELLM_MASTER_KEY, LITELLM_SALT_KEY, LITELLM_DB_PASSWORD, UI_PASSWORD,
|
|
# PGVECTOR_DB_PASSWORD, LITELLM_PGVECTOR_API_KEY) and writes them into .env —
|
|
# creating it from .env.example first if it doesn't exist.
|
|
#
|
|
# ponytail: only fills in blank values, never overwrites ones you've already
|
|
# set — safe to re-run. Re-running won't touch LITELLM_SALT_KEY once it's
|
|
# set; changing it after first run makes existing encrypted data unreadable.
|
|
set -euo pipefail
|
|
cd "$(dirname "$0")/.."
|
|
|
|
[ -f .env ] || cp .env.example .env
|
|
|
|
set_if_blank() {
|
|
local key="$1" value="$2"
|
|
if grep -qE "^${key}=.*[^[:space:]]" .env; then
|
|
echo "${key}: already set, skipping."
|
|
else
|
|
sed -i "s|^${key}=.*|${key}=${value}|" .env
|
|
echo "${key}: generated."
|
|
fi
|
|
}
|
|
|
|
set_if_blank LITELLM_MASTER_KEY "$(openssl rand -hex 32)"
|
|
set_if_blank LITELLM_SALT_KEY "$(openssl rand -hex 32)"
|
|
set_if_blank LITELLM_DB_PASSWORD "$(openssl rand -hex 32)"
|
|
set_if_blank UI_PASSWORD "$(openssl rand -hex 16)"
|
|
set_if_blank PGVECTOR_DB_PASSWORD "$(openssl rand -hex 32)"
|
|
set_if_blank LITELLM_PGVECTOR_API_KEY "$(openssl rand -hex 32)"
|
|
|
|
echo "Done. Review .env, then set OPENWEBUI_LITELLM_KEY, LITELLM_PGVECTOR_EMBEDDING_KEY, and SEARXNG_LAN_IP per docs/proxy-key-onboarding.md and docs/memory-knowledgebase.md."
|