| # Deployment Guide: Hugging Face Spaces | |
| This guide will help you deploy your **Prism** application to Hugging Face Spaces using Docker. | |
| ## Prerequisites | |
| 1. A [Hugging Face account](https://huggingface.co/join). | |
| 2. Git installed on your computer. | |
| ## Step 1: Create a New Space | |
| 1. Go to [huggingface.co/new-space](https://huggingface.co/new-space). | |
| 2. **Space Name**: Enter a name (e.g., `prism-classifier`). | |
| 3. **License**: Choose a license (e.g., MIT) or leave blank. | |
| 4. **SDK**: Select **Docker**. | |
| 5. **Space Hardware**: Select **CPU Basic (Free)** (or upgrade if you need more power for AI models). | |
| 6. **Visibility**: Public or Private. | |
| 7. Click **Create Space**. | |
| ## Step 2: Setup Git for Deployment | |
| You need to link your local project to the Hugging Face Space. | |
| 1. Open your terminal in the project root (`d:\My Stuff\Coding Projects\Prism`). | |
| 2. Initialize Git (if not already done): | |
| ```bash | |
| git init | |
| ``` | |
| 3. Add the Hugging Face remote (replace `YOUR_USERNAME` and `SPACE_NAME`): | |
| ```bash | |
| git remote add space https://huggingface.co/spaces/YOUR_USERNAME/SPACE_NAME | |
| ``` | |
| ## Step 3: Prepare Files (Already Done!) | |
| I have already configured the necessary files for you: | |
| * **`Dockerfile`**: Builds the React frontend and sets up the Python backend. | |
| * **`app.py`**: Configured to run on port 7860 (required by HF Spaces). | |
| * **`requirements.txt`**: Lists all Python dependencies. | |
| ## Step 4: Deploy | |
| To deploy, simply commit your changes and push to the `space` remote. | |
| 1. **Add files**: | |
| ```bash | |
| git add . | |
| ``` | |
| 2. **Commit**: | |
| ```bash | |
| git commit -m "Initial deploy to Hugging Face" | |
| ``` | |
| 3. **Push**: | |
| ```bash | |
| git push space master:main | |
| ``` | |
| *(Note: HF Spaces usually use `main` branch. If your local branch is `master`, use `master:main`. If local is `main`, just `git push space main`)*. | |
| > **IMPORTANT: Authentication** | |
| > When asked for your **Username**, enter your Hugging Face username. | |
| > When asked for your **Password**, you MUST enter an **Access Token**, not your account password. | |
| > | |
| > **How to get a Token:** | |
| > 1. Go to [huggingface.co/settings/tokens](https://huggingface.co/settings/tokens). | |
| > 2. Click **Create new token**. | |
| > 3. Type: **Write**. Name: "Deploy". | |
| > 4. Copy the token (starts with `hf_...`). | |
| > 5. Paste this token when the terminal asks for your password. | |
| > | |
| > **Troubleshooting: "Updates were rejected"** | |
| > If you see an error saying "Updates were rejected", it means your Space already has a `README.md` that you don't have locally. | |
| > For the **first push only**, you can force overwrite it: | |
| > ```bash | |
| > git push --force space master:main | |
| > ``` | |
| > | |
| > **Troubleshooting: "File larger than 10MB"** | |
| > If you see an error about `static/background.mp3` being too large, you need **Git LFS**: | |
| > ```bash | |
| > git lfs install | |
| > git lfs track "static/background.mp3" | |
| > git add .gitattributes | |
| > git commit --amend --no-edit | |
| > git push --force space master:main | |
| > ``` | |
| ## Step 5: Future Updates | |
| To reflect future changes on the live site: | |
| 1. Make your changes in the code. | |
| 2. Run: | |
| ```bash | |
| git add . | |
| git commit -m "Update description" | |
| git push space master:main | |
| ``` | |
| The Space will automatically rebuild and update! | |
| ## Troubleshooting | |
| * **Build Failures**: Check the "Logs" tab in your Hugging Face Space to see why the build failed. | |
| * **Large Files**: If you have large model files (>10MB), you might need to use `git lfs`. However, your models seem to be downloaded at runtime, so this shouldn't be an issue. | |