#!/usr/bin/env bash set -euo pipefail ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PORT="${PORT:-18083}" HOST="${HOST:-127.0.0.1}" # Mirror the current live collector runtime so we can verify the source overlay # against the same database and external integrations without touching 8081. export DATA_DIR="${DATA_DIR:-/Users/kris/code/StoryForge-gitea/data/collector}" export DATABASE_PATH="${DATABASE_PATH:-$DATA_DIR/storyforge.db}" export DEFAULT_EXTERNAL_BASE_URL="${DEFAULT_EXTERNAL_BASE_URL:-https://storyforge.hyzq.net}" export LOCAL_OPENAI_BASE_URL="${LOCAL_OPENAI_BASE_URL:-http://host.docker.internal:8317/v1}" export LOCAL_OPENAI_MODEL="${LOCAL_OPENAI_MODEL:-GLM-5}" export LOCAL_OPENAI_API_KEY="${LOCAL_OPENAI_API_KEY:-}" export YTDLP_BIN="${YTDLP_BIN:-yt-dlp}" export FFMPEG_BIN="${FFMPEG_BIN:-ffmpeg}" export WHISPER_BIN="${WHISPER_BIN:-}" export WHISPER_MODEL="${WHISPER_MODEL:-$DATA_DIR/models/ggml-base.en.bin}" export ASR_HTTP_BASE_URL="${ASR_HTTP_BASE_URL:-http://host.docker.internal:8088}" export ASR_HTTP_TRANSCRIBE_PATH="${ASR_HTTP_TRANSCRIBE_PATH:-/transcribe}" export ASR_HTTP_FIELD_NAME="${ASR_HTTP_FIELD_NAME:-wav}" export ASR_HTTP_TIMEOUT_SEC="${ASR_HTTP_TIMEOUT_SEC:-120}" export N8N_BASE_URL="${N8N_BASE_URL:-http://n8n:5678}" export N8N_ANALYSIS_WEBHOOK_PATH="${N8N_ANALYSIS_WEBHOOK_PATH:-/webhook/storyforge-analysis}" export N8N_REAL_CUT_WEBHOOK_PATH="${N8N_REAL_CUT_WEBHOOK_PATH:-/webhook/storyforge-real-cut}" export N8N_AI_VIDEO_WEBHOOK_PATH="${N8N_AI_VIDEO_WEBHOOK_PATH:-/webhook/storyforge-ai-video}" export N8N_CONTENT_SOURCE_SYNC_WEBHOOK_PATH="${N8N_CONTENT_SOURCE_SYNC_WEBHOOK_PATH:-/webhook/storyforge-content-source-sync}" export ORCHESTRATOR_SHARED_SECRET="${ORCHESTRATOR_SHARED_SECRET:-storyforge-local-secret}" export CUTVIDEO_BASE_URL="${CUTVIDEO_BASE_URL:-http://192.168.31.18:7860}" export CUTVIDEO_API_KEY="${CUTVIDEO_API_KEY:-}" export CUTVIDEO_BASE_CONFIG="${CUTVIDEO_BASE_CONFIG:-example.job.yaml}" export CUTVIDEO_POLL_INTERVAL_SEC="${CUTVIDEO_POLL_INTERVAL_SEC:-10}" export CUTVIDEO_MAX_WAIT_SEC="${CUTVIDEO_MAX_WAIT_SEC:-1800}" export CUTVIDEO_UPLOAD_TIMEOUT_SEC="${CUTVIDEO_UPLOAD_TIMEOUT_SEC:-1800}" export HUOBAO_BASE_URL="${HUOBAO_BASE_URL:-http://host.docker.internal:5678}" export HUOBAO_POLL_INTERVAL_SEC="${HUOBAO_POLL_INTERVAL_SEC:-10}" export HUOBAO_MAX_WAIT_SEC="${HUOBAO_MAX_WAIT_SEC:-900}" cd "$ROOT_DIR" exec ./.venv311/bin/python -m uvicorn app.main:app --host "$HOST" --port "$PORT"