flow / docs /deployment /huggingface.md
zbq111's picture
Upload 75 files
504b397 verified
# Hugging Face Spaces Deployment
This guide shows how to deploy OhMyCaptcha on **Hugging Face Spaces** using a Docker-based Space.
## When to choose Hugging Face Spaces
Use Hugging Face Spaces when you want:
- a simple public or private demo deployment
- a UI-driven hosting workflow
- easy secret management inside the Space settings
- a Docker-based environment without managing a VPS yourself
## 1. Prepare the repository
Make sure your repository includes:
- `Dockerfile.render`
- `main.py`
- `requirements.txt`
- the `src/` application package
For Hugging Face Spaces, the current Dockerfile can be reused as a starting point because it already installs Python dependencies and Playwright Chromium.
## 2. Create a Docker Space
In Hugging Face:
1. Create a new **Space**.
2. Choose **Docker** as the SDK.
3. Select visibility according to your needs.
4. Connect the Space to this repository or upload the project files.
## 3. Configure secrets and variables
In the Space settings, add the following secrets:
- `CLIENT_KEY`
- `CAPTCHA_API_KEY`
Add or override variables as needed:
- `CAPTCHA_BASE_URL`
- `CAPTCHA_MODEL`
- `CAPTCHA_MULTIMODAL_MODEL`
- `BROWSER_HEADLESS=true`
- `BROWSER_TIMEOUT=30`
- `SERVER_PORT=7860`
Hugging Face Spaces typically expose applications on port `7860`, so set `SERVER_PORT=7860`.
## 4. Confirm the startup command
The container should start the app with:
```bash
python main.py
```
The entrypoint already respects environment-based port configuration.
## 5. Wait for the build to finish
After the Space starts building:
- watch the build logs
- confirm dependency installation finishes successfully
- confirm Playwright Chromium installs successfully
- wait for the app to enter the running state
## 6. Validate the deployment
Once the Space is live, verify:
### Root endpoint
```bash
curl https://<your-space-subdomain>.hf.space/
```
### Health endpoint
```bash
curl https://<your-space-subdomain>.hf.space/api/v1/health
```
### Create a detector task
```bash
curl -X POST https://<your-space-subdomain>.hf.space/createTask \
-H "Content-Type: application/json" \
-d '{
"clientKey": "your-client-key",
"task": {
"type": "RecaptchaV3TaskProxyless",
"websiteURL": "https://antcpt.com/score_detector/",
"websiteKey": "6LcR_okUAAAAAPYrPe-HK_0RULO1aZM15ENyM-Mf",
"pageAction": "homepage"
}
}'
```
## Operational notes
- Hugging Face Spaces are convenient, but cold starts and resource limits can affect Playwright-based workloads.
- Browser automation can be more sensitive to shared-hosting environments than standard API-only apps.
- If you need stricter runtime control, use Render or your own infrastructure.
## Recommended usage
Hugging Face Spaces is best suited for:
- evaluation
- demos
- low-volume internal usage
- fast public documentation-linked deployment