feat(admin): GitHub OAuth login, admin whitelist and Nuxt WebUI

Add an admin WebUI (Nuxt static SPA in admin/, served via the ASSETS
binding) for managing routes and viewing send logs. Access is gated by
GitHub OAuth plus an ADMIN_USER_IDS whitelist with cookie sessions
(admin-session.ts). Expose routes/logs CRUD API (admin-routes.ts), add a
discord-link mapping in token-store.ts, and mount admin routes with an
SPA assets fallback in the server.
This commit is contained in:
RhenCloud 2026-08-02 06:50:41 +08:00
parent cfdf37e273
commit 407514f3c9
No known key found for this signature in database
GPG key ID: A574A617378C4E0B
20 changed files with 3242 additions and 13 deletions

22
admin/nuxt.config.ts Normal file
View file

@ -0,0 +1,22 @@
export default defineNuxtConfig({
ssr: false,
compatibilityDate: "2025-01-01",
app: {
head: {
title: "WebHooker · Config Console",
link: [
{
rel: "stylesheet",
href: "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap",
},
],
},
},
css: ["~/assets/css/main.css"],
devtools: { enabled: false },
runtimeConfig: {
public: {
apiBase: "/admin/api",
},
},
});