From 5b28f7d4adc221c338dd378b63b97b1d89168c44 Mon Sep 17 00:00:00 2001 From: Thorsten Seyschab Date: Sun, 3 May 2026 15:56:53 +0200 Subject: [PATCH 1/4] docs: remove stale local setup commands --- docs/setup-local.md | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/docs/setup-local.md b/docs/setup-local.md index a0f90d0..7862d61 100755 --- a/docs/setup-local.md +++ b/docs/setup-local.md @@ -43,17 +43,6 @@ openssl rand -base64 48 Copy the generated secret and update `NUXT_JWT_SECRET` in your `.env` file. -## Development Commands - -- `vp run dev` - Start development server -- `vp run build:ssr` - Build for production (server-rendered) -- `vp run build:ssg` - Static site generation build -- `vp run preview` - Preview production build -- `vp run test` - Run all checks (lint + types) -- `vp run test:lint-format` - Lint and format check via ESLint -- `vp run test:type` - Run TypeScript checks -- `vp run fix:lint` - Auto-fix lint and format issues - ## Data Management ### Storage Location From 2cb83bf42eb65ee80f44b2dd55bfdb04758c6a7c Mon Sep 17 00:00:00 2001 From: Thorsten Seyschab Date: Sun, 3 May 2026 15:56:58 +0200 Subject: [PATCH 2/4] build: align package scripts and dependencies --- package.json | 9 +++------ pnpm-lock.yaml | 14 +++++++------- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/package.json b/package.json index 83e589e..58b9375 100644 --- a/package.json +++ b/package.json @@ -26,10 +26,7 @@ "fix:package-json": "vp exec prettier-package-json --write package.json", "postinstall": "nuxt prepare", "install:clean": "vp install --frozen-lockfile --prefer-offline", - "nuxi": "nuxi", - "nuxt": "nuxt", "prepare": "vp config --hooks-only", - "preview": "nuxt preview", "preview:ssg": "vp dlx serve .output/public", "preview:ssr": "nuxt preview", "test": "concurrently --names \"test:lint-format,test:package-json,test:type\" \"vp exec eslint .\" \"vp exec prettier-package-json --list-different package.json\" \"nuxt typecheck\"", @@ -38,13 +35,15 @@ "test:type": "nuxt typecheck" }, "dependencies": { - "nuxt": "~4.1.2" + "nuxt": "~4.1.2", + "vue": "~3.5.22" }, "devDependencies": { "@nuxt/eslint": "~1.15.2", "@nuxtjs/i18n": "^10.1.1", "@nuxtjs/tailwindcss": "~6.14.0", "@paralleldrive/cuid2": "~2.2.2", + "@stylistic/eslint-plugin": "~5.10.0", "@vueuse/core": "~13.9.0", "@vueuse/nuxt": "~13.9.0", "concurrently": "~9.2.1", @@ -63,8 +62,6 @@ "prettier-package-json": "~2.8.0", "typescript": "~5.9.3", "vite-plus": "catalog:", - "vue": "~3.5.22", - "vue-router": "~4.5.1", "vue-tsc": "~3.1.0" }, "keywords": [ diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e5ed00e..7acf086 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -25,6 +25,9 @@ importers: nuxt: specifier: ~4.1.2 version: 4.1.3(@parcel/watcher@2.5.6)(@types/node@25.4.0)(@vue/compiler-sfc@3.5.30)(cac@6.7.14)(db0@0.3.4)(eslint@9.39.4(jiti@2.6.1))(ioredis@5.10.0)(magicast@0.5.2)(optionator@0.9.4)(oxlint@1.61.0(oxlint-tsgolint@0.22.0))(rollup@4.59.0)(srvx@0.11.9)(terser@5.46.0)(typescript@5.9.3)(vite@7.3.2(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.0)(yaml@2.8.2))(vue-tsc@3.1.8(typescript@5.9.3))(yaml@2.8.2) + vue: + specifier: ~3.5.22 + version: 3.5.30(typescript@5.9.3) devDependencies: '@nuxt/eslint': specifier: ~1.15.2 @@ -38,6 +41,9 @@ importers: '@paralleldrive/cuid2': specifier: ~2.2.2 version: 2.2.2 + '@stylistic/eslint-plugin': + specifier: ~5.10.0 + version: 5.10.0(eslint@9.39.4(jiti@2.6.1)) '@vueuse/core': specifier: ~13.9.0 version: 13.9.0(vue@3.5.30(typescript@5.9.3)) @@ -92,12 +98,6 @@ importers: vite-plus: specifier: 'catalog:' version: 0.1.20(@types/node@25.4.0)(esbuild@0.25.12)(jiti@2.6.1)(terser@5.46.0)(typescript@5.9.3)(vite@7.3.2(@types/node@25.4.0)(jiti@2.6.1)(lightningcss@1.32.0)(terser@5.46.0)(yaml@2.8.2))(yaml@2.8.2) - vue: - specifier: ~3.5.22 - version: 3.5.30(typescript@5.9.3) - vue-router: - specifier: ~4.5.1 - version: 4.5.1(vue@3.5.30(typescript@5.9.3)) vue-tsc: specifier: ~3.1.0 version: 3.1.8(typescript@5.9.3) @@ -7825,7 +7825,7 @@ snapshots: '@stylistic/eslint-plugin@5.10.0(eslint@9.39.4(jiti@2.6.1))': dependencies: '@eslint-community/eslint-utils': 4.9.1(eslint@9.39.4(jiti@2.6.1)) - '@typescript-eslint/types': 8.57.0 + '@typescript-eslint/types': 8.59.1 eslint: 9.39.4(jiti@2.6.1) eslint-visitor-keys: 4.2.1 espree: 10.4.0 From 73a97ebdd954ae787f9cccff0de4b3d218d37d90 Mon Sep 17 00:00:00 2001 From: Thorsten Seyschab Date: Sun, 3 May 2026 15:57:03 +0200 Subject: [PATCH 3/4] refactor: split Nuxt config sections --- nuxt.config.ts | 66 ++++++++++++++++++++++++++++---------------------- 1 file changed, 37 insertions(+), 29 deletions(-) diff --git a/nuxt.config.ts b/nuxt.config.ts index 3a1b233..00ae820 100644 --- a/nuxt.config.ts +++ b/nuxt.config.ts @@ -1,43 +1,18 @@ import { version } from './package.json' +import type { ConfigLayerMeta, InputConfig } from 'c12' +import type { NuxtConfig } from 'nuxt/schema' -// https://nuxt.com/docs/api/configuration/nuxt-config -export default defineNuxtConfig({ - +const configBase: InputConfig = { compatibilityDate: '2025-07-15', css: [ - '~/assets/css/main.css', + '~/assets/css/main.css', // including TailwindCSS ], devtools: { enabled: true, }, - eslint: { // for `@nuxt/eslint` - config: { - stylistic: { - indent: 2, - quotes: 'single', - }, - }, - }, - - i18n: { - defaultLocale: 'en', - locales: [ - { code: 'en', language: 'en-US', name: 'English' }, - { code: 'de', language: 'de-DE', name: 'Deutsch' }, - { code: 'ja', language: 'ja-JP', name: '日本語' }, - ], - vueI18n: './i18n.config.ts', // Using a separate file for better organization - }, - modules: [ - '@nuxt/eslint', - '@nuxtjs/i18n', - '@nuxtjs/tailwindcss', - '@vueuse/nuxt', - ], - nitro: { devStorage: { data: { base: './.data/db', driver: 'fs' }, @@ -79,4 +54,37 @@ export default defineNuxtConfig({ typescript: { shim: false, }, +} + +const configModules: InputConfig = { + eslint: { // for `@nuxt/eslint` + config: { + stylistic: { + indent: 2, + quotes: 'single', + }, + }, + }, + + i18n: { + defaultLocale: 'en', + locales: [ + { code: 'en', language: 'en-US', name: 'English' }, + { code: 'de', language: 'de-DE', name: 'Deutsch' }, + { code: 'ja', language: 'ja-JP', name: '日本語' }, + ], + vueI18n: './i18n.config.ts', // Using a separate file for better organization + }, +} + +export default defineNuxtConfig({ + modules: [ + '@nuxt/eslint', + '@nuxtjs/i18n', + '@nuxtjs/tailwindcss', + '@vueuse/nuxt', + ], + + ...configBase, + ...configModules, }) From 2aebb1a8012b1ae3096173172981d12dbe64840a Mon Sep 17 00:00:00 2001 From: Thorsten Seyschab Date: Sun, 3 May 2026 16:00:48 +0200 Subject: [PATCH 4/4] chore: remove redundant defaults from env vars --- .env.example | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.env.example b/.env.example index 5be8ae0..08fcb3d 100644 --- a/.env.example +++ b/.env.example @@ -1,27 +1,27 @@ # --- Server-side secrets (not exposed to client) -# Admin Credentials -NUXT_ADMIN_USERNAME=admin -NUXT_ADMIN_PASSWORD=123 +# Admin Credentials (defaults to admin / 123) +NUXT_ADMIN_USERNAME= +NUXT_ADMIN_PASSWORD= -# JWT Secret for Admin Authentication -NUXT_JWT_SECRET=tryUJ0zQbstPbTOrezme+Fv+KndzDNRx5lmSeelr2ial2/2yV8HqLeQ2felJafqf +# JWT Secret for Admin Authentication (defaults to tryUJ0zQbstPbTOrezme+Fv+KndzDNRx5lmSeelr2ial2/2yV8HqLeQ2felJafqf) +NUXT_JWT_SECRET= # --- Public configuration (available on both client and server) -# WebSocket URL for client connections (optional - defaults to current host) +# WebSocket URL for client connections (defaults to current host) # NUXT_PUBLIC_WS_URL=ws://localhost:3000 -# API URL for client requests (optional - defaults to current host) +# API URL for client requests (defaults to current host) # NUXT_PUBLIC_API_URL=http://localhost:3000 # Server Configuration # NUXT_PUBLIC_HOST=0.0.0.0 # NUXT_PUBLIC_PORT=3000 -# Show debug (optional - defaults to false) -# NUXT_PUBLIC_DEBUG_SHOW_WEBSOCKET_CONNECTIONS_IN_FRONTEND=true -# NUXT_PUBLIC_DEBUG_SHOW_CONSOLE_OUTPUTS=true +# Show debug (defaults to false / false) +# NUXT_PUBLIC_DEBUG_SHOW_WEBSOCKET_CONNECTIONS_IN_FRONTEND=false +# NUXT_PUBLIC_DEBUG_SHOW_CONSOLE_OUTPUTS=false -# Emoji-Sent Cooldown in Milliseconds -NUXT_PUBLIC_EMOJI_COOLDOWN_MS=1500 +# Emoji-Sent Cooldown in Milliseconds (defaults to 1500) +NUXT_PUBLIC_EMOJI_COOLDOWN_MS=