- Lock public registration to first-user bootstrap (403 afterwards) - Require JwtAuthGuard on upload + whitelist png/jpg/webp/gif (SVG/XSS blocked) - Add global throttling (login/register 5/min, upload 10/min) - Add helmet security headers; serve uploads with nosniff - Replace permissive CORS (origin:true+credentials) with CORS_ORIGINS whitelist - Disable Swagger outside development; sanitize 500 error responses - Enforce 32+ char JWT_SECRET; make token expiry configurable (TOKEN_EXPIRES_IN) - Re-check user in DB on every JWT validation (revocation on user delete) - Dummy bcrypt compare to prevent login user-enumeration via timing - Map malformed BigInt inputs to 400 instead of 500 - Widen .gitignore to .env* and add apps/api/.env.example - Disable Nuxt devtools and sourcemaps
37 lines
701 B
TypeScript
37 lines
701 B
TypeScript
export default defineNuxtConfig({
|
|
compatibilityDate: '2025-07-15',
|
|
devtools: { enabled: false },
|
|
sourcemap: { server: false, client: false },
|
|
|
|
modules: ['@nuxtjs/seo'],
|
|
|
|
css: ['~/assets/css/tailwind.css', '@fortawesome/fontawesome-free/css/all.min.css'],
|
|
|
|
postcss: {
|
|
plugins: {
|
|
'@tailwindcss/postcss': {},
|
|
},
|
|
},
|
|
|
|
site: {
|
|
url: 'https://inkreach.com',
|
|
name: 'Inkreach',
|
|
description: 'InkReach Official Website',
|
|
defaultLocale: 'en',
|
|
},
|
|
|
|
app: {
|
|
head: {
|
|
link: [
|
|
{ rel: 'icon', type: 'image/png', href: '/logo-橙@2x.png' },
|
|
],
|
|
},
|
|
},
|
|
|
|
runtimeConfig: {
|
|
public: {
|
|
backendUrl: 'http://localhost:3001',
|
|
},
|
|
},
|
|
})
|