|
# Deploying to Hugging Face Spaces |
|
|
|
This guide explains how to deploy the FastAPI backend to Hugging Face Spaces using Docker. |
|
|
|
## Prerequisites |
|
|
|
1. A Hugging Face account |
|
2. Git installed on your machine |
|
3. Docker installed (for local testing) |
|
|
|
## Steps to Deploy |
|
|
|
1. Create a new Space on Hugging Face: |
|
- Go to https://huggingface.co/spaces |
|
- Click "Create new Space" |
|
- Select "Docker" as the SDK |
|
- Choose a name for your space |
|
- Set visibility (public/private) |
|
|
|
2. Clone the new Space repository: |
|
```bash |
|
git clone https://huggingface.co/spaces/YOUR_USERNAME/YOUR_SPACE_NAME |
|
``` |
|
|
|
3. Copy the following files to the cloned repository: |
|
- `Dockerfile` |
|
- `requirements.txt` |
|
- `app/` directory |
|
- `templates/` directory |
|
- `run.py` |
|
- `tabble_new.db` |
|
|
|
4. Update your environment variables: |
|
- Go to your Space's Settings |
|
- Add any necessary environment variables |
|
- Make sure to add any sensitive information as secrets |
|
|
|
5. Commit and push your changes: |
|
```bash |
|
git add . |
|
git commit -m "Initial commit" |
|
git push |
|
``` |
|
|
|
## Local Testing |
|
|
|
Before deploying to Hugging Face, you can test locally using Docker Compose: |
|
|
|
1. Build and run the container: |
|
```bash |
|
docker-compose up --build |
|
``` |
|
|
|
2. Access the API at `http://localhost:7860` |
|
|
|
## Important Notes |
|
|
|
1. The Dockerfile uses port 7860 as required by Hugging Face Spaces |
|
2. Make sure your database is properly initialized before deployment |
|
3. Static files and images should be stored in the appropriate directories |
|
4. Any changes to the code require a new commit and push to update the Space |
|
|
|
## Monitoring |
|
|
|
- Monitor your Space's logs through the Hugging Face interface |
|
- Check the Space's metrics for usage statistics |
|
- Use the Space's terminal for debugging if needed |
|
|
|
## Troubleshooting |
|
|
|
If you encounter issues: |
|
1. Check the Space's logs for error messages |
|
2. Verify all environment variables are set correctly |
|
3. Ensure all required files are present in the repository |
|
4. Test the application locally using Docker Compose before deploying |