feat: integrate FlareSolverr for Cloudflare bypass on clone sources
CI / check (push) Successful in 23s
CI / release (push) Skipped
CI / deploy (push) Successful in 46s

- Add FLARESOLVERR_URL env var to .env.example
- Update fetchSourceFurnidata to fall back to FlareSolverr on CF challenges (403/HTML)
- Add docker-compose.yml with FlareSolverr service
- Add scripts/health-check.sh for FlareSolverr readiness check
- Add health:check script to package.json
- Document FlareSolverr setup in README
This commit is contained in:
openhands committed 2026-08-04 19:00:30 +02:00
1 parent 2e87e5bf09
commit 3edc987281
7 files changed
+125 -6

No files matched your search

+20
View File
@@ -514,6 +514,26 @@ Supports Cloudflare Turnstile and Google reCAPTCHA. Configure via CMS Settings.
Optional OpenAI-powered moderation for comments and guestbook posts. Set `OPENAI_API_KEY`.
### FlareSolverr (Cloudflare Bypass)
Some clone sources (e.g. Leet, Hubbly, Habblet City) are protected by Cloudflare and return challenge pages instead of JSON. FlareSolverr acts as a proxy that solves these challenges automatically.
**Setup:**
```bash
docker compose up -d flaresolverr
```
Set the URL in `.env`:
```
FLARESOLVERR_URL=http://localhost:8191
```
When a source URL returns a 403 or HTML (CF challenge), the clone import automatically falls back to FlareSolverr. If FlareSolverr is not running or is unreachable, the source is skipped with a warning.
See `docker-compose.yml` for the FlareSolverr service definition.
---
## Development