chore(devops): add LLM env vars to .env.example, docker-compose, docker-prep
This commit is contained in:
parent
e9f389a8b7
commit
6bff2d3e2e
@ -14,6 +14,16 @@ PLATFORM_SERVICE_URL=http://localhost:4003
|
||||
EXTRACTION_SERVICE_URL=http://localhost:4005
|
||||
MCP_SERVER_URL=http://localhost:4007
|
||||
|
||||
# LLM (@bytelyst/llm)
|
||||
LLM_PROVIDER=mock
|
||||
OPENAI_API_KEY=
|
||||
OPENAI_BASE_URL=
|
||||
AZURE_OPENAI_ENDPOINT=
|
||||
AZURE_OPENAI_API_KEY=
|
||||
LLM_DEFAULT_MODEL=gpt-4o-mini
|
||||
LLM_VISION_MODEL=gpt-4o
|
||||
LLM_EMBEDDING_MODEL=text-embedding-3-small
|
||||
|
||||
# Field-level encryption
|
||||
FIELD_ENCRYPT_KEY_PROVIDER=memory
|
||||
FIELD_ENCRYPT_KEY=
|
||||
|
||||
@ -24,6 +24,14 @@ services:
|
||||
- FEATURE_FLAGS_ENABLED=${FEATURE_FLAGS_ENABLED:-false}
|
||||
- FIELD_ENCRYPT_ENABLED=${FIELD_ENCRYPT_ENABLED:-false}
|
||||
- FIELD_ENCRYPT_KEY_PROVIDER=${FIELD_ENCRYPT_KEY_PROVIDER:-memory}
|
||||
- LLM_PROVIDER=${LLM_PROVIDER:-mock}
|
||||
- OPENAI_API_KEY=${OPENAI_API_KEY:-}
|
||||
- OPENAI_BASE_URL=${OPENAI_BASE_URL:-}
|
||||
- AZURE_OPENAI_ENDPOINT=${AZURE_OPENAI_ENDPOINT:-}
|
||||
- AZURE_OPENAI_API_KEY=${AZURE_OPENAI_API_KEY:-}
|
||||
- LLM_DEFAULT_MODEL=${LLM_DEFAULT_MODEL:-gpt-4o-mini}
|
||||
- LLM_VISION_MODEL=${LLM_VISION_MODEL:-gpt-4o}
|
||||
- LLM_EMBEDDING_MODEL=${LLM_EMBEDDING_MODEL:-text-embedding-3-small}
|
||||
restart: unless-stopped
|
||||
healthcheck:
|
||||
test: ["CMD", "wget", "--spider", "-q", "http://localhost:4016/health"]
|
||||
|
||||
91
scripts/docker-prep.sh
Executable file
91
scripts/docker-prep.sh
Executable file
@ -0,0 +1,91 @@
|
||||
#!/usr/bin/env bash
|
||||
# Pack @bytelyst/* tarballs from the sibling common-plat repo for
|
||||
# self-contained Docker builds that don't need the Gitea npm registry.
|
||||
#
|
||||
# Usage:
|
||||
# ./scripts/docker-prep.sh # pack tarballs + rewrite package.json
|
||||
# ./scripts/docker-prep.sh --restore # undo rewrite
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
REPO_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||||
COMMON_PLAT="${REPO_DIR}/../learning_ai_common_plat"
|
||||
|
||||
TARBALL_DIR="${REPO_DIR}/.docker-deps"
|
||||
|
||||
# ── Restore mode ───────────────────────────────────────────────────
|
||||
if [[ "${1:-}" == "--restore" ]]; then
|
||||
echo "Restoring original package.json files..."
|
||||
for bak in $(find "$REPO_DIR" -name "package.json.bak" -not -path "*/node_modules/*"); do
|
||||
mv "$bak" "${bak%.bak}"
|
||||
echo " Restored ${bak%.bak}"
|
||||
done
|
||||
rm -rf "$TARBALL_DIR"
|
||||
echo "Done."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# ── Pack mode ──────────────────────────────────────────────────────
|
||||
echo "=== docker-prep: packing @bytelyst/* tarballs ==="
|
||||
|
||||
rm -rf "$TARBALL_DIR"
|
||||
mkdir -p "$TARBALL_DIR"
|
||||
|
||||
# Build all packages first
|
||||
echo "Building @bytelyst/* packages..."
|
||||
(cd "$COMMON_PLAT" && pnpm build)
|
||||
|
||||
# Pack each package and build a mapping of name → tarball filename
|
||||
declare -A TARBALL_MAP
|
||||
for pkg_dir in "$COMMON_PLAT"/packages/*/; do
|
||||
pkg_name=$(node -p "require('${pkg_dir}package.json').name" 2>/dev/null || true)
|
||||
if [[ -z "$pkg_name" ]]; then continue; fi
|
||||
|
||||
echo " Packing $pkg_name..."
|
||||
tarball=$(cd "$pkg_dir" && pnpm pack --pack-destination "$TARBALL_DIR" 2>/dev/null | tail -1)
|
||||
filename=$(basename "$tarball")
|
||||
TARBALL_MAP["$pkg_name"]="$filename"
|
||||
echo " -> $filename"
|
||||
done
|
||||
|
||||
# ── Rewrite package.json files ─────────────────────────────────────
|
||||
echo ""
|
||||
echo "Rewriting package.json @bytelyst/* refs to .docker-deps/ tarballs..."
|
||||
|
||||
rewrite_package_json() {
|
||||
local pkg_file="$1"
|
||||
local rel_prefix="$2" # relative path from package.json dir to repo root
|
||||
|
||||
if [[ ! -f "$pkg_file" ]]; then return; fi
|
||||
|
||||
# Backup
|
||||
cp "$pkg_file" "${pkg_file}.bak"
|
||||
|
||||
local tmp="${pkg_file}.tmp"
|
||||
cp "$pkg_file" "$tmp"
|
||||
|
||||
for pkg_name in "${!TARBALL_MAP[@]}"; do
|
||||
local tarball="${TARBALL_MAP[$pkg_name]}"
|
||||
# Replace "^0.1.0" (or any semver) with "file:../.docker-deps/<tarball>"
|
||||
sed -i '' "s|\"${pkg_name}\": \"[^\"]*\"|\"${pkg_name}\": \"file:${rel_prefix}.docker-deps/${tarball}\"|g" "$tmp"
|
||||
done
|
||||
|
||||
mv "$tmp" "$pkg_file"
|
||||
echo " Rewrote $pkg_file"
|
||||
}
|
||||
|
||||
# Backend package.json
|
||||
rewrite_package_json "${REPO_DIR}/backend/package.json" "../"
|
||||
|
||||
# Web package.json
|
||||
rewrite_package_json "${REPO_DIR}/web/package.json" "../"
|
||||
|
||||
echo ""
|
||||
echo "Done. Tarballs in $TARBALL_DIR"
|
||||
echo ""
|
||||
echo "To build Docker images:"
|
||||
echo " docker compose build"
|
||||
echo ""
|
||||
echo "To restore after build:"
|
||||
echo " ./scripts/docker-prep.sh --restore"
|
||||
Loading…
Reference in New Issue
Block a user