Add FlareSolverr for Cloudflare challenges on Prowlarr indexers

Provides a browser proxy on arr-net so indexers behind Cloudflare JS
challenges can work; document limits (not a universal captcha solver).
This commit is contained in:
tim 2026-07-22 07:40:41 -07:00
parent 84902d5cb5
commit 38eaa43d04
4 changed files with 31 additions and 0 deletions

View file

@ -65,6 +65,10 @@ OPENHANDS_PORT=3001
# LiteLLM-style id; after first start check http://host:8081/v1/models # LiteLLM-style id; after first start check http://host:8081/v1/models
OPENHANDS_MODEL=openai/local OPENHANDS_MODEL=openai/local
# FlareSolverr (Cloudflare helper for Prowlarr; internal only)
FLARESOLVERR_LOG_LEVEL=info
FLARESOLVERR_CAPTCHA_SOLVER=none
# Forgejo — self-hosted Git (web + SSH clone) # Forgejo — self-hosted Git (web + SSH clone)
FORGEJO_HTTP_PORT=3002 FORGEJO_HTTP_PORT=3002
FORGEJO_SSH_PORT=2222 FORGEJO_SSH_PORT=2222

View file

@ -12,6 +12,7 @@ for the **Beelink SER5 PRO** (Ryzen 7 7735HS + Radeon 680M).
| Jellyfin | http://host:8096 | Media server / playback | | Jellyfin | http://host:8096 | Media server / playback |
| qBittorrent | http://host:8080 | Torrent client (VPN-only) | | qBittorrent | http://host:8080 | Torrent client (VPN-only) |
| Prowlarr | http://host:9696 | Indexer manager | | Prowlarr | http://host:9696 | Indexer manager |
| FlareSolverr| (internal :8191) | Cloudflare proxy for indexers |
| Sonarr | http://host:8989 | TV shows | | Sonarr | http://host:8989 | TV shows |
| Radarr | http://host:7878 | Movies | | Radarr | http://host:7878 | Movies |
| Bazarr | http://host:6767 | Subtitles | | Bazarr | http://host:6767 | Subtitles |

View file

@ -94,6 +94,24 @@ services:
TZ: ${TZ} TZ: ${TZ}
volumes: volumes:
- ${CONFIG_DIR}/prowlarr:/config - ${CONFIG_DIR}/prowlarr:/config
depends_on:
- flaresolverr
# Cloudflare / JS challenge proxy for Prowlarr indexers (not a general captcha solver)
# Wire in Prowlarr: Settings → Indexers → FlareSolverr → http://flaresolverr:8191
flaresolverr:
image: ghcr.io/flaresolverr/flaresolverr:latest
container_name: flaresolverr
restart: unless-stopped
networks: [arr-net]
environment:
LOG_LEVEL: ${FLARESOLVERR_LOG_LEVEL:-info}
LOG_HTML: "false"
CAPTCHA_SOLVER: ${FLARESOLVERR_CAPTCHA_SOLVER:-none}
TZ: ${TZ}
# Optional LAN debug UI/API — leave commented to keep it internal-only
# ports:
# - "8191:8191"
# -------------------------------------------------------------------- TV # # -------------------------------------------------------------------- TV #
sonarr: sonarr:

View file

@ -91,6 +91,14 @@ Root folders: `/data/media/tv`, `/data/media/movies`, `/data/media/music` (hardl
**Prowlarr** — Add indexers. Apps: Sonarr `http://sonarr:8989`, Radarr `http://radarr:7878`, Lidarr `http://lidarr:8686` + each API key (*Settings → General*). **Prowlarr** — Add indexers. Apps: Sonarr `http://sonarr:8989`, Radarr `http://radarr:7878`, Lidarr `http://lidarr:8686` + each API key (*Settings → General*).
**FlareSolverr** (Cloudflare / JS challenges for some indexers) — container `flaresolverr` on `arr-net`, no public port by default.
Prowlarr → **Settings → Indexers** (or **Settings → Connect** / FlareSolverr section depending on version) → add FlareSolverr host:
- Host: `http://flaresolverr:8191`
- Then enable FlareSolverr on indexers that show Cloudflare errors.
Does **not** solve every captcha (Turnstile/hCaptcha image puzzles, etc.). Prefer indexers without CF; paid APIs (2captcha / CapSolver) are optional external services, not a free self-hosted magic box.
**Bazarr** — Sonarr/Radarr URLs + API keys; paths `/data/media/tv`, `/data/media/movies`. **Bazarr** — Sonarr/Radarr URLs + API keys; paths `/data/media/tv`, `/data/media/movies`.
**Jellyfin** — Libraries: Movies `/data/media/movies`, Shows `/data/media/tv`, Music `/data/media/music`. **Jellyfin** — Libraries: Movies `/data/media/movies`, Shows `/data/media/tv`, Music `/data/media/music`.