BacSense-API / DEPLOYMENT.md
joytheslothh's picture
Fix deployment: add startup script, env config, routing fixes, and reorganize classifier service
0cc2bd2

🦠 BacSense v2 - Hugging Face Deployment Guide

Current Status

  • Frontend: Deployed on Vercel ✅
  • Backend: Deployed on Hugging Face Spaces (Docker) ⚠️

Issue Diagnosis

The "Not Found" error on Hugging Face typically means:

  1. The server isn't starting properly
  2. The port configuration is incorrect
  3. Model files aren't being found during initialization

Solution Implemented

1. Updated Dockerfile

  • Added better debugging with startup script
  • Configured proper environment variables for Hugging Face
  • Added curl for health checks

2. Added Startup Script (start.sh)

  • Shows directory contents on startup
  • Verifies model files are present
  • Starts uvicorn server with proper configuration

3. API Configuration

  • Root endpoint (/) now shows a welcome page
  • Health check available at /health
  • Debug endpoint at /debug_model to diagnose issues
  • API documentation at /docs

How to Deploy

Step 1: Push to Hugging Face

cd "e:\1-Antigravity Python\Bacsense 2.0\BacSense-API"
git add .
git commit -m "Fix deployment: add startup script and debugging"
git push origin main

Step 2: Check Deployment Logs

  1. Go to your Hugging Face Space: https://huggingface.co/spaces/joytheslothh/BacSense-API
  2. Click on "Logs" tab
  3. Watch the startup logs to see if:
    • All dependencies install successfully
    • Model files are found
    • Server starts on port 7860

Step 3: Test Endpoints

Once deployed, test these endpoints:

Health Check:

https://joytheslothh-bacsense-api.hf.space/health

API Documentation:

https://joytheslothh-bacsense-api.hf.space/docs

Debug Model:

https://joytheslothh-bacsense-api.hf.space/debug_model

Frontend Configuration (Vercel)

Update your frontend API URL in Vercel to point to:

https://joytheslothh-bacsense-api.hf.space

Or in your frontend code, update the API base URL:

// In your React code
const API_URL = "https://joytheslothh-bacsense-api.hf.space";

Troubleshooting

If you still see "Not Found":

  1. Check the logs - Look for import errors or missing files
  2. Verify model loading - Visit /debug_model endpoint
  3. Test locally - Run docker build -t bacsense . and docker run -p 7860:7860 bacsense

Common Issues:

TensorFlow Import Error:

  • Ensure all requirements are installed
  • Check if TensorFlow CPU version is compatible

Model Files Not Found:

  • Verify bacsense_v2_package folder exists in the repo
  • Check that .keras and .pkl files are tracked by Git LFS

Port Binding Issue:

  • Hugging Face expects port 7860
  • Server must bind to 0.0.0.0 not localhost

Alternative: Streamlit-Only Deployment

If FastAPI continues to have issues, you can deploy as a pure Streamlit app:

  1. Rename app.py to streamlit_app.py
  2. Update Dockerfile CMD to: CMD ["streamlit", "run", "streamlit_app.py"]

This gives you the dashboard without the separate API backend.