diff --git a/apps/dashboard/src/app/maintenance/page.tsx b/apps/dashboard/src/app/maintenance/page.tsx index 4532112d..a0529fad 100644 --- a/apps/dashboard/src/app/maintenance/page.tsx +++ b/apps/dashboard/src/app/maintenance/page.tsx @@ -3,13 +3,13 @@ import { CalendarCogIcon } from 'lucide-react'; export default function Maintenance() { return (
-
+
-
+
Oh no!
-

Maintenance

-

+

Maintenance

+

We're doing a planned maintenance. Please check back later.

diff --git a/apps/dashboard/src/middleware.ts b/apps/dashboard/src/middleware.ts index 29e28922..df684b00 100644 --- a/apps/dashboard/src/middleware.ts +++ b/apps/dashboard/src/middleware.ts @@ -28,9 +28,18 @@ const isPublicRoute = createRouteMatcher([ '/reset-password(.*)?', '/sso-callback(.*)?', '/onboarding', + '/maintenance', ]); export default (request: NextRequest) => { + // Check for maintenance mode + if ( + process.env.MAINTENANCE === 'true' && + !request.nextUrl.pathname.startsWith('/maintenance') + ) { + return NextResponse.redirect(new URL('/maintenance', request.url)); + } + if (request.method === 'GET') { const response = NextResponse.next(); const token = request.cookies.get('session')?.value ?? null;