66 lines
2.7 KiB
YAML
66 lines
2.7 KiB
YAML
services:
|
|
n8n:
|
|
image: ${N8N_IMAGE:-docker.n8n.io/n8nio/n8n:latest}
|
|
container_name: storyforge-n8n
|
|
restart: unless-stopped
|
|
environment:
|
|
N8N_HOST: ${N8N_HOST:-0.0.0.0}
|
|
N8N_PORT: 5678
|
|
N8N_PROTOCOL: ${N8N_PROTOCOL:-http}
|
|
WEBHOOK_URL: ${WEBHOOK_URL:-http://127.0.0.1:5670/}
|
|
GENERIC_TIMEZONE: ${GENERIC_TIMEZONE:-Asia/Shanghai}
|
|
TZ: ${TZ:-Asia/Shanghai}
|
|
N8N_SECURE_COOKIE: ${N8N_SECURE_COOKIE:-false}
|
|
N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS: ${N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS:-false}
|
|
ports:
|
|
- "5670:5678"
|
|
volumes:
|
|
- ./data/n8n:/home/node/.n8n
|
|
- ./n8n:/workspace/n8n:ro
|
|
|
|
collector:
|
|
build:
|
|
context: ./collector-service
|
|
container_name: storyforge-collector
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- n8n
|
|
environment:
|
|
DATA_DIR: /data/collector
|
|
DATABASE_PATH: /data/collector/storyforge.db
|
|
DEFAULT_EXTERNAL_BASE_URL: ${DEFAULT_EXTERNAL_BASE_URL:-https://test.hyzq.net/storyforge}
|
|
LOCAL_OPENAI_BASE_URL: ${LOCAL_OPENAI_BASE_URL:-http://host.docker.internal:8317/v1}
|
|
LOCAL_OPENAI_MODEL: ${LOCAL_OPENAI_MODEL:-GLM-5}
|
|
LOCAL_OPENAI_API_KEY: ${LOCAL_OPENAI_API_KEY:-}
|
|
N8N_BASE_URL: ${N8N_BASE_URL:-http://n8n:5678}
|
|
N8N_ANALYSIS_WEBHOOK_PATH: ${N8N_ANALYSIS_WEBHOOK_PATH:-/webhook/storyforge-analysis}
|
|
N8N_REAL_CUT_WEBHOOK_PATH: ${N8N_REAL_CUT_WEBHOOK_PATH:-/webhook/storyforge-real-cut}
|
|
N8N_AI_VIDEO_WEBHOOK_PATH: ${N8N_AI_VIDEO_WEBHOOK_PATH:-/webhook/storyforge-ai-video}
|
|
ORCHESTRATOR_SHARED_SECRET: ${ORCHESTRATOR_SHARED_SECRET:-storyforge-local-secret}
|
|
CUTVIDEO_BASE_URL: ${CUTVIDEO_BASE_URL:-}
|
|
CUTVIDEO_API_KEY: ${CUTVIDEO_API_KEY:-}
|
|
CUTVIDEO_BASE_CONFIG: ${CUTVIDEO_BASE_CONFIG:-example.job.yaml}
|
|
CUTVIDEO_POLL_INTERVAL_SEC: ${CUTVIDEO_POLL_INTERVAL_SEC:-10}
|
|
CUTVIDEO_MAX_WAIT_SEC: ${CUTVIDEO_MAX_WAIT_SEC:-1800}
|
|
CUTVIDEO_UPLOAD_TIMEOUT_SEC: ${CUTVIDEO_UPLOAD_TIMEOUT_SEC:-1800}
|
|
HUOBAO_BASE_URL: ${HUOBAO_BASE_URL:-http://host.docker.internal:5678}
|
|
YTDLP_BIN: ${YTDLP_BIN:-yt-dlp}
|
|
FFMPEG_BIN: ${FFMPEG_BIN:-ffmpeg}
|
|
WHISPER_BIN: ${WHISPER_BIN:-}
|
|
WHISPER_MODEL: ${WHISPER_MODEL:-/data/collector/models/ggml-base.en.bin}
|
|
HUOBAO_POLL_INTERVAL_SEC: ${HUOBAO_POLL_INTERVAL_SEC:-10}
|
|
HUOBAO_MAX_WAIT_SEC: ${HUOBAO_MAX_WAIT_SEC:-900}
|
|
ports:
|
|
- "8081:8081"
|
|
volumes:
|
|
- ./data/collector:/data/collector
|
|
command: uvicorn app.main:app --host 0.0.0.0 --port 8081
|
|
|
|
cli-proxy-api:
|
|
image: ${CLIPROXY_IMAGE:-storyforge/cli-proxy-api:patched}
|
|
container_name: storyforge-cliproxyapi
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8317:8317"
|
|
- "8085:8085"
|