| # SPARKNET Deployment Architecture | |
| ## Quick Answer | |
| **For Streamlit Cloud:** Push to **GitHub only** (`git push origin main`), then reboot the app. | |
| **For Hugging Face Spaces:** Push to **Hugging Face only** (`git push hf main`). | |
| They are **independent deployments** - you choose which platform to use. | |
| --- | |
| ## Architecture Overview | |
| ``` | |
| +------------------+ +-------------------+ | |
| | Your Code | | Lytos Server | | |
| | (Local/Git) | | 172.24.50.21 | | |
| +--------+---------+ +---------+---------+ | |
| | | | |
| | | Backend API | |
| +----+----+ | (port 8000) | |
| | | | | |
| v v v | |
| +-------+ +--------+ +---------------+ | |
| |GitHub | |Hugging | | localtunnel | | |
| | | |Face | | (public URL) | | |
| +---+---+ +---+----+ +-------+-------+ | |
| | | | | |
| | | | | |
| v v | | |
| +----------+ +-----------+ | | |
| |Streamlit | |HF Spaces |<------------+ | |
| |Cloud | | | Backend calls | |
| +----------+ +-----------+ | |
| ``` | |
| --- | |
| ## Platform Comparison | |
| | Feature | Streamlit Cloud | Hugging Face Spaces | | |
| |---------|-----------------|---------------------| | |
| | **Source** | GitHub repo | HF repo (or GitHub) | | |
| | **Push command** | `git push origin main` | `git push hf main` | | |
| | **Auto-rebuild** | Yes (on push) | Yes (on push) | | |
| | **Secrets** | Dashboard > Settings > Secrets | Settings > Variables | | |
| | **Free tier** | Yes (limited resources) | Yes (limited resources) | | |
| | **Custom domain** | Premium only | Premium only | | |
| | **GPU support** | No | Yes (paid) | | |
| --- | |
| ## Your Current Setup | |
| ### Git Remotes | |
| ```bash | |
| origin -> github.com:MHHamdan/SPARKNET.git # For Streamlit Cloud | |
| hf -> hf.co:spaces/mhamdan/SPARKNET.git # For Hugging Face Spaces | |
| ``` | |
| ### Deployment URLs | |
| - **Streamlit Cloud:** `https://mhhamdan-sparknet.streamlit.app` | |
| - **Hugging Face:** `https://huggingface.co/spaces/mhamdan/SPARKNET` | |
| ### Backend (Lytos GPU Server) | |
| - **Internal:** `http://172.24.50.21:8000` | |
| - **Public (via tunnel):** `https://selfish-crab-86.loca.lt` | |
| --- | |
| ## How to Deploy | |
| ### Option 1: Streamlit Cloud (Recommended) | |
| ```bash | |
| # 1. Make changes locally | |
| # 2. Commit | |
| git add . | |
| git commit -m "Your message" | |
| # 3. Push to GitHub | |
| git push origin main | |
| # 4. Streamlit Cloud auto-rebuilds (or manually reboot in dashboard) | |
| ``` | |
| **Secrets location:** https://share.streamlit.io > Your App > Settings > Secrets | |
| ### Option 2: Hugging Face Spaces | |
| ```bash | |
| # 1. Make changes locally | |
| # 2. Commit | |
| git add . | |
| git commit -m "Your message" | |
| # 3. Push to Hugging Face | |
| git push hf main | |
| # 4. HF Spaces auto-rebuilds | |
| ``` | |
| **Secrets location:** https://huggingface.co/spaces/mhamdan/SPARKNET/settings | |
| --- | |
| ## Keeping Both in Sync | |
| If you want both platforms updated: | |
| ```bash | |
| git push origin main && git push hf main | |
| ``` | |
| Or push to both at once: | |
| ```bash | |
| git remote add all git@github.com:MHHamdan/SPARKNET.git | |
| git remote set-url --add all git@hf.co:spaces/mhamdan/SPARKNET.git | |
| git push all main | |
| ``` | |
| --- | |
| ## Backend Connection Flow | |
| ``` | |
| User Browser | |
| | | |
| v | |
| Streamlit Cloud (frontend) | |
| | | |
| | HTTP requests to BACKEND_URL | |
| v | |
| localtunnel (https://selfish-crab-86.loca.lt) | |
| | | |
| | tunnels to | |
| v | |
| Lytos Server (172.24.50.21:8000) | |
| | | |
| | processes with | |
| v | |
| PaddleOCR + Ollama + GPU | |
| ``` | |
| --- | |
| ## Required Secrets (Streamlit Cloud) | |
| ```toml | |
| [auth] | |
| password = "SPARKNET@2026" | |
| BACKEND_URL = "https://selfish-crab-86.loca.lt" | |
| GROQ_API_KEY = "your-key" | |
| HF_TOKEN = "your-token" | |
| GOOGLE_API_KEY = "your-key" | |
| OPENROUTER_API_KEY = "your-key" | |
| MISTRAL_API_KEY = "your-key" | |
| ``` | |
| --- | |
| ## Troubleshooting | |
| | Issue | Solution | | |
| |-------|----------| | |
| | Changes not appearing | Reboot app in Streamlit dashboard | | |
| | Backend connection failed | Check if localtunnel is running (`screen -r lt-tunnel`) | | |
| | Tunnel URL changed | Update `BACKEND_URL` in Streamlit secrets | | |
| | PaddleOCR warning | Normal on Streamlit Cloud - backend handles OCR | | |
| --- | |
| ## Screen Sessions on Lytos | |
| ```bash | |
| screen -ls # List sessions | |
| screen -r sparknet-backend # Attach to backend | |
| screen -r lt-tunnel # Attach to tunnel | |
| screen -r ollama # Attach to Ollama | |
| ``` | |