# Copy this file to .env.local when you need real generation. # Do not commit filled secret values. # Local server APP_PORT=3000 PORT=3000 HOSTNAME=127.0.0.1 NEXT_PUBLIC_APP_URL=http://127.0.0.1:3000 ZHINIAN_RUNTIME_DIR=.runtime ZHINIAN_LOG_DIR= ZHINIAN_LOG_MAX_BYTES=5242880 ZHINIAN_PUBLIC_BASE_URL=http://127.0.0.1:3000 # Platform-owned account login. # Production requires login by default. Set ZHINIAN_AUTH_REQUIRED=0 only for trusted local development. ZHINIAN_AUTH_REQUIRED=auto ZHINIAN_AUTH_SESSION_SECRET=change-me-to-a-long-random-secret ZHINIAN_BILLING_REQUIRED=1 ZHINIAN_BILLING_ACCOUNT_NAME= ZHINIAN_BILLING_ACCOUNT_BANK= ZHINIAN_BILLING_ACCOUNT_NUMBER= ZHINIAN_BILLING_CONTACT= # Run `npm run bootstrap:admin -- --phone 13800138000 --password 'change-me-now'` once to create the first super admin. # Public API v1 and worker task management. # Format: accountId:key,anotherAccount:anotherKey. # Jobs and assets are partitioned by accountId as ownerId `api:`. ZHINIAN_API_KEYS=demo-agent:change-me-public-api-key ZHINIAN_INTERNAL_WORKER_TOKEN=change-me-worker-token ZHINIAN_WEBHOOK_SECRET= ZHINIAN_WORKER_BASE_URL=http://127.0.0.1:3000 ZHINIAN_WORKER_INTERVAL_MS=5000 ZHINIAN_WORKER_BATCH_SIZE=3 ZHINIAN_WORKER_POLL_INTERVAL_MS=5000 ZHINIAN_WORKER_LOCK_TIMEOUT_MS=300000 ZHINIAN_WORKER_RETRY_BASE_MS=10000 ZHINIAN_WORKER_RETRY_MAX_MS=300000 ZHINIAN_WORKER_REQUEST_TIMEOUT_MS=120000 # Data layer. Use local only for development/single-instance operation. # Production must explicitly select postgres; it never falls back to container-local JSON. ZHINIAN_DATA_BACKEND=local DATABASE_URL= # Migration runner only: PostgreSQL role used by the Web DATABASE_URL. DATABASE_APP_ROLE= DATABASE_SSL_MODE=disable # For RDS SSL, set verify-full and mount the downloaded CA certificate at this path. DATABASE_CA_CERT_PATH= DATABASE_POOL_MAX=10 DATABASE_IDLE_TIMEOUT_MS=30000 DATABASE_CONNECTION_TIMEOUT_MS=5000 DATABASE_STATEMENT_TIMEOUT_MS=30000 DATABASE_APPLICATION_NAME=zhinian-web # Obsolete: the direct PostgreSQL adapter does not use Supabase/PostgREST variables. # NEXT_PUBLIC_SUPABASE_URL= # NEXT_PUBLIC_SUPABASE_ANON_KEY= # SUPABASE_SERVICE_ROLE_KEY= # Image creation engine: jimeng, evolink, or bailian. IMAGE_GENERATE_ENGINE=jimeng # Volcengine Visual API for Jimeng image capabilities. VOLCENGINE_ACCESS_KEY_ID= VOLCENGINE_SECRET_ACCESS_KEY= VOLCENGINE_REGION=cn-north-1 VOLCENGINE_SERVICE=cv VOLCENGINE_VISUAL_ENDPOINT=https://visual.volcengineapi.com JIMENG_IMAGE_GENERATE_46_REQ_KEY=jimeng_seedream46_cvtob # auto mocks image jobs when Volcengine credentials are missing. JIMENG_VISUAL_MOCK=auto # EvoLink GPT Image 2 relay for image generation. EVOLINK_API_KEY= EVOLINK_BASE_URL=https://api.evolink.ai EVOLINK_IMAGE_MODEL=gpt-image-2 EVOLINK_IMAGE_QUALITY=medium # auto mocks EvoLink image jobs when EVOLINK_API_KEY is missing. EVOLINK_MOCK=auto # Seedance / Volcengine Ark SEEDANCE_API_KEY= SEEDANCE_BASE_URL=https://ark.cn-beijing.volces.com/api/v3 SEEDANCE_MODEL=doubao-seedance-2-0-260128 SEEDANCE_RATIO=9:16 # Seedance 2.0 duration supports integer seconds from 4 to 15, or -1 for model auto. SEEDANCE_DURATION=5 SEEDANCE_RESOLUTION=720p # auto mocks video jobs when Seedance credentials are missing. SEEDANCE_MOCK=auto # Aliyun OSS for uploaded/reference assets that Seedance can read. ALI_OSS_ENDPOINT= ALI_OSS_BUCKET= ALI_OSS_ACCESS_KEY_ID= ALI_OSS_ACCESS_KEY_SECRET= ALI_OSS_PREFIX=zhinian ALI_OSS_PUBLIC_BASE_URL=