feat: scaffold nuxt app
This commit is contained in:
20
.env.example
Normal file
20
.env.example
Normal file
@@ -0,0 +1,20 @@
|
||||
# --- Server (API) ---
|
||||
# Shared Postgres. Internal Docker host within Coolify network, or SSH-tunnel locally.
|
||||
DATABASE_URL=postgres://mika:CHANGEME@l8kogcggsc80sgcgk8kswww4:5432/claudedo
|
||||
|
||||
# Zitadel OIDC
|
||||
ZITADEL_ISSUER=https://auth.kuns.dev
|
||||
# Comma-separated accepted audiences: web client id, desktop client id, project id
|
||||
ZITADEL_AUDIENCE=
|
||||
# Comma-separated owner Zitadel user ids (the single owner's `sub`)
|
||||
ALLOWED_USER_IDS=
|
||||
# CORS: the web client origin (the app's own origin)
|
||||
WEB_ORIGIN=https://claudedo.kuns.dev
|
||||
|
||||
# --- Web client (public, exposed to browser) ---
|
||||
NUXT_PUBLIC_ZITADEL_ISSUER=https://auth.kuns.dev
|
||||
NUXT_PUBLIC_ZITADEL_CLIENT_ID=
|
||||
|
||||
# --- Provisioning script only (not needed at runtime) ---
|
||||
# Zitadel Management API PAT (from ~/.secrets/coolify-tokens.env: ZITADEL_SERVICE_TOKEN)
|
||||
ZITADEL_SERVICE_TOKEN=
|
||||
3
app/app.vue
Normal file
3
app/app.vue
Normal file
@@ -0,0 +1,3 @@
|
||||
<template>
|
||||
<NuxtPage />
|
||||
</template>
|
||||
27
nuxt.config.ts
Normal file
27
nuxt.config.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
export default defineNuxtConfig({
|
||||
compatibilityDate: "2026-06-10",
|
||||
ssr: false,
|
||||
devtools: { enabled: false },
|
||||
// Single-user private inbox: no SSR/SEO needs; SPA so @kuns/zitadel-auth runs in-browser.
|
||||
runtimeConfig: {
|
||||
// server-only
|
||||
databaseUrl: process.env.DATABASE_URL,
|
||||
zitadelIssuer: process.env.ZITADEL_ISSUER || "https://auth.kuns.dev",
|
||||
zitadelAudience: process.env.ZITADEL_AUDIENCE || "",
|
||||
allowedUserIds: process.env.ALLOWED_USER_IDS || "",
|
||||
webOrigin: process.env.WEB_ORIGIN || "",
|
||||
public: {
|
||||
zitadelIssuer: process.env.NUXT_PUBLIC_ZITADEL_ISSUER || "https://auth.kuns.dev",
|
||||
zitadelClientId: process.env.NUXT_PUBLIC_ZITADEL_CLIENT_ID || "",
|
||||
},
|
||||
},
|
||||
app: {
|
||||
head: {
|
||||
title: "ClaudeDo Inbox",
|
||||
meta: [
|
||||
{ name: "viewport", content: "width=device-width, initial-scale=1, viewport-fit=cover" },
|
||||
{ name: "color-scheme", content: "light dark" },
|
||||
],
|
||||
},
|
||||
},
|
||||
});
|
||||
26
package.json
Normal file
26
package.json
Normal file
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"name": "claudedo-online",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"dev": "nuxt dev",
|
||||
"build": "nuxt build",
|
||||
"preview": "node .output/server/index.mjs",
|
||||
"migrate": "tsx server/db/migrate.ts",
|
||||
"test": "vitest run",
|
||||
"provision:zitadel": "tsx scripts/provision-zitadel.ts"
|
||||
},
|
||||
"dependencies": {
|
||||
"@kuns/zitadel-auth": "file:../kuns-zitadel/js",
|
||||
"jose": "^5.9.6",
|
||||
"nuxt": "^4.4.8",
|
||||
"oidc-client-ts": "^3.5.0",
|
||||
"postgres": "^3.4.8",
|
||||
"vue": "^3.5.0",
|
||||
"vue-router": "^4.4.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"tsx": "^4.21.0",
|
||||
"vitest": "^2.1.0"
|
||||
}
|
||||
}
|
||||
3
tsconfig.json
Normal file
3
tsconfig.json
Normal file
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"extends": "./.nuxt/tsconfig.json"
|
||||
}
|
||||
Reference in New Issue
Block a user