"The only analytics dashboard I open every day"

Proxy DataEasy with a Cloudflare Worker

Create a Worker with the code below and add a route for yourdomain.com/de/* in Workers Routes.

worker.js
const SCRIPT = "https://dataeasy.app/js/script.js";
const EVENTS = "https://dataeasy.app/api/events";

export default {
  async fetch(request, env, ctx) {
    const url = new URL(request.url);

    if (url.pathname === "/de/js/script.js") {
      const cache = caches.default;
      let response = await cache.match(request);
      if (!response) {
        response = await fetch(SCRIPT);
        response = new Response(response.body, response);
        response.headers.set("Cache-Control", "public, max-age=3600");
        ctx.waitUntil(cache.put(request, response.clone()));
      }
      return response;
    }

    if (url.pathname === "/de/api/events" && request.method === "POST") {
      const headers = new Headers(request.headers);
      headers.set("X-Forwarded-For", request.headers.get("CF-Connecting-IP") ?? "");
      return fetch(EVENTS, { method: "POST", headers, body: request.body });
    }

    return fetch(request);
  },
};

Update the script tag:

<script
  defer
  data-website-id="YOUR_WEBSITE_ID"
  data-domain="yourdomain.com"
  data-api-url="/de/api/events"
  src="/de/js/script.js"
></script>

✍️ Something missing? Tell us.

🧭 New to DataEasy? Start with the introduction