# Runtime NODE_ENV=development PORT=3000 ADMIN_PORT=5173 USER_APP_PORT=5174 # Transport security # Production should terminate TLS at Nginx/Caddy/Load Balancer and forward X-Forwarded-Proto=https. HTTPS_REQUIRED=false HTTPS_ALLOW_LOCAL_HTTP=true TRUST_PROXY=false CORS_ORIGINS=http://127.0.0.1:5173,http://127.0.0.1:5174 API_CRYPTO_ENABLED=auto API_CRYPTO_SESSION_TTL_SECONDS=900 VITE_API_CRYPTO_ENABLED=auto # Database DATABASE_URL=mysql://ai_manga:ai_manga_password@127.0.0.1:3306/ai_manga # Queue REDIS_URL=redis://127.0.0.1:6379 # Object storage MINIO_ENDPOINT=127.0.0.1 MINIO_PORT=9000 MINIO_USE_SSL=false MINIO_ACCESS_KEY=minioadmin MINIO_SECRET_KEY=minioadmin MINIO_BUCKET_PRIVATE=ai-manga-private MINIO_BUCKET_PUBLIC=ai-manga-public # Auth JWT_SECRET=change_me_in_local_env JWT_EXPIRES_IN=7d # Media FFMPEG_PATH=ffmpeg LOCAL_STORAGE_ROOT=../storage STORAGE_DRIVER=local # AI providers are mocked until the MVP flow is complete. AI_PROVIDER_MODE=mock OPENAI_API_KEY= OPENAI_BASE_URL= OPENAI_TEXT_MODEL= OPENAI_NOVEL_MODEL= OPENAI_IMAGE_MODEL= OPENAI_VIDEO_MODEL= OPENAI_TTS_MODEL= OPENAI_MODERATION_MODEL= OPENAI_EMBEDDING_MODEL= # Must stay stable after saving Provider API keys in the admin console. PROVIDER_SECRET_KEY= PROVIDER_MAX_COST_PER_CALL= PROVIDER_DAILY_COST_LIMIT= WORKER_SECRET=