From 8b8b76324b4f1570512e695918f1266765c712e1 Mon Sep 17 00:00:00 2001 From: g0ldyy <153996346+g0ldyy@users.noreply.github.com> Date: Fri, 9 Jan 2026 23:41:56 +0100 Subject: [PATCH] feat: improve cloudflare guide --- deployment/cloudflare-cache-rules.md | 40 +++++++++++++++++++--------- 1 file changed, 27 insertions(+), 13 deletions(-) diff --git a/deployment/cloudflare-cache-rules.md b/deployment/cloudflare-cache-rules.md index 30f9a22..49fb1f8 100644 --- a/deployment/cloudflare-cache-rules.md +++ b/deployment/cloudflare-cache-rules.md @@ -1,27 +1,41 @@ # Cloudflare Configuration -To optimize performance, configure Cloudflare to offload traffic from your server. We use **Cache Rules** to cache stream results while respecting the application's cache headers. +To optimize performance, configure Cloudflare to offload traffic from your server. We use **Cache Rules** to cache responses while respecting the application's cache headers. -## 1. Public Streams (Cache Rule) -Cache public stream results. Comet controls the TTL via headers. +## 1. Streams (Cache Rule) +Cache all stream results (public and private). Comet controls the TTL via headers. -* **Rule Name**: Public Streams -* **Expression**: `(starts_with(http.request.uri.path, "/stream/"))` +* **Rule Name**: Streams +* **Expression**: `(http.request.uri.path contains "/stream/")` * **Action**: Eligible for Cache -* **Edge TTL**: Use cache-control header if present +* **Edge TTL**: Use cache-control header if present (first option) * **Browser TTL**: Respect origin * **Serve stale content while revalidating**: On -## 2. Private Streams (Cache Rule) -Cache private stream results (with user config in URL). The config is part of the URL, so each user+media combination has a unique cache key. This prevents the same user from hitting the origin repeatedly for the same content. +## 2. Configure Page (Cache Rule) +Cache the configuration page. -* **Rule Name**: Private Streams -* **Expression**: `(http.request.uri.path contains "/stream/" and not starts_with(http.request.uri.path, "/stream/"))` +* **Rule Name**: Configure Page +* **Expression**: `(http.request.uri.path eq "/configure")` * **Action**: Eligible for Cache -* **Edge TTL**: Use cache-control header if present +* **Edge TTL**: Use cache-control header if present (first option) * **Browser TTL**: Respect origin -* **Serve stale content while revalidating**: On -## 3. Tiered Cache +## 3. Manifest (Cache Rule) +Cache manifest.json responses. + +* **Rule Name**: Manifest +* **Expression**: `(ends_with(http.request.uri.path, "/manifest.json"))` +* **Action**: Eligible for Cache +* **Edge TTL**: Use cache-control header if present (first option) +* **Browser TTL**: Respect origin + +## 4. Tiered Cache Enable **Tiered Cache** in **Caching > Tiered Cache**. This minimizes requests to your origin by checking other Cloudflare datacenters first. + +## 5. Network Optimizations +In **Speed > Protocol**: + +* **HTTP/3 (QUIC)**: On (faster connections, especially on mobile) +* **0-RTT Connection Resumption**: On (reduces latency for repeat visitors)