# Server PORT=7860 NODE_ENV=production # Portal — host:port as Omada sees it (no scheme) # On HuggingFace Spaces: your-space-name.hf.space (no port) PORTAL_HOST=your-space-name.hf.space PORTAL_SCHEME=https # MySQL DB_HOST=localhost DB_PORT=3306 DB_USER=wifiuser DB_PASS=wifipass DB_NAME=wifiplatform # Hugging Face persistent storage root. Use a different value per Space. DATA_ROOT=/data/wifiplatform # Optional: first-run SQL dump to restore instead of loading schema.sql. # RESTORE_SQL_PATH=/data/wifiplatform_backup.sql # JWT JWT_SECRET=change_me_to_a_long_random_string_min_32_chars JWT_ADMIN_SECRET=change_me_admin_secret_min_32_chars # Used to encrypt tenant-owned payment provider secrets stored in the database. PAYMENT_CREDENTIAL_SECRET=change_me_payment_secret_min_32_chars # Omada Controller OMADA_URL=https://13.63.50.201:8043 OMADA_USER=Mbonea OMADA_PASS=yourpassword OMADA_OPENAPI_OMADAC_ID=your_openapi_controller_id OMADA_OPENAPI_CLIENT_ID=your_openapi_client_id OMADA_OPENAPI_CLIENT_SECRET=your_openapi_client_secret OMADA_REJECT_UNAUTHORIZED=false OMADA_SITE_REGION=Tanzania OMADA_SITE_TIMEZONE=Africa/Dar_es_Salaam OMADA_DEVICE_DEFAULT_USER=admin OMADA_DEVICE_DEFAULT_PASS=ChangeMe12345 OMADA_VOUCHER_BATCH_SIZE=100 OMADA_VOUCHER_CODE_LENGTH=6 # Optional absolute/relative path to the imported Omada voucher portal HTML OMADA_PORTAL_TEMPLATE_PATH=portal-payment-preview.html # Snippe Payments SNIPPE_API_KEY=snp_live_... SNIPPE_WEBHOOK_SECRET=whsec_... # SMS Gateway (Android SMS Gateway) SMS_GATEWAY_URL=https://your-sms-gateway.hf.space/api/3rdparty/v1/messages SMS_GATEWAY_USER=your_user SMS_GATEWAY_PASS=your_pass # Admin access token (simple bearer token for admin endpoints) ADMIN_TOKEN=change_me_strong_admin_token # Platform config PLATFORM_COMMISSION_RATE=0.05 SNIPPE_FEE_RATE=0.005 DEVICE_MONTHLY_FEE=20000 DEVICE_TRIAL_DAYS=14