diff --git a/.github/workflows/deployment-docker-image.yml b/.github/workflows/deployment-docker-image.yml
index 74772e8ef..ab7ef7e1b 100644
--- a/.github/workflows/deployment-docker-image.yml
+++ b/.github/workflows/deployment-docker-image.yml
@@ -94,6 +94,8 @@ jobs:
env:
GITHUB_TOKEN: ${{ steps.obtainToken.outputs.token }}
run: |
+ git config user.name "Releases Homarr"
+ git config user.email "175486441+homarr-releases[bot]@users.noreply.github.com"
git fetch origin dev
git checkout dev
git pull origin dev
diff --git a/.gitignore b/.gitignore
index 7e1d14c68..3d0fc5393 100644
--- a/.gitignore
+++ b/.gitignore
@@ -54,7 +54,9 @@ yarn-error.log*
*.log
apps/tasks/tasks.cjs
+apps/tasks/tasks.css
apps/websocket/wssServer.cjs
+apps/websocket/wssServer.css
apps/nextjs/.million/
packages/cli/cli.cjs
diff --git a/apps/nextjs/next.config.ts b/apps/nextjs/next.config.ts
index 5e36315b1..5a082309c 100644
--- a/apps/nextjs/next.config.ts
+++ b/apps/nextjs/next.config.ts
@@ -1,13 +1,13 @@
// Importing env files here to validate on build
-import "@homarr/auth/env.mjs";
-import "@homarr/db/env.mjs";
-import "@homarr/common/env.mjs";
+import "@homarr/auth/env";
+import "@homarr/db/env";
+import "@homarr/common/env";
import type { NextConfig } from "next";
import MillionLint from "@million/lint";
import createNextIntlPlugin from "next-intl/plugin";
-import "./src/env.mjs";
+import "./src/env.ts";
// Package path does not work... so we need to use relative path
const withNextIntl = createNextIntlPlugin("../../packages/translation/src/request.ts");
diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json
index d43f482d0..fdccb2a78 100644
--- a/apps/nextjs/package.json
+++ b/apps/nextjs/package.json
@@ -38,18 +38,18 @@
"@homarr/ui": "workspace:^0.1.0",
"@homarr/validation": "workspace:^0.1.0",
"@homarr/widgets": "workspace:^0.1.0",
- "@mantine/colors-generator": "^7.15.3",
- "@mantine/core": "^7.15.3",
- "@mantine/dropzone": "^7.15.3",
- "@mantine/hooks": "^7.15.3",
- "@mantine/modals": "^7.15.3",
- "@mantine/tiptap": "^7.15.3",
+ "@mantine/colors-generator": "^7.16.0",
+ "@mantine/core": "^7.16.0",
+ "@mantine/dropzone": "^7.16.0",
+ "@mantine/hooks": "^7.16.0",
+ "@mantine/modals": "^7.16.0",
+ "@mantine/tiptap": "^7.16.0",
"@million/lint": "1.0.14",
"@t3-oss/env-nextjs": "^0.11.1",
"@tabler/icons-react": "^3.28.1",
- "@tanstack/react-query": "^5.63.0",
- "@tanstack/react-query-devtools": "^5.63.0",
- "@tanstack/react-query-next-experimental": "5.63.0",
+ "@tanstack/react-query": "^5.64.1",
+ "@tanstack/react-query-devtools": "^5.64.1",
+ "@tanstack/react-query-next-experimental": "5.64.1",
"@trpc/client": "next",
"@trpc/next": "next",
"@trpc/react-query": "next",
@@ -72,7 +72,7 @@
"react-dom": "19.0.0",
"react-error-boundary": "^5.0.0",
"react-simple-code-editor": "^0.14.1",
- "sass": "^1.83.1",
+ "sass": "^1.83.4",
"superjson": "2.2.2",
"swagger-ui-react": "^5.18.2",
"use-deep-compare-effect": "^1.8.1"
@@ -82,13 +82,13 @@
"@homarr/prettier-config": "workspace:^0.1.0",
"@homarr/tsconfig": "workspace:^0.1.0",
"@types/chroma-js": "3.1.0",
- "@types/node": "^22.10.5",
+ "@types/node": "^22.10.6",
"@types/prismjs": "^1.26.5",
- "@types/react": "19.0.4",
- "@types/react-dom": "19.0.2",
+ "@types/react": "19.0.7",
+ "@types/react-dom": "19.0.3",
"@types/swagger-ui-react": "^4.18.3",
"concurrently": "^9.1.2",
- "eslint": "^9.17.0",
+ "eslint": "^9.18.0",
"node-loader": "^2.1.0",
"prettier": "^3.4.2",
"typescript": "^5.7.3"
diff --git a/apps/nextjs/src/app/[locale]/_client-providers/trpc.tsx b/apps/nextjs/src/app/[locale]/_client-providers/trpc.tsx
index 52d5c10b7..3d2042030 100644
--- a/apps/nextjs/src/app/[locale]/_client-providers/trpc.tsx
+++ b/apps/nextjs/src/app/[locale]/_client-providers/trpc.tsx
@@ -21,7 +21,7 @@ import type { AppRouter } from "@homarr/api";
import { clientApi, getTrpcUrl } from "@homarr/api/client";
import { createHeadersCallbackForSource } from "@homarr/api/shared";
-import { env } from "~/env.mjs";
+import { env } from "~/env";
const getWebSocketProtocol = () => {
// window is not defined on server side
diff --git a/apps/nextjs/src/app/[locale]/auth/login/page.tsx b/apps/nextjs/src/app/[locale]/auth/login/page.tsx
index 9b5dfbd83..c9d913c08 100644
--- a/apps/nextjs/src/app/[locale]/auth/login/page.tsx
+++ b/apps/nextjs/src/app/[locale]/auth/login/page.tsx
@@ -1,7 +1,7 @@
import { redirect } from "next/navigation";
import { Card, Center, Stack, Text, Title } from "@mantine/core";
-import { env } from "@homarr/auth/env.mjs";
+import { env } from "@homarr/auth/env";
import { auth } from "@homarr/auth/next";
import { getScopedI18n } from "@homarr/translation/server";
diff --git a/apps/nextjs/src/app/[locale]/boards/(content)/_header-actions.tsx b/apps/nextjs/src/app/[locale]/boards/(content)/_header-actions.tsx
index e951a4318..b0657e1e1 100644
--- a/apps/nextjs/src/app/[locale]/boards/(content)/_header-actions.tsx
+++ b/apps/nextjs/src/app/[locale]/boards/(content)/_header-actions.tsx
@@ -28,7 +28,7 @@ import { useCategoryActions } from "~/components/board/sections/category/categor
import { CategoryEditModal } from "~/components/board/sections/category/category-edit-modal";
import { useDynamicSectionActions } from "~/components/board/sections/dynamic/dynamic-actions";
import { HeaderButton } from "~/components/layout/header/button";
-import { env } from "~/env.mjs";
+import { env } from "~/env";
import { useEditMode, useRequiredBoard } from "./_context";
export const BoardContentHeaderActions = () => {
diff --git a/apps/nextjs/src/app/[locale]/boards/[name]/settings/page.tsx b/apps/nextjs/src/app/[locale]/boards/[name]/settings/page.tsx
index 36818573a..1ffb892d1 100644
--- a/apps/nextjs/src/app/[locale]/boards/[name]/settings/page.tsx
+++ b/apps/nextjs/src/app/[locale]/boards/[name]/settings/page.tsx
@@ -101,7 +101,11 @@ export default async function BoardSettingsPage(props: Props) {