chore: add local docker validation workflow
This commit is contained in:
91
deploy/.env.local.example
Normal file
91
deploy/.env.local.example
Normal file
@@ -0,0 +1,91 @@
|
||||
# Local Docker only. Copy to deploy/.env.local or run scripts/start-local-docker.sh.
|
||||
# Real production secrets stay in deploy/.env.production on the VPS.
|
||||
|
||||
# Local ports
|
||||
LOCAL_WEB_PORT=4390
|
||||
LOCAL_API_PORT=4391
|
||||
|
||||
# Local Postgres
|
||||
POSTGRES_DB=skg_marketing_local
|
||||
POSTGRES_USER=skg_marketing
|
||||
POSTGRES_PASSWORD=skg_marketing_local_password
|
||||
|
||||
# Local password login for Docker smoke tests
|
||||
PASSWORD_AUTH_ENABLED=true
|
||||
WEB_AUTH_USERNAME=skg
|
||||
WEB_AUTH_PASSWORD=local-skg
|
||||
WEB_AUTH_SESSION_SECRET=local-docker-session-secret-change-me
|
||||
WEB_AUTH_COOKIE_NAME=skg_marketing_local_session
|
||||
WEB_AUTH_COOKIE_SECURE=false
|
||||
AUTH_DATA_ISOLATION_ENABLED=true
|
||||
|
||||
# Feishu can be filled locally if OAuth needs to be tested from localhost.
|
||||
FEISHU_APP_ID=
|
||||
FEISHU_APP_SECRET=
|
||||
FEISHU_REDIRECT_URI=http://localhost:4390/api/auth/feishu/callback
|
||||
FEISHU_OAUTH_SCOPE=
|
||||
FEISHU_ALLOWED_EMAIL_DOMAINS=
|
||||
FEISHU_ALLOWED_EMAILS=
|
||||
FEISHU_ALLOWED_TENANT_KEYS=
|
||||
|
||||
# SKG AI gateway. Leave blank when only testing UI/login/database locally.
|
||||
LLM_BASE_URL=https://ai.skg.com/ezlink/v1
|
||||
LLM_API_KEY=
|
||||
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_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
|
||||
AI_HTTP_PROXY=
|
||||
|
||||
# Text/vision/audio model names
|
||||
GPT_TEXT_MODEL=gpt-4o
|
||||
REWRITE_MODEL=gpt-4o
|
||||
VISION_MODEL=gpt-4o
|
||||
TRANSLATE_MODEL=gemini-2.5-flash
|
||||
ASR_BASE_URL=https://ai.skg.com/azure/v1
|
||||
ASR_API_KEY=
|
||||
ASR_MODEL=gpt-4o-transcribe
|
||||
ASR_LANGUAGE=auto
|
||||
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
|
||||
FASTER_WHISPER_DEVICE=cpu
|
||||
FASTER_WHISPER_COMPUTE_TYPE=int8
|
||||
|
||||
# Video generation. Fill VIDEO_API_KEY only when testing real video generation locally.
|
||||
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_KLING=kling-omni
|
||||
VIDEO_MODEL_VEO3=veo-3.1-fast
|
||||
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
|
||||
|
||||
# Azure OpenAI TTS. Leave blank unless testing voice locally.
|
||||
AUDIO_REWRITE_MODEL=gemini-2.5-pro
|
||||
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
|
||||
|
||||
# Optional TikTok cookies. Keep files local and out of git.
|
||||
YTDLP_COOKIES_FILE=
|
||||
YTDLP_COOKIES_FROM_BROWSER=
|
||||
Reference in New Issue
Block a user