PRISM2.0 / deployment_guide.md
devranx's picture
Initial deploy with LFS images and audio
d790e98
# 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.