feat(analytics): add Rybbit proxy rewrites and env vars
Some checks failed
Build and Deploy / build (push) Has been cancelled

- Add Next.js rewrites to proxy /api/script.js and /api/track through self-hosted Rybbit
- This bypasses ad blockers that would block rybbit.nodecrew.me directly
- Add NEXT_PUBLIC_RYBBIT_HOST and NEXT_PUBLIC_RYBBIT_SITE_ID env vars to K8s deployment
This commit is contained in:
Unchained
2026-03-31 05:17:57 +02:00
parent 511c3078c5
commit 56c05cc8fc
4 changed files with 22 additions and 6 deletions

View File

@@ -126,6 +126,10 @@ spec:
value: "91126be0d1e78e657e0427df82733832.c6d30edf6ee673da9650a883604169a13ab8579a0dde70cb39b477f4cf441f90"
- name: OPENPANEL_API_URL
value: "https://op.nodecrew.me/api"
- name: NEXT_PUBLIC_RYBBIT_HOST
value: "https://rybbit.nodecrew.me"
- name: NEXT_PUBLIC_RYBBIT_SITE_ID
value: "1"
resources:
limits:
cpu: 500m

View File

@@ -5,6 +5,19 @@ const withNextIntl = createNextIntlPlugin();
const nextConfig: NextConfig = {
output: 'standalone',
async rewrites() {
const rybbitHost = process.env.NEXT_PUBLIC_RYBBIT_HOST || "https://rybbit.nodecrew.me";
return [
{
source: "/api/script.js",
destination: `${rybbitHost}/api/script.js`,
},
{
source: "/api/track",
destination: `${rybbitHost}/api/track`,
},
];
},
images: {
remotePatterns: [
{

View File

@@ -5,9 +5,8 @@ import { SUPPORTED_LOCALES, DEFAULT_LOCALE, isValidLocale } from "@/lib/i18n/loc
import { OpenPanelComponent } from "@openpanel/nextjs";
import Script from "next/script";
// Rybbit configuration - defined inline to avoid client directive issues
const RYBBIT_HOST = "https://rybbit.nodecrew.me";
const RYBBIT_SITE_ID = "1";
// Rybbit configuration
const RYBBIT_SITE_ID = process.env.NEXT_PUBLIC_RYBBIT_SITE_ID || "1";
const baseUrl = process.env.NEXT_PUBLIC_SITE_URL || "https://manoonoils.com";
@@ -59,7 +58,7 @@ export default async function LocaleLayout({
scriptUrl="https://op.nodecrew.me/op1.js"
/>
<Script
src={`${RYBBIT_HOST}/api/script.js`}
src="/api/script.js"
data-site-id={RYBBIT_SITE_ID}
strategy="afterInteractive"
/>

View File

@@ -12,8 +12,8 @@ declare global {
}
}
export const RYBBIT_HOST = "https://rybbit.nodecrew.me";
export const RYBBIT_SITE_ID = "1";
export const RYBBIT_HOST = process.env.NEXT_PUBLIC_RYBBIT_HOST || "https://rybbit.nodecrew.me";
export const RYBBIT_SITE_ID = process.env.NEXT_PUBLIC_RYBBIT_SITE_ID || "1";
/**
* Check if Rybbit is loaded and available