| # SPARKNET Remote Access Guide | |
| ## Problem Solved ✅ | |
| Your SPARKNET frontend and backend are running on a remote server, and you need to access them from your local browser. | |
| ## Solution Applied | |
| I've configured both services to bind to all network interfaces (0.0.0.0) so they're accessible from your local machine. | |
| --- | |
| ## Your Server IP Address | |
| ``` | |
| 172.24.50.21 | |
| ``` | |
| --- | |
| ## Quick Start (Easiest Method) | |
| ### Step 1: Start Services | |
| On your **remote server**, run: | |
| ```bash | |
| cd /home/mhamdan/SPARKNET | |
| bash start_services.sh | |
| ``` | |
| This will start both backend and frontend in the background. | |
| ### Step 2: Access from Local Browser | |
| On your **local computer**, open your browser and go to: | |
| ``` | |
| http://172.24.50.21:3000 | |
| ``` | |
| That's it! 🎉 | |
| --- | |
| ## URLs Reference | |
| | Service | URL | Description | | |
| |---------|-----|-------------| | |
| | **Frontend** | http://172.24.50.21:3000 | Main SPARKNET UI | | |
| | **Backend API** | http://172.24.50.21:8000 | API endpoints | | |
| | **API Docs** | http://172.24.50.21:8000/api/docs | Interactive API documentation | | |
| | **Health Check** | http://172.24.50.21:8000/api/health | Backend health status | | |
| --- | |
| ## Manual Start (Alternative) | |
| If you prefer to start services manually: | |
| ### Terminal 1 - Backend | |
| ```bash | |
| cd /home/mhamdan/SPARKNET | |
| conda activate agentic-ai | |
| python -m api.main | |
| ``` | |
| ### Terminal 2 - Frontend | |
| ```bash | |
| cd /home/mhamdan/SPARKNET/frontend | |
| conda activate agentic-ai | |
| npm run dev | |
| ``` | |
| --- | |
| ## Managing Services | |
| ### View Logs | |
| If using screen (automatic with start_services.sh): | |
| ```bash | |
| # View backend logs | |
| screen -r sparknet-backend | |
| # View frontend logs | |
| screen -r sparknet-frontend | |
| # Detach from screen (keeps it running) | |
| Press: Ctrl+A then D | |
| ``` | |
| ### Stop Services | |
| ```bash | |
| cd /home/mhamdan/SPARKNET | |
| bash stop_services.sh | |
| ``` | |
| Or manually: | |
| ```bash | |
| # Stop backend screen | |
| screen -S sparknet-backend -X quit | |
| # Stop frontend screen | |
| screen -S sparknet-frontend -X quit | |
| ``` | |
| --- | |
| ## Troubleshooting | |
| ### Issue 1: Cannot Access from Local Browser | |
| **Check 1**: Are services running? | |
| ```bash | |
| # Check if ports are open | |
| ss -tlnp | grep -E ':(3000|8000)' | |
| ``` | |
| You should see: | |
| ``` | |
| tcp LISTEN 0.0.0.0:3000 (frontend) | |
| tcp LISTEN 0.0.0.0:8000 (backend) | |
| ``` | |
| **Check 2**: Firewall blocking? | |
| ```bash | |
| # Check firewall status | |
| sudo ufw status | |
| # If firewall is active, allow ports | |
| sudo ufw allow 3000 | |
| sudo ufw allow 8000 | |
| ``` | |
| **Check 3**: Can you ping the server? | |
| ```bash | |
| # On your local machine | |
| ping 172.24.50.21 | |
| ``` | |
| **Check 4**: Try curl from local machine | |
| ```bash | |
| # On your local machine, try: | |
| curl http://172.24.50.21:8000/api/health | |
| ``` | |
| ### Issue 2: Services Not Starting | |
| **Check Node.js**: | |
| ```bash | |
| source /home/mhamdan/miniconda3/etc/profile.d/conda.sh | |
| conda activate agentic-ai | |
| node --version # Should show v24.9.0 | |
| ``` | |
| **Check Backend**: | |
| ```bash | |
| cd /home/mhamdan/SPARKNET | |
| python -m api.main | |
| # Look for errors in output | |
| ``` | |
| **Check Frontend**: | |
| ```bash | |
| cd /home/mhamdan/SPARKNET/frontend | |
| npm run dev | |
| # Look for errors in output | |
| ``` | |
| ### Issue 3: CORS Errors | |
| If you see CORS errors in browser console, verify: | |
| 1. Backend CORS settings include your IP: | |
| ```bash | |
| grep -A 5 "allow_origins" /home/mhamdan/SPARKNET/api/main.py | |
| ``` | |
| Should include: `http://172.24.50.21:3000` | |
| 2. Frontend .env.local has correct API URL: | |
| ```bash | |
| cat /home/mhamdan/SPARKNET/frontend/.env.local | |
| ``` | |
| Should show: `NEXT_PUBLIC_API_URL=http://172.24.50.21:8000` | |
| --- | |
| ## Network Configuration Summary | |
| ### What Was Changed | |
| 1. **Frontend (Next.js)**: | |
| - Changed bind address from `localhost` to `0.0.0.0` | |
| - Updated `.env.local` to use server IP instead of localhost | |
| - Modified `package.json` scripts to use `-H 0.0.0.0` | |
| 2. **Backend (FastAPI)**: | |
| - Already binding to `0.0.0.0` (no change needed) | |
| - Added server IP to CORS allowed origins | |
| - Ports: Backend on 8000, Frontend on 3000 | |
| --- | |
| ## Alternative Access Methods | |
| ### Method 1: SSH Port Forwarding (If Direct Access Doesn't Work) | |
| On your **local machine**, create an SSH tunnel: | |
| ```bash | |
| ssh -L 3000:localhost:3000 -L 8000:localhost:8000 mhamdan@172.24.50.21 | |
| ``` | |
| Then access via: | |
| - Frontend: http://localhost:3000 | |
| - Backend: http://localhost:8000 | |
| Keep the SSH connection open while using the app. | |
| ### Method 2: ngrok (For External Access) | |
| If you want to access from anywhere: | |
| ```bash | |
| # Install ngrok | |
| curl -s https://ngrok-agent.s3.amazonaws.com/ngrok.asc | sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null | |
| echo "deb https://ngrok-agent.s3.amazonaws.com buster main" | sudo tee /etc/apt/sources.list.d/ngrok.list | |
| sudo apt update && sudo apt install ngrok | |
| # Start tunnels (in separate terminals) | |
| ngrok http 3000 # Frontend | |
| ngrok http 8000 # Backend | |
| ``` | |
| --- | |
| ## Testing the Application | |
| ### 1. Test Backend API | |
| ```bash | |
| # From your local machine | |
| curl http://172.24.50.21:8000/api/health | |
| ``` | |
| Expected response: | |
| ```json | |
| { | |
| "status": "healthy", | |
| "components": { ... }, | |
| "statistics": { ... } | |
| } | |
| ``` | |
| ### 2. Test Frontend | |
| Open browser to: http://172.24.50.21:3000 | |
| You should see: | |
| - Beautiful landing page with gradient SPARKNET logo | |
| - "Transform Dormant Patents..." heading | |
| - Features showcase | |
| - "Start Patent Analysis" button | |
| ### 3. Test Full Workflow | |
| 1. Click "Start Patent Analysis" or go to http://172.24.50.21:3000/upload | |
| 2. Drag-and-drop a PDF from your Dataset/ | |
| 3. Watch real-time progress at http://172.24.50.21:3000/workflow/{id} | |
| 4. View results at http://172.24.50.21:3000/results/{id} | |
| --- | |
| ## Performance Notes | |
| ### Expected Speed | |
| - Frontend load: < 1 second | |
| - API response: < 100ms | |
| - WebSocket latency: < 50ms | |
| - Patent analysis: 2-5 minutes | |
| ### Network Requirements | |
| - Minimum bandwidth: 1 Mbps | |
| - Recommended: 10+ Mbps for smooth experience | |
| - Stable connection for WebSocket real-time updates | |
| --- | |
| ## Security Notes | |
| ### Current Setup (Development) | |
| - ⚠️ No authentication | |
| - ⚠️ HTTP (not HTTPS) | |
| - ⚠️ No rate limiting | |
| - ✅ CORS configured for specific origins | |
| - ✅ File validation (PDF only, max 50MB) | |
| - ✅ Input sanitization | |
| ### For Production | |
| Consider adding: | |
| - HTTPS/SSL certificates | |
| - JWT authentication | |
| - Rate limiting | |
| - API keys | |
| - Firewall rules limiting access | |
| --- | |
| ## Quick Commands Reference | |
| ```bash | |
| # Start everything | |
| cd /home/mhamdan/SPARKNET && bash start_services.sh | |
| # Stop everything | |
| cd /home/mhamdan/SPARKNET && bash stop_services.sh | |
| # View backend logs | |
| screen -r sparknet-backend | |
| # View frontend logs | |
| screen -r sparknet-frontend | |
| # Check if running | |
| ss -tlnp | grep -E ':(3000|8000)' | |
| # Test backend | |
| curl http://172.24.50.21:8000/api/health | |
| # Test frontend | |
| curl http://172.24.50.21:3000 | |
| ``` | |
| --- | |
| ## Success Checklist | |
| - [ ] Services started with `bash start_services.sh` | |
| - [ ] Can access http://172.24.50.21:8000/api/health from local browser | |
| - [ ] Can access http://172.24.50.21:3000 from local browser | |
| - [ ] Landing page loads correctly | |
| - [ ] Can upload a patent PDF | |
| - [ ] Real-time progress updates work | |
| - [ ] Results display correctly | |
| - [ ] Can download valorization brief | |
| --- | |
| ## Need Help? | |
| ### Check Logs | |
| ```bash | |
| # Backend logs | |
| screen -r sparknet-backend | |
| # Frontend logs | |
| screen -r sparknet-frontend | |
| # System logs | |
| journalctl -xe | |
| ``` | |
| ### Common Issues | |
| 1. **Connection Refused**: Services not running or firewall blocking | |
| 2. **CORS Error**: Check CORS configuration in backend | |
| 3. **404 Error**: Wrong URL or service not started | |
| 4. **Slow Loading**: Network congestion or server resources | |
| --- | |
| ## Summary | |
| **Your SPARKNET application is now accessible from your local browser!** | |
| Simply open: **http://172.24.50.21:3000** | |
| The frontend will automatically connect to the backend API at http://172.24.50.21:8000 for all operations including: | |
| - Patent upload | |
| - Workflow execution | |
| - Real-time WebSocket updates | |
| - Results retrieval | |
| - PDF download | |
| Enjoy your beautiful SPARKNET interface! 🚀 | |