PORT=3010 # Production on the API server: use 0.0.0.0, or keep localhost and reverse-proxy via nginx → 127.0.0.1:3010 HOST=localhost NODE_ENV=development # Same MongoDB as EventBuzz backend / dashboard MONGODB_URI=mongodb://localhost:27017/eventbuzz # CORS (comma-separated). Dev also allows localhost / 127.0.0.1 any port. # CORS_ORIGIN=http://localhost:5173 # AWS credentials for Bedrock Converse AWS_ACCESS_KEY_ID= AWS_SECRET_ACCESS_KEY= # AWS_SESSION_TOKEN= AWS_DEFAULT_REGION=ap-south-1 # BEDROCK_REGION=ap-south-1 # Tool-calling agent (router + synthesis). Falls back to BEDROCK_CALL2_MODEL_ID. # Haiku 4.5 in ap-south-1 needs the global inference profile (no in-region ID). BEDROCK_AGENT_MODEL_ID=global.anthropic.claude-haiku-4-5-20251001-v1:0 BEDROCK_CALL2_MODEL_ID=global.anthropic.claude-haiku-4-5-20251001-v1:0 # BEDROCK_USE_INFERENCE_PROFILES=auto # BEDROCK_LOG_LLM=true # Prompt cache (default on). Haiku 4.5 caches tools + system + EVENT (1h TTL). # Requires ~4096 tokens in the cached prefix before a hit shows in cacheReadInputTokens. # BEDROCK_PROMPT_CACHE=false # Agenda "now" calculations EVENT_TIME_ZONE=Asia/Kolkata # Public registration form URLs (same as backend) # MICROSITE_PUBLIC_BASE_URL=https://web.eventbuzz.live # MICROSITE_REGISTRATION_URL_TEMPLATE=https://web.eventbuzz.live/event/{eventId}/form/{formId} # Engagement hub unique links for reception drips ({engagementUrl}) # ENGAGEMENT_PUBLIC_BASE_URL=https://engage.eventbuzz.live # S3 + CloudFront for participant check-in QR (same as backend) # AWS_BUCKET=rapportapp # AWS_URL=https://xxxx.cloudfront.net # Optional local fallback origin when S3 is unset (defaults to http://HOST:PORT) # CONCIERGE_PUBLIC_ORIGIN=http://localhost:3010 # Email OTP for personal agenda / ticket intents OTP_PEPPER=change-me-concierge-otp # CONCIERGE_OTP_MODE=fixed|dynamic (default: dynamic) CONCIERGE_OTP_MODE=dynamic # Used only when CONCIERGE_OTP_MODE=fixed CONCIERGE_FIXED_OTP=123123 # MAIL_* (preferred) or SMTP_* fallback — copy from backend/.env; if unset, OTP is logged to console # MAIL_HOST=smtp.sendgrid.net # MAIL_PORT=587 # MAIL_USERNAME=apikey # MAIL_PASSWORD= # MAIL_ENCRYPTION=tls # MAIL_FROM_ADDRESS= # MAIL_FROM_NAME=Rapport Support # Testing only: deliver all outbound mail here (chat still shows the real recipient) # MAIL_TEST_REDIRECT_TO=you@example.com # Organizer escalation (emergency / lost & found / talk to human). # Preferred: Organization.email on the bot's organization. Fallback: # CONCIERGE_ORGANIZER_EMAIL=organizer@example.com # WhatsApp reception (same Meta app webhook verify token as chatbot). # Point Meta webhook to https:///webhook/whatsapp # META_WHATSAPP_WEBHOOK_VERIFY_TOKEN= # META_GRAPH_API_VERSION=v21.0 # Org token decrypt (must match backend SMTP_ENCRYPTION_KEY) # SMTP_ENCRYPTION_KEY= # ORG_SECRETS_KEY= # META_WHATSAPP_DEFAULT_WABA_ID= # META_WHATSAPP_ACCESS_TOKEN= # META_WHATSAPP_DEFAULT_PHONE_NUMBER_ID= SMTP_HOST= SMTP_PORT=587 SMTP_USER= SMTP_PASS= # LiveKit Cloud (embedded website voice). Keys from the project Keys page. # Keep LIVEKIT_API_KEY and LIVEKIT_API_SECRET in concierge/.env, then run: # npm run livekit-voice-worker # LIVEKIT_URL=wss://prana-tsa7vuj2.livekit.cloud # LIVEKIT_API_KEY= # LIVEKIT_API_SECRET= # LIVEKIT_AGENT_NAME=eventbuzz-concierge # STT: Indian English (use "multi" if you need Hindi + English mixed). # LIVEKIT_STT_MODEL=deepgram/nova-3 # LIVEKIT_STT_LANGUAGE=en-IN # TTS: female Indian English (Cartesia "Indian Customer Support Lady"). # LIVEKIT_TTS_MODEL=cartesia/sonic-3 # LIVEKIT_TTS_VOICE=ff1bb1a9-c582-4570-9670-5f46169d0fc8 # LIVEKIT_TTS_LANGUAGE=en # SIMLI avatar (sample page /embed/avatar). Key stays on the server. SIMLI_API_KEY= SIMLI_FACE_ID=