add posthog analytics proxy
This commit is contained in:
parent
b2975c96dd
commit
cf903425f1
4 changed files with 21 additions and 3 deletions
|
|
@ -29,8 +29,9 @@ QSTASH_NEXT_SIGNING_KEY=""
|
||||||
# Stripe
|
# Stripe
|
||||||
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=""
|
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=""
|
||||||
STRIPE_SECRET_KEY=""
|
STRIPE_SECRET_KEY=""
|
||||||
STRIPE_PRICE_ID=""
|
|
||||||
STRIPE_WEBHOOK_SECRET=""
|
STRIPE_WEBHOOK_SECRET=""
|
||||||
|
STRIPE_MONTHLY_PRICE_ID=""
|
||||||
|
STRIPE_ANNUAL_PRICE_ID=""
|
||||||
|
|
||||||
# crisp.chat
|
# crisp.chat
|
||||||
NEXT_PUBLIC_CRISP_WEBSITE_ID=""
|
NEXT_PUBLIC_CRISP_WEBSITE_ID=""
|
||||||
|
|
@ -38,3 +39,5 @@ NEXT_PUBLIC_CRISP_WEBSITE_ID=""
|
||||||
# posthog
|
# posthog
|
||||||
NEXT_PUBLIC_POSTHOG_KEY=""
|
NEXT_PUBLIC_POSTHOG_KEY=""
|
||||||
NEXT_PUBLIC_POSTHOG_HOST=""
|
NEXT_PUBLIC_POSTHOG_HOST=""
|
||||||
|
NEXT_PUBLIC_POSTHOG_PROXY_HOST="/ioafe"
|
||||||
|
POSTHOG_PROXY_PATH="ioafe"
|
||||||
|
|
@ -2,6 +2,8 @@
|
||||||
* Run `build` or `dev` with `SKIP_ENV_VALIDATION` to skip env validation.
|
* Run `build` or `dev` with `SKIP_ENV_VALIDATION` to skip env validation.
|
||||||
* This is especially useful for Docker builds.
|
* This is especially useful for Docker builds.
|
||||||
*/
|
*/
|
||||||
|
import { env } from "./src/env.mjs";
|
||||||
|
|
||||||
!process.env.SKIP_ENV_VALIDATION && (await import("./src/env.mjs"));
|
!process.env.SKIP_ENV_VALIDATION && (await import("./src/env.mjs"));
|
||||||
|
|
||||||
/** @type {import("next").NextConfig} */
|
/** @type {import("next").NextConfig} */
|
||||||
|
|
@ -46,5 +48,14 @@ const config = {
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
|
||||||
|
async rewrites() {
|
||||||
|
return [
|
||||||
|
{
|
||||||
|
source: "/" + env.POSTHOG_PROXY_PATH + "/:path*",
|
||||||
|
destination: env.NEXT_PUBLIC_POSTHOG_HOST + "/:path*",
|
||||||
|
},
|
||||||
|
];
|
||||||
|
},
|
||||||
};
|
};
|
||||||
export default config;
|
export default config;
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,7 @@ const server = z.object({
|
||||||
STRIPE_WEBHOOK_SECRET: z.string(),
|
STRIPE_WEBHOOK_SECRET: z.string(),
|
||||||
STRIPE_MONTHLY_PRICE_ID: z.string(),
|
STRIPE_MONTHLY_PRICE_ID: z.string(),
|
||||||
STRIPE_ANNUAL_PRICE_ID: z.string(),
|
STRIPE_ANNUAL_PRICE_ID: z.string(),
|
||||||
|
POSTHOG_PROXY_PATH: z.string(),
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -44,6 +45,7 @@ const client = z.object({
|
||||||
NEXT_PUBLIC_CRISP_WEBSITE_ID: z.string(),
|
NEXT_PUBLIC_CRISP_WEBSITE_ID: z.string(),
|
||||||
NEXT_PUBLIC_POSTHOG_KEY: z.string(),
|
NEXT_PUBLIC_POSTHOG_KEY: z.string(),
|
||||||
NEXT_PUBLIC_POSTHOG_HOST: z.string(),
|
NEXT_PUBLIC_POSTHOG_HOST: z.string(),
|
||||||
|
NEXT_PUBLIC_POSTHOG_PROXY_HOST: z.string(),
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -76,6 +78,8 @@ const processEnv = {
|
||||||
NEXT_PUBLIC_CRISP_WEBSITE_ID: process.env.NEXT_PUBLIC_CRISP_WEBSITE_ID,
|
NEXT_PUBLIC_CRISP_WEBSITE_ID: process.env.NEXT_PUBLIC_CRISP_WEBSITE_ID,
|
||||||
NEXT_PUBLIC_POSTHOG_KEY: process.env.NEXT_PUBLIC_POSTHOG_KEY,
|
NEXT_PUBLIC_POSTHOG_KEY: process.env.NEXT_PUBLIC_POSTHOG_KEY,
|
||||||
NEXT_PUBLIC_POSTHOG_HOST: process.env.NEXT_PUBLIC_POSTHOG_HOST,
|
NEXT_PUBLIC_POSTHOG_HOST: process.env.NEXT_PUBLIC_POSTHOG_HOST,
|
||||||
|
POSTHOG_PROXY_PATH: process.env.POSTHOG_PROXY_PATH,
|
||||||
|
NEXT_PUBLIC_POSTHOG_PROXY_HOST: process.env.NEXT_PUBLIC_POSTHOG_PROXY_HOST,
|
||||||
};
|
};
|
||||||
|
|
||||||
// Don't touch the part below
|
// Don't touch the part below
|
||||||
|
|
|
||||||
|
|
@ -13,7 +13,7 @@ import { env } from "~/env.mjs";
|
||||||
// Check that PostHog is client-side (used to handle Next.js SSR)
|
// Check that PostHog is client-side (used to handle Next.js SSR)
|
||||||
if (typeof window !== "undefined") {
|
if (typeof window !== "undefined") {
|
||||||
posthog.init(env.NEXT_PUBLIC_POSTHOG_KEY, {
|
posthog.init(env.NEXT_PUBLIC_POSTHOG_KEY, {
|
||||||
api_host: env.NEXT_PUBLIC_POSTHOG_HOST || "https://app.posthog.com",
|
api_host: env.NEXT_PUBLIC_POSTHOG_PROXY_HOST,
|
||||||
// Enable debug mode in development
|
// Enable debug mode in development
|
||||||
loaded: (posthog) => {
|
loaded: (posthog) => {
|
||||||
if (process.env.NODE_ENV === "development") posthog.debug();
|
if (process.env.NODE_ENV === "development") posthog.debug();
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue