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