NODE_ENV=production # App APP_BASE_URL=https://asolutions.jp BFF_PORT=4000 APP_NAME=customer-portal-bff # Database (PostgreSQL) POSTGRES_DB=portal_prod POSTGRES_USER=portal POSTGRES_PASSWORD=CHANGE_ME DATABASE_URL=postgresql://portal:CHANGE_ME@database:5432/portal_prod?schema=public # Cache (Redis) REDIS_URL=redis://cache:6379/0 # Security JWT_SECRET=CHANGE_ME JWT_EXPIRES_IN=7d BCRYPT_ROUNDS=12 # CORS / Proxy CORS_ORIGIN=https://asolutions.jp TRUST_PROXY=true # Rate Limiting (optional; defaults shown) RATE_LIMIT_TTL=60000 RATE_LIMIT_LIMIT=100 AUTH_RATE_LIMIT_TTL=900000 AUTH_RATE_LIMIT_LIMIT=3 # WHMCS Credentials WHMCS_BASE_URL=https://accounts.asolutions.co.jp WHMCS_API_IDENTIFIER= WHMCS_API_SECRET= # Optional API access key if your deployment uses it WHMCS_API_ACCESS_KEY= # Optional webhook security for WHMCS webhooks WHMCS_WEBHOOK_SECRET= # Optional elevated admin credentials for privileged actions (eg. AcceptOrder) # Provide the admin username and MD5 hash of the admin password. # When set, the backend will use these ONLY for the AcceptOrder action. WHMCS_ADMIN_USERNAME= WHMCS_ADMIN_PASSWORD_MD5= # Salesforce Credentials SF_LOGIN_URL=https://asolutions.my.salesforce.com SF_CLIENT_ID= SF_PRIVATE_KEY_PATH=/app/secrets/sf-private.key SF_USERNAME= SF_WEBHOOK_SECRET= # Salesforce Platform Events (Provisioning) SF_EVENTS_ENABLED=true SF_PROVISION_EVENT_CHANNEL=/event/Order_Fulfilment_Requested__e SF_EVENTS_REPLAY=LATEST SF_PUBSUB_ENDPOINT=api.pubsub.salesforce.com:7443 SF_PUBSUB_NUM_REQUESTED=50 SF_PUBSUB_QUEUE_MAX=100 # Salesforce Pricing PORTAL_PRICEBOOK_ID= # Logging LOG_LEVEL=info LOG_FORMAT=json # Email (SendGrid) SENDGRID_API_KEY= EMAIL_FROM=no-reply@asolutions.jp EMAIL_FROM_NAME=Assist Solutions EMAIL_ENABLED=true EMAIL_USE_QUEUE=true SENDGRID_SANDBOX=false EMAIL_TEMPLATE_RESET= EMAIL_TEMPLATE_WELCOME= # Freebit (SIM management; optional) FREEBIT_BASE_URL=https://i1.mvno.net/emptool/api FREEBIT_OEM_ID=PASI FREEBIT_OEM_KEY= FREEBIT_TIMEOUT=30000 FREEBIT_RETRY_ATTEMPTS=3 FREEBIT_DETAILS_ENDPOINT=/master/getAcnt/ # Node Options NODE_OPTIONS=--max-old-space-size=512 # NOTE: Frontend (Next.js) uses a separate env file (portal-frontend.env) # Do not include NEXT_PUBLIC_* variables here.