CPANEL QUICK SETUP 1. Create a subdomain, for example pi.yourdomain.com 2. Upload the project ZIP and extract it 3. Go to cPanel > Setup Node.js App 4. Create application: - Node version: choose server-supported stable version - Application mode: Production - Application root: pi-healthcare-production/backend - Application URL: pi.yourdomain.com - If your cPanel does not ask for a startup file, create backend/app.js with: require('./server'); 5. Add environment variables from backend/.env.example 6. Open Terminal in cPanel 7. Run: cd ~/pi-healthcare-production/backend npm install 8. Restart the Node app in cPanel 9. Test: https://pi.yourdomain.com/api/health 10. Visit: https://pi.yourdomain.com/ https://pi.yourdomain.com/admin 11. Register the same URL in Pi Developer Portal Add this environment variable in cPanel Node.js App settings: COINGECKO_PI_PRICE_API=https://api.coingecko.com/api/v3/simple/price?vs_currencies=usd&ids=pi-network&x_cg_demo_api_key=YOUR_KEY Optional compatibility env vars: APP_URL=https://your-pi-app-domain.com APP_BASE_URL=https://your-pi-app-domain.com FRONTEND_URL=https://your-pi-app-domain.com VdoCipher note: the app now sends a minimal OTP request by default (ttl + userId). To re-enable dynamic watermark annotation later, set VDOCIPHER_ENABLE_ANNOTATE=true in backend/.env. MySQL / MariaDB setup - Create a cPanel MySQL or MariaDB database and user. - Add these environment variables in Application Manager: DB_HOST, DB_PORT, DB_NAME, DB_USER, DB_PASSWORD. - The app now stores its state in MySQL/MariaDB table `app_state` by default and will auto-create that table on first run. - If backend/data/db.json exists and the database table is empty, the app imports that JSON into MySQL/MariaDB automatically on first boot.