ChatSmith_3 / deployment_guide.md
umer6016
Fix Supabase logging: require ENABLE_METRICS_LOGGING env var
49462f7
# Deploying Chatsmith to Hugging Face Spaces
This guide explains how to deploy your Chatsmith application (React Frontend + FastAPI Backend) to Hugging Face Spaces for free.
## Prerequisites
- A [Hugging Face](https://huggingface.co/) account.
## Steps
### 1. Create a New Space
1. Go to [Hugging Face Spaces](https://huggingface.co/spaces) and click **Create new Space**.
2. **Space Name**: Enter a name (e.g., `chatsmith-app`).
3. **License**: Choose one (e.g., `MIT`).
4. **SDK**: Select **Docker**.
5. **Template**: Select **Blank**.
6. **Visibility**: Public or Private.
7. Click **Create Space**.
### 2. Configure Secrets (Environment Variables)
Your app needs OpenAI and Supabase keys.
1. In your Space, go to **Settings**.
2. Scroll to the **Variables and secrets** section.
3. Click **New secret** and add the following (copy from your local `.env` file):
- `OPENAI_API_KEY`
- `SUPABASE_URL`
- `SUPABASE_ANON_KEY`
- `ENABLE_METRICS_LOGGING` (Set to `true` to enable Supabase logging)
### 3. Upload Code
You can upload files via the web interface or use Git. Since you have the code locally:
#### Option A: Drag and Drop (Easiest for one-off)
1. Go to the **Files** tab of your Space.
2. Click **Add file** -> **Upload files**.
3. Open your local `chatsmith-main` folder.
4. Select **all files inside** (backend, frontend, Dockerfile, etc.).
5. Drag and drop them into the web interface.
- **Important**: Do NOT drag the `chatsmith-main` folder itself. Drag the *contents*.
- *Tip: You can skip the `node_modules` folder if it exists, as it will be recreated by Docker.*
6. Commit the changes.
#### Option B: Git (Recommended)
1. In your local terminal, initialize git if not already:
```bash
git init
git add .
git commit -m "Initial commit"
```
2. Add the Hugging Face remote (find the command in your Space's "Clone repository" button):
```bash
git remote add space https://huggingface.co/spaces/YOUR_USERNAME/SPACE_NAME
```
3. Push to the Space:
```bash
git push --force space master:main
```
*Note: If asked for a password, you must use a **Hugging Face Access Token** with `write` permissions (Settings -> Access Tokens), NOT your account password.*
**Authentication Helper (if needed):**
```bash
git config --global credential.helper store
```
### 4. Wait for Build
- Once files are uploaded, Hugging Face will automatically detect the `Dockerfile` and start building.
- Click the **App** tab to see the build logs.
- It may take a few minutes to build the frontend and install Python dependencies.
- Once "Running", your app will be live!
## Troubleshooting
- **Build Failed**: Check the logs in the App tab.
- **Runtime Error**: Ensure your Secrets are set correctly in the Settings tab.