122 lines
4.4 KiB
Plaintext
122 lines
4.4 KiB
Plaintext
# Copy this file to deploy/.env.production on the VPS.
|
|
# Keep real API keys out of git.
|
|
|
|
# Runtime
|
|
JOBS_DIR=/data/jobs
|
|
ASSET_LIBRARY_DIR=/data/asset_library
|
|
PROMPT_LIBRARY_DIR=/data/prompt_library
|
|
KEYFRAME_COUNT=12
|
|
CORS_ORIGINS=https://marketing.skg.com
|
|
API_PORT=4291
|
|
|
|
# Company persistence database. Real password and DATABASE_URL live only on server.
|
|
POSTGRES_DB=skg_marketing
|
|
POSTGRES_USER=skg_marketing
|
|
POSTGRES_PASSWORD=
|
|
DATABASE_URL=postgresql://skg_marketing:CHANGE_ME@postgres:5432/skg_marketing
|
|
|
|
# Web login. Keep real password and session secret only on the server.
|
|
PASSWORD_AUTH_ENABLED=false
|
|
WEB_AUTH_USERNAME=skg
|
|
WEB_AUTH_PASSWORD=
|
|
WEB_AUTH_SESSION_SECRET=
|
|
WEB_AUTH_COOKIE_NAME=skg_marketing_session
|
|
WEB_AUTH_COOKIE_SECURE=true
|
|
AUTH_DATA_ISOLATION_ENABLED=true
|
|
VIDEO_QUEUE_MAX_CONCURRENT=2
|
|
VIDEO_QUEUE_MAX_CONCURRENT_PER_USER=1
|
|
|
|
# Feishu OAuth login. Register this callback in the Feishu developer console:
|
|
# https://marketing.skg.com/api/auth/feishu/callback
|
|
FEISHU_APP_ID=
|
|
FEISHU_APP_SECRET=
|
|
FEISHU_REDIRECT_URI=https://marketing.skg.com/api/auth/feishu/callback
|
|
FEISHU_OAUTH_SCOPE=
|
|
FEISHU_ALLOWED_EMAIL_DOMAINS=
|
|
FEISHU_ALLOWED_EMAILS=
|
|
FEISHU_ALLOWED_TENANT_KEYS=
|
|
|
|
# SKG AI gateway, OpenAI-compatible
|
|
LLM_BASE_URL=https://ai.skg.com/ezlink/v1
|
|
LLM_API_KEY=
|
|
|
|
# Model routing
|
|
# Azure ASR can be re-enabled once the real deployment name exists.
|
|
ASR_BASE_URL=https://ai.skg.com/azure/v1
|
|
ASR_API_KEY=
|
|
ASR_MODEL=gpt-4o-transcribe
|
|
ASR_LANGUAGE=en
|
|
ASR_REMOTE_ENABLED=false
|
|
ASR_LOCAL_FALLBACK_ENABLED=true
|
|
ASR_AUDIO_FALLBACK_ENABLED=false
|
|
ASR_FALLBACK_MODEL=gemini-2.5-flash
|
|
ASR_TIMEOUT_SECONDS=45
|
|
FASTER_WHISPER_MODEL=tiny.en
|
|
FASTER_WHISPER_DEVICE=cpu
|
|
FASTER_WHISPER_COMPUTE_TYPE=int8
|
|
TRANSLATE_MODEL=gemini-2.5-flash
|
|
GPT_TEXT_MODEL=gpt-4o
|
|
REWRITE_MODEL=gpt-4o-mini
|
|
REWRITE_MODEL_FALLBACKS=gemini-2.5-flash
|
|
VISION_MODEL=gpt-4o
|
|
PRODUCT_VIEW_MODEL=gpt-image-2
|
|
IMAGE_BASE_URL=https://ai.skg.com/ezlink/v1
|
|
IMAGE_API_KEY=
|
|
IMAGE_MODEL=gpt-image-2
|
|
IMAGE_REQUEST_TIMEOUT_SECONDS=60
|
|
IMAGE_FALLBACK_ENABLED=true
|
|
IMAGE_FALLBACK_MODEL=gemini-3-pro-image-preview
|
|
IMAGE_FALLBACK_MODELS=gemini-3-pro-image-preview
|
|
IMAGE_EXTRA_MODELS=
|
|
# Optional JSON model overrides. Use api_key_env/base_url_env; do not put real keys in git.
|
|
# IMAGE_MODEL_CONFIGS_JSON={"custom-model":{"label":"Custom Image","base_url_env":"CUSTOM_IMAGE_BASE_URL","api_key_env":"CUSTOM_IMAGE_API_KEY","provider":"openai","sizes":["1024x1024"],"default_size":"1024x1024"}}
|
|
IMAGE_CIRCUIT_FAILURE_THRESHOLD=2
|
|
IMAGE_CIRCUIT_COOLDOWN_SECONDS=600
|
|
GPT_IMAGE_MODEL=gpt-image-2
|
|
SUBJECT_ASSET_IMAGE_MODEL=gpt-image-2
|
|
SUBJECT_ASSET_IMAGE_MODELS=gpt-image-2,gemini-3-pro-image-preview
|
|
# Optional Ark Seedream image channel. Keep the real key only in deploy/.env.production on the VPS.
|
|
ARK_SEEDREAM_ENABLED=true
|
|
ARK_IMAGE_BASE_URL=https://ark.cn-beijing.volces.com/api/v3
|
|
ARK_IMAGE_API_KEY=
|
|
ARK_SEEDREAM_IMAGE_MODEL=doubao-seedream-4-5-251128
|
|
# Optional outbound proxy for AI gateway calls. Leave blank on normal VPS networking.
|
|
AI_HTTP_PROXY=
|
|
|
|
# Optional TikTok download login state for yt-dlp. Keep cookies files private.
|
|
# Leave blank for public TikTok videos. Set to /run/secrets/tiktok_cookies.txt only when a link explicitly requires login cookies.
|
|
YTDLP_COOKIES_FILE=
|
|
YTDLP_COOKIES_FROM_BROWSER=
|
|
|
|
# Audio rewrite and Azure OpenAI TTS
|
|
AUDIO_REWRITE_MODEL=gemini-2.5-pro
|
|
AUDIO_PRODUCT_BRIEF="SKG smart massage products for daily neck, shoulder, back, eye, knee, and foot relaxation. Keep claims premium, clean, credible, and non-medical."
|
|
# Voice is fixed to Azure OpenAI in the backend.
|
|
VOICE_PROVIDER=azure_openai
|
|
AZURE_OPENAI_BASE_URL=https://ai.skg.com/azure
|
|
AZURE_OPENAI_API_KEY=
|
|
AZURE_TTS_MODEL=gpt-4o-mini-tts
|
|
AZURE_TTS_VOICE_ID=alloy
|
|
AZURE_TTS_VOICE_POOL=alloy,verse,shimmer
|
|
AZURE_TTS_PATH=/audio/speech
|
|
AZURE_TTS_PATHS=/audio/speech,/v1/audio/speech
|
|
|
|
# Video generation. Use SKG Doubao / Seedance gateway in production.
|
|
POE_API_BASE_URL=https://api.poe.com/v1
|
|
POE_API_KEY=
|
|
VIDEO_API_BASE_URL=https://ai.skg.com/doubao
|
|
VIDEO_API_KEY=
|
|
VIDEO_MODEL=seedance
|
|
VIDEO_MODEL_SEEDANCE=doubao-seedance-2-0-fast-260128
|
|
VIDEO_MODEL_XAI=grok-imagine-video
|
|
VIDEO_CREATE_PATHS=/api/v3/contents/generations/tasks
|
|
VIDEO_STATUS_PATH=/api/v3/contents/generations/tasks/{id}
|
|
VIDEO_CONTENT_PATH=/api/v3/contents/generations/tasks/{id}/content
|
|
VIDEO_DURATION_FIELD=seconds
|
|
VIDEO_POLL_TIMEOUT_SECONDS=900
|
|
XAI_VIDEO_API_BASE_URL=https://ai.skg.com/ezlink/xai
|
|
XAI_VIDEO_API_KEY=
|
|
XAI_VIDEO_CREATE_PATH=/v1/videos/generations
|
|
XAI_VIDEO_STATUS_PATH=/v1/videos/{id}
|
|
XAI_VIDEO_CONTENT_PATH=
|