diff --git a/docs/index.html b/docs/index.html index d76d43b..a1cc075 100644 --- a/docs/index.html +++ b/docs/index.html @@ -923,7 +923,8 @@ bucket_name = "kill-the-news-attachments"

Via Cloudflare Dashboard

-

Go to Security → WAF → Rate limiting rules and create one rule per endpoint below.

+

Go to Security → Security rules, click Create rule, choose Rate limiting rule, and create one rule per endpoint below.

+

⚠️ Free tier limitations: only 1 rate limiting rule allowed; period and block duration capped at 10 seconds. Prioritise the /api/inbound rule — it's the public-facing attack surface. Upgrade to a paid plan for full coverage.

Terraform
@@ -937,26 +938,30 @@ bucket_name = "kill-the-news-attachments"
WAF rules
- + - + + + - + + +
EndpointConditionLimitAction
EndpointCondition (URI Path)Limit (recommended)Limit (free tier)Action (recommended)Action (free tier)
/api/inboundURI path = /api/inbound, method = POSTwildcard /api/inbound/* 60 req / min / IP10 req / 10 s / IP Block (1 min)Block (10 s)
/admin*URI path starts with /adminwildcard /admin/* 20 req / min / IP20 req / 10 s / IP Managed Challenge (5 min)Managed Challenge (10 s)
-

Terraform equivalent:

+

Terraform equivalent (supports method filtering and longer periods — requires a paid Cloudflare plan):

main.tf
resource "cloudflare_ruleset" "rate_limiting" {