# Runtime NODE_ENV=production PORT=3000 LOG_LEVEL=info APP_BASE_URL=https://xartaudio.example.com # Better Auth BETTER_AUTH_SECRET=replace-me BETTER_AUTH_BASE_PATH=/api/auth X_OAUTH_CLIENT_ID=replace-me X_OAUTH_CLIENT_SECRET=replace-me INTERNAL_API_TOKEN=replace-me # Convex CONVEX_DEPLOYMENT_URL=https://your-deployment.convex.cloud CONVEX_AUTH_TOKEN= CONVEX_STATE_QUERY=state:getLatestSnapshot CONVEX_STATE_MUTATION=state:saveSnapshot # Webhook secrets X_WEBHOOK_SECRET=replace-me POLAR_WEBHOOK_SECRET=replace-me # X API X_BEARER_TOKEN=replace-me X_BOT_USER_ID=replace-me # Polar API POLAR_ACCESS_TOKEN=replace-me POLAR_SERVER=production POLAR_PRODUCT_IDS=prod_123 # Qwen3 TTS QWEN_TTS_API_KEY=replace-me QWEN_TTS_BASE_URL=https://dashscope-intl.aliyuncs.com/compatible-mode/v1 QWEN_TTS_MODEL=qwen-tts-latest QWEN_TTS_VOICE=Cherry QWEN_TTS_FORMAT=mp3 # MinIO object storage MINIO_ENDPOINT=minio.example.com MINIO_PORT=443 MINIO_USE_SSL=true MINIO_BUCKET=replace-me MINIO_REGION=us-east-1 MINIO_ACCESS_KEY=replace-me MINIO_SECRET_KEY=replace-me MINIO_SIGNED_URL_TTL_SEC=3600 # Credit policy BASE_CREDITS=1 INCLUDED_CHARS=25000 STEP_CHARS=10000 STEP_CREDITS=1 MAX_CHARS_PER_ARTICLE=120000 # Rate limits (requests per minute) WEBHOOK_RPM=120 AUTH_RPM=30 ACTION_RPM=60 # Anti-abuse policy ABUSE_MAX_JOBS_PER_USER_PER_DAY=0 ABUSE_COOLDOWN_SEC=0 ABUSE_DENY_USER_IDS=