| # Hugging Face Space Deployment Guidelines & Best Practices |
|
|
| ## 1. Deployment Configuration |
|
|
| ### Target Space |
| - **Profile:** `Leon4gr45` |
| - **Space:** `builder` |
| - **Full Identifier:** `Leon4gr45/builder` |
| - **Frontend Port:** `7860` (mandatory for all Hugging Face Spaces) |
|
|
| ### Deployment Method |
| We use the **Docker SDK** for flexibility, utilizing a standard `Dockerfile` configured to run Next.js standalone on port `7860`. |
|
|
| ### HF Token |
| - The token is read from the environment variable (never hardcode it). |
|
|
| ### Required Files |
| - `Dockerfile` (binds the app to port `7860`) |
| - `README.md` (includes Hugging Face YAML frontmatter) |
| - `.hfignore` (excludes unnecessary files to prevent repository limit issues) |
| - `Agent.md` (this file, detailing current practices) |
|
|
| --- |
|
|
| ## 2. API Exposure and Documentation |
|
|
| ### Mandatory Endpoints |
| The following endpoints must be accessible publicly without any redirection/authentication block (configured in Next.js middleware): |
|
|
| - **`/health`** |
| - **Method:** GET |
| - **Purpose:** Health check returning HTTP 200 once Next.js server is ready. Necessary for Hugging Face to transition the Space status to *running*. |
| - **Response:** |
| ```json |
| { |
| "ok": true, |
| "name": "osw-studio", |
| "version": "1.84.0", |
| "mode": "browser", |
| "timestamp": "2026-07-16T12:00:00.000Z" |
| } |
| ``` |
| |
| - **`/api-docs`** |
| - **Method:** GET |
| - **Purpose:** Serve documentation or routes specification of the available APIs. |
| - **Response:** JSON list of the endpoints. |
|
|
| ### Functional Endpoints |
|
|
| All the available functional endpoints listed in `/health` under the endpoint groups (like `auth`, `public`, `analytics`, etc.) are supported. |
|
|
| --- |
|
|
| ## 3. Tricks & Troubleshooting |
|
|
| - **Large Upload / Storage Limit (Max: 1 GB):** |
| - Since standard `hf upload` without exclusions attempts to scan/upload local `node_modules` and `.next` build files, it can hit the 1 GB storage limit or fail on string limit in JS wrapper. |
| - **Fix:** Always explicitly set up `.hfignore` or use `--exclude` to ignore large local directories such as `node_modules/*`, `.next/*`, `.git/*`. |
| - Deployment Command: |
| ```bash |
| hf upload Leon4gr45/builder . --repo-type=space --token=$HF_TOKEN --exclude="node_modules/*" --exclude=".next/*" --exclude=".git/*" |
| ``` |
| |
| - **Middleware Matcher Exclusion:** |
| - Standard Next.js matcher should explicitly allow `/health` and `/api-docs` so Hugging Face load balancers can reach them without running into authentication loops/redirects. |
|
|
| # Force rebuild comment 1 |
|
|