fix: lighthouse fixes

This commit is contained in:
Stavros
2026-04-14 13:16:15 +03:00
parent 6f99e7acff
commit 93d6191139
5 changed files with 52 additions and 36 deletions

View File

@@ -9,6 +9,10 @@
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" /> <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
<meta name="apple-mobile-web-app-title" content="Tinyauth" /> <meta name="apple-mobile-web-app-title" content="Tinyauth" />
<meta name="robots" content="nofollow, noindex" /> <meta name="robots" content="nofollow, noindex" />
<meta
name="description"
content="The tiniest authentication and authorization server you have ever seen."
/>
<link rel="manifest" href="/site.webmanifest" /> <link rel="manifest" href="/site.webmanifest" />
<title>Tinyauth</title> <title>Tinyauth</title>
</head> </head>

View File

@@ -21,7 +21,7 @@ export const LanguageSelector = () => {
return ( return (
<Select onValueChange={handleSelect} value={language}> <Select onValueChange={handleSelect} value={language}>
<SelectTrigger> <SelectTrigger aria-label="Select language">
<SelectValue placeholder="Select language" /> <SelectValue placeholder="Select language" />
</SelectTrigger> </SelectTrigger>
<SelectContent> <SelectContent>

View File

@@ -23,39 +23,41 @@ import { TooltipProvider } from "@/components/ui/tooltip";
const queryClient = new QueryClient(); const queryClient = new QueryClient();
createRoot(document.getElementById("root")!).render( createRoot(document.getElementById("root")!).render(
<StrictMode> <main>
<QueryClientProvider client={queryClient}> <StrictMode>
<AppContextProvider> <QueryClientProvider client={queryClient}>
<UserContextProvider> <AppContextProvider>
<TooltipProvider> <UserContextProvider>
<ThemeProvider defaultTheme="system" storageKey="tinyauth-theme"> <TooltipProvider>
<BrowserRouter> <ThemeProvider defaultTheme="system" storageKey="tinyauth-theme">
<Routes> <BrowserRouter>
<Route element={<Layout />} errorElement={<ErrorPage />}> <Routes>
<Route path="/" element={<App />} /> <Route element={<Layout />} errorElement={<ErrorPage />}>
<Route path="/login" element={<LoginPage />} /> <Route path="/" element={<App />} />
<Route path="/authorize" element={<AuthorizePage />} /> <Route path="/login" element={<LoginPage />} />
<Route path="/logout" element={<LogoutPage />} /> <Route path="/authorize" element={<AuthorizePage />} />
<Route path="/continue" element={<ContinuePage />} /> <Route path="/logout" element={<LogoutPage />} />
<Route path="/totp" element={<TotpPage />} /> <Route path="/continue" element={<ContinuePage />} />
<Route <Route path="/totp" element={<TotpPage />} />
path="/forgot-password" <Route
element={<ForgotPasswordPage />} path="/forgot-password"
/> element={<ForgotPasswordPage />}
<Route />
path="/unauthorized" <Route
element={<UnauthorizedPage />} path="/unauthorized"
/> element={<UnauthorizedPage />}
<Route path="/error" element={<ErrorPage />} /> />
<Route path="*" element={<NotFoundPage />} /> <Route path="/error" element={<ErrorPage />} />
</Route> <Route path="*" element={<NotFoundPage />} />
</Routes> </Route>
</BrowserRouter> </Routes>
<Toaster /> </BrowserRouter>
</ThemeProvider> <Toaster />
</TooltipProvider> </ThemeProvider>
</UserContextProvider> </TooltipProvider>
</AppContextProvider> </UserContextProvider>
</QueryClientProvider> </AppContextProvider>
</StrictMode>, </QueryClientProvider>
</StrictMode>
</main>,
); );

View File

@@ -52,6 +52,11 @@ export default defineConfig({
changeOrigin: true, changeOrigin: true,
rewrite: (path) => path.replace(/^\/\.well-known/, ""), rewrite: (path) => path.replace(/^\/\.well-known/, ""),
}, },
"/robots.txt": {
target: "http://tinyauth-backend:3000/robots.txt",
changeOrigin: true,
rewrite: (path) => path.replace(/^\/robots.txt/, ""),
},
}, },
allowedHosts: true, allowedHosts: true,
}, },

View File

@@ -46,6 +46,11 @@ func (m *UIMiddleware) Middleware() gin.HandlerFunc {
case "api", "resources", ".well-known": case "api", "resources", ".well-known":
c.Next() c.Next()
return return
case "robots.txt":
c.Writer.Header().Set("Content-Type", "text/plain")
c.Writer.WriteHeader(http.StatusOK)
c.Writer.Write([]byte("User-agent: *\nDisallow: /\n"))
return
default: default:
_, err := fs.Stat(m.uiFs, path) _, err := fs.Stat(m.uiFs, path)