Deploy KVH PULSE to my production server at adampowell.pro/pulse Server: 198.211.114.12 (Debian 10, nginx, Node.js v18.20.8) CRITICAL SETUP REQUIREMENTS: 1. Install PostgreSQL (not currently installed): - apt update && apt install -y postgresql postgresql-contrib - Create database: kvh_pulse - Create user: kvh_pulse_user with secure password - Run schema from database/schema.sql 2. Extract kvh-pulse.zip to /var/www/kvh-pulse/ 3. Server setup: - Location: /var/www/kvh-pulse/server/ - Port: 3004 (3001-3003 already in use) - Install dependencies: npm install - Create .env with PostgreSQL credentials, JWT secrets, CORS_ORIGIN=https://adampowell.pro - Create systemd service: kvh-pulse.service (like existing maps.service and atlas.service) - Enable and start service 4. Client setup: - Location: /var/www/kvh-pulse/client/ - Install dependencies: npm install - Build: npm run build - Deploy to: /var/www/adampowell.pro/html/pulse/ 5. nginx configuration (add to existing adampowell.pro config): - /pulse/ → serve static files from /var/www/adampowell.pro/html/pulse/ - /pulse/api/ → proxy to http://localhost:3004/api/ - /pulse/socket.io/ → WebSocket proxy to http://localhost:3004/socket.io/ - Test and reload: nginx -t && systemctl reload nginx 6. Update client Socket.io path to '/pulse/socket.io/' in main.jsx, rebuild, redeploy 7. Create admin user in database (username: admin, password: admin123) 8. Verify: - Service running: systemctl status kvh-pulse - Port listening: netstat -tlnp | grep 3004 - Access: https://adampowell.pro/pulse/ - Login works: admin/admin123 Follow my existing server patterns (check /etc/systemd/system/atlas.service and nginx config for examples). Set proper permissions (www-data:www-data), create logs directory, ensure HIPAA security settings. After deployment, I'll change the admin password and update SYSTEM.md.