SPARKNET / docs /guides /REMOTE_ACCESS_GUIDE.md
MHamdan's picture
Initial commit: SPARKNET framework
a9dc537

A newer version of the Streamlit SDK is available: 1.54.0

Upgrade

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:

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

cd /home/mhamdan/SPARKNET
conda activate agentic-ai
python -m api.main

Terminal 2 - Frontend

cd /home/mhamdan/SPARKNET/frontend
conda activate agentic-ai
npm run dev

Managing Services

View Logs

If using screen (automatic with start_services.sh):

# 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

cd /home/mhamdan/SPARKNET
bash stop_services.sh

Or manually:

# 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?

# 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?

# 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?

# On your local machine
ping 172.24.50.21

Check 4: Try curl from local machine

# On your local machine, try:
curl http://172.24.50.21:8000/api/health

Issue 2: Services Not Starting

Check Node.js:

source /home/mhamdan/miniconda3/etc/profile.d/conda.sh
conda activate agentic-ai
node --version  # Should show v24.9.0

Check Backend:

cd /home/mhamdan/SPARKNET
python -m api.main
# Look for errors in output

Check Frontend:

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:
grep -A 5 "allow_origins" /home/mhamdan/SPARKNET/api/main.py

Should include: http://172.24.50.21:3000

  1. Frontend .env.local has correct API URL:
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:

ssh -L 3000:localhost:3000 -L 8000:localhost:8000 mhamdan@172.24.50.21

Then access via:

Keep the SSH connection open while using the app.

Method 2: ngrok (For External Access)

If you want to access from anywhere:

# 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

# From your local machine
curl http://172.24.50.21:8000/api/health

Expected response:

{
  "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

# 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

# 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! πŸš€