Decision. A dedicated challenge-solving proxy
Alternative. Bypassing or dropping protected indexers
Why. Several useful indexers sit behind Cloudflare; the proxy keeps them reachable without fragile per-app hacks.
Solves Cloudflare challenges so Prowlarr can reach protected indexers
FlareSolverr solves Cloudflare challenges on behalf of Prowlarr when an indexer is protected.
templates/flaresolverr/flaresolverr-rollout.yaml FlareSolverr Rollout
{{- $projectName := .Values.global.projectName }}
{{- $imagePullSecretsName := .Values.global.imagePullSecretsName }}
{{- $timeZone := .Values.global.timeZone -}}
{{- $userID := .Values.global.userID -}}
{{- with .Values.applications.flaresolverr }}
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
name: {{ .name }}
namespace: {{ $projectName }}
spec:
replicas: 1
strategy:
canary:
maxSurge: 0
maxUnavailable: 1
steps:
- setWeight: 100
selector:
matchLabels:
app: {{ .name }}
template:
metadata:
labels:
app: {{ .name }}
spec:
{{- include "media-systems.nodePlacement" $ | nindent 6 }}
serviceAccount: {{ $projectName }}-service-account
serviceAccountName: {{ $projectName }}-service-account
automountServiceAccountToken: true
containers:
- name: {{ .name }}
image: {{ .image }}
imagePullPolicy: IfNotPresent
ports:
- name: {{ .name | substr 0 9 }}-http
containerPort: {{ .ports.http }}
protocol: TCP
env:
- name: PGID
value: {{ $userID | quote }}
- name: PUID
value: {{ $userID | quote }}
- name: TZ
value: {{ $timeZone | quote }}
- name: LOG_LEVEL
value: {{ .logLevel | quote }}
- name: LOG_HTML
value: {{ .logHtml | quote }}
- name: CAPTCHA_SOLVER
value: {{ .captchaSolver | quote }}
resources: {}
dnsPolicy: ClusterFirst
restartPolicy: Always
schedulerName: default-scheduler
{{- end -}} Decision. A dedicated challenge-solving proxy
Alternative. Bypassing or dropping protected indexers
Why. Several useful indexers sit behind Cloudflare; the proxy keeps them reachable without fragile per-app hacks.