diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 751759858..34e07fec7 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -33,6 +33,7 @@ body: options: # The below comment is used to insert a new version with on-release.yml #NEXT_VERSION# + - 1.66.1 - 1.66.0 - 1.65.0 - 1.64.0 diff --git a/apps/docs/docs/advanced/single-sign-on/index.mdx b/apps/docs/docs/advanced/single-sign-on/index.mdx index 7dab32729..b4865ec88 100644 --- a/apps/docs/docs/advanced/single-sign-on/index.mdx +++ b/apps/docs/docs/advanced/single-sign-on/index.mdx @@ -23,6 +23,7 @@ Homarr supports multiple authentication options, from internal userbase (credent | AUTH_PROVIDERS | Select Which provider to use between *credentials*, *ldap* and *oidc*.
Multiple providers can be enabled with by separating them with `,`, (ex. `AUTH_PROVIDERS=credentials,oidc`, it is highly recommended to just enable one provider). | credentials | | AUTH_LOGOUT_REDIRECT_URL | URL to redirect to after clicking logging out. | --- | | AUTH_SESSION_EXPIRY_TIME | Time for the session to time out. Can be set as pure number, which will automatically be used in seconds, or followed by s, m, h or d for seconds, minutes, hours or days. (ex: "30m") | "30d" | +| AUTH_COOKIE_PREFIX | Prefix used for all authentication cookies (session, csrf, callback, pkce, state, nonce). Change this if you run another Auth.js/NextAuth app on the same hostname as Homarr (browsers scope cookies by host, not by port) to avoid cookie name collisions. Only letters, numbers, hyphens and underscores are allowed. | `homarr` | diff --git a/apps/docs/docs/getting-started/installation/helm.md b/apps/docs/docs/getting-started/installation/helm.md index 643f02632..8a3903bf1 100644 --- a/apps/docs/docs/getting-started/installation/helm.md +++ b/apps/docs/docs/getting-started/installation/helm.md @@ -395,6 +395,7 @@ All available values are listed on the [artifacthub](https://artifacthub.io/pack | env.AUTH_LDAP_USERNAME_FILTER_EXTRA_ARG | string | `nil` | Extra arguments for user search filter (& based) | | env.AUTH_LDAP_USER_MAIL_ATTRIBUTE | string | `"mail"` | Attribute used for mail field | | env.AUTH_LOGOUT_REDIRECT_URL | string | `nil` | URL to redirect to after clicking logging out. | +| env.AUTH_COOKIE_PREFIX | string | `"homarr"` | Prefix used for all authentication cookies. Change if you run another Auth.js/NextAuth app on the same hostname to avoid cookie name collisions. Only letters, numbers, hyphens and underscores. | | env.AUTH_OIDC_AUTO_LOGIN | string | `"false"` | Automatically redirect to OIDC login | | env.AUTH_OIDC_CLIENT_NAME | string | `"OIDC"` | Display name of provider (in login screen) | | env.AUTH_OIDC_GROUPS_ATTRIBUTE | string | `"groups"` | Attribute used for groups (roles) claim | diff --git a/apps/docs/package.json b/apps/docs/package.json index 8273d14ff..f4c7655b9 100644 --- a/apps/docs/package.json +++ b/apps/docs/package.json @@ -32,7 +32,7 @@ "@scalar/api-reference-react": "catalog:", "@signalwire/docusaurus-plugin-llms-txt": "^1.2.2", "@tabler/icons-react": "catalog:", - "@tailwindcss/postcss": "^4.3.0", + "@tailwindcss/postcss": "^4.3.1", "clsx": "catalog:", "dayjs": "catalog:", "docusaurus-plugin-image-zoom": "^3.0.1", @@ -44,7 +44,7 @@ "react": "catalog:", "react-dom": "catalog:", "swiper": "^12.2.0", - "tailwindcss": "^4.3.0" + "tailwindcss": "^4.3.1" }, "devDependencies": { "@docusaurus/module-type-aliases": "^3.10.1", diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index e058f325c..cfea600e7 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -89,6 +89,7 @@ "mcp-handler": "catalog:", "next": "catalog:", "postcss-preset-mantine": "catalog:", + "posthog-js": "catalog:", "prismjs": "catalog:", "react": "catalog:", "react-dom": "catalog:", diff --git a/apps/nextjs/src/app/[locale]/layout.tsx b/apps/nextjs/src/app/[locale]/layout.tsx index a9c6b65cb..dbb81dc49 100644 --- a/apps/nextjs/src/app/[locale]/layout.tsx +++ b/apps/nextjs/src/app/[locale]/layout.tsx @@ -139,11 +139,11 @@ export default async function Layout(props: { suppressHydrationWarning > - + diff --git a/apps/nextjs/src/app/[locale]/manage/settings/_components/analytics.settings.tsx b/apps/nextjs/src/app/[locale]/manage/settings/_components/analytics.settings.tsx index ed2dfcce8..9ad50b432 100644 --- a/apps/nextjs/src/app/[locale]/manage/settings/_components/analytics.settings.tsx +++ b/apps/nextjs/src/app/[locale]/manage/settings/_components/analytics.settings.tsx @@ -17,9 +17,10 @@ interface AnalyticsSettingsProps { export const AnalyticsSettings = ({ initialData }: AnalyticsSettingsProps) => { const t = useScopedI18n("management.page.settings.section.analytics"); + const { instanceId: _, ...formDefaults } = initialData; const form = useForm({ - initialValues: initialData, - onValuesChange: (updatedValues, _) => { + initialValues: formDefaults, + onValuesChange: (updatedValues, _prev) => { if (!form.isValid()) { return; } diff --git a/apps/nextjs/src/components/layout/analytics.tsx b/apps/nextjs/src/components/layout/analytics.tsx index 8d81fa13c..a59c65b7e 100644 --- a/apps/nextjs/src/components/layout/analytics.tsx +++ b/apps/nextjs/src/components/layout/analytics.tsx @@ -1,16 +1,24 @@ -import Script from "next/script"; +"use client"; -import { UMAMI_WEBSITE_ID } from "@homarr/analytics"; -import { db } from "@homarr/db"; -import { getServerSettingByKeyAsync } from "@homarr/db/queries"; +import { useEffect } from "react"; -export const Analytics = async () => { - // For static pages it will not find any analytics data so we do not include the script on them - const analytics = await getServerSettingByKeyAsync(db, "analytics").catch(() => null); +const POSTHOG_KEY = "phc_vYBmGWNbRshvfeC7EHfeSmUm2pD2Neg5nGqzJuGvS8Hs"; +const POSTHOG_HOST = "https://hog.homarr.dev"; - if (analytics?.enableGeneral) { - return