# Server-side OpenAI-compatible LLM endpoint base URL. LLM_BASE_URL="https://ark.cn-beijing.volces.com/api/v3" # Server-side API key used by the local Vite proxy. # Recommended: set `LLM_API_KEY` or `ARK_API_KEY`. # Legacy compatibility: `VITE_LLM_API_KEY` is still supported by the proxy, # but it should not be relied on by browser code. LLM_API_KEY="YOUR_API_KEY" # Optional frontend override for the local proxy path. VITE_LLM_PROXY_BASE_URL="/api/llm" # Optional frontend override for the local custom-world scene image proxy path. VITE_SCENE_IMAGE_PROXY_BASE_URL="/api/custom-world/scene-image" # Local Node backend address and target used by Vite's dev proxy for runtime API routes. NODE_SERVER_ADDR=":8081" NODE_SERVER_TARGET="http://127.0.0.1:8081" # Local Caddy upstream target used for dist-based testing. CADDY_API_UPSTREAM="http://127.0.0.1:8081" # Editor and asset tool APIs. Defaults are enabled outside production and # disabled in production unless explicitly enabled. EDITOR_API_ENABLED="true" ASSETS_API_ENABLED="true" # Node backend PostgreSQL connection string. # Runtime persistence now uses PostgreSQL as the only formal backend baseline. DATABASE_URL="postgresql://postgres:postgres@127.0.0.1:5432/genarrative" # Node backend JWT settings. JWT_SECRET="CHANGE_ME_FOR_PRODUCTION" # Access token 有效期。 JWT_EXPIRES_IN="2h" # Refresh session 配置。 AUTH_REFRESH_COOKIE_NAME="genarrative_refresh_session" AUTH_REFRESH_SESSION_TTL_DAYS="30" AUTH_REFRESH_COOKIE_PATH="/api/auth" AUTH_REFRESH_COOKIE_SAME_SITE="Lax" AUTH_REFRESH_COOKIE_SECURE="false" # 手机号验证码登录配置(阿里云 PNVS)。 # 正式环境请改成你自己的 AccessKey 和短信签名/模板。 # 在 `.env.local` 或进程环境中填入 AccessKey 后会自动启用;如需强制关闭,请显式设置 `SMS_AUTH_ENABLED="false"`。 SMS_AUTH_ENABLED="false" SMS_AUTH_PROVIDER="aliyun" ALIYUN_SMS_ACCESS_KEY_ID="" ALIYUN_SMS_ACCESS_KEY_SECRET="" ALIYUN_SMS_ENDPOINT="dypnsapi.aliyuncs.com" # 默认使用阿里云文档中的赠送测试签名/模板,可按控制台实际配置覆盖。 ALIYUN_SMS_SIGN_NAME="速通互联验证码" ALIYUN_SMS_TEMPLATE_CODE="100001" ALIYUN_SMS_TEMPLATE_PARAM_KEY="code" ALIYUN_SMS_COUNTRY_CODE="86" ALIYUN_SMS_SCHEME_NAME="" ALIYUN_SMS_CODE_LENGTH="6" ALIYUN_SMS_CODE_TYPE="1" ALIYUN_SMS_VALID_TIME_SECONDS="300" ALIYUN_SMS_INTERVAL_SECONDS="60" ALIYUN_SMS_DUPLICATE_POLICY="1" ALIYUN_SMS_CASE_AUTH_POLICY="1" ALIYUN_SMS_RETURN_VERIFY_CODE="false" SMS_AUTH_MAX_SEND_PER_PHONE_PER_DAY="20" SMS_AUTH_MAX_SEND_PER_IP_PER_HOUR="30" SMS_AUTH_MAX_VERIFY_FAILURES_PER_PHONE_PER_HOUR="12" SMS_AUTH_MAX_VERIFY_FAILURES_PER_IP_PER_HOUR="24" SMS_AUTH_CAPTCHA_TTL_SECONDS="180" SMS_AUTH_CAPTCHA_TRIGGER_VERIFY_FAILURES_PER_PHONE="3" SMS_AUTH_CAPTCHA_TRIGGER_VERIFY_FAILURES_PER_IP="5" SMS_AUTH_BLOCK_PHONE_FAILURE_THRESHOLD="6" SMS_AUTH_BLOCK_IP_FAILURE_THRESHOLD="10" SMS_AUTH_BLOCK_PHONE_DURATION_MINUTES="30" SMS_AUTH_BLOCK_IP_DURATION_MINUTES="30" # 仅开发环境:允许本地开发测试自动走游客账号。 # 一旦你已经启用手机号/微信登录,建议改成 `false`,这样会直接进入真实登录界面。 VITE_AUTH_ALLOW_DEV_GUEST="true" # 微信登录配置。 # 当前实现已支持微信登录骨架与 mock 联调;正式联调需补齐开放平台 AppID / AppSecret。 WECHAT_AUTH_ENABLED="false" WECHAT_AUTH_PROVIDER="wechat" WECHAT_APP_ID="" WECHAT_APP_SECRET="" WECHAT_CALLBACK_PATH="/api/auth/wechat/callback" WECHAT_REDIRECT_PATH="/" # Model name for chat completions. VITE_LLM_MODEL="doubao-1-5-pro-32k-character-250715" # Server-side DashScope endpoint and API key used by the local scene-image proxy. DASHSCOPE_BASE_URL="https://dashscope.aliyuncs.com/api/v1" DASHSCOPE_API_KEY="sk-65a0c6fa5e294b9887ace860f9d65990" # Optional model name for custom-world scene image generation. DASHSCOPE_IMAGE_MODEL="wan2.7-image" # Optional model names for character asset studio. DASHSCOPE_CHARACTER_VISUAL_MODEL="wan2.7-image-pro" DASHSCOPE_CHARACTER_IMAGE_SEQUENCE_MODEL="wan2.7-image-pro" DASHSCOPE_CHARACTER_VIDEO_MODEL="wan2.7-i2v" DASHSCOPE_CHARACTER_REFERENCE_VIDEO_MODEL="wan2.7-r2v" DASHSCOPE_CHARACTER_MOTION_TRANSFER_MODEL="wan2.2-animate-move" # Optional: server-side polling timeout for custom-world scene image generation, in milliseconds. DASHSCOPE_IMAGE_REQUEST_TIMEOUT_MS="150000" # Optional: longer timeout for character video generation, in milliseconds. DASHSCOPE_CHARACTER_VIDEO_REQUEST_TIMEOUT_MS="420000" # Optional: generic frontend timeout for regular LLM requests, in milliseconds. VITE_LLM_REQUEST_TIMEOUT_MS="15000" # Optional: longer timeout for custom world generation, in milliseconds. VITE_LLM_CUSTOM_WORLD_TIMEOUT_MS="120000" # Optional: timeout for custom-world scene image generation, in milliseconds. VITE_SCENE_IMAGE_REQUEST_TIMEOUT_MS="150000" # Optional: print full LLM prompts / outputs in the browser console. # Keep this off by default for cleaner logs. VITE_LLM_DEBUG_LOG="false" # Optional: official VikingDB credentials for regenerating build-tag similarities # with the Python embedding script. The script auto-loads `.env.local` and uses # the fixed `bge-large-zh` embedding model. VOLCENGINE_ACCESS_KEY_ID="" VOLCENGINE_SECRET_ACCESS_KEY="" VIKINGDB_HOST="" VIKINGDB_REGION="" # APP_URL: The URL where this applet is hosted. # AI Studio automatically injects this at runtime with the Cloud Run service URL. # Used for self-referential links, OAuth callbacks, and API endpoints. APP_URL="MY_APP_URL"