The overview leads with what Logbuch is for, a new Anleitung page renders the editorial guide for humans, and the user list stops claiming accounts come from a shell command: they appear on first sign in.
43 lines
1.1 KiB
TypeScript
43 lines
1.1 KiB
TypeScript
import type { NextConfig } from 'next'
|
|
import createNextIntlPlugin from 'next-intl/plugin'
|
|
|
|
const sharpNative = [
|
|
'./node_modules/.pnpm/@img+sharp-libvips-*/**',
|
|
'./node_modules/.pnpm/@img+sharp-linux*/**',
|
|
'./node_modules/@img/**',
|
|
]
|
|
|
|
const config: NextConfig = {
|
|
output: 'standalone',
|
|
outputFileTracingIncludes: {
|
|
'/api/v1/style-guide': ['./docs/style-guide.md'],
|
|
'/api/v1/skill': ['./docs/skill.md'],
|
|
'/admin/api/files/skill': ['./docs/skill.md'],
|
|
'/admin/api/files/style-guide': ['./docs/style-guide.md'],
|
|
'/admin/guide': ['./docs/style-guide.md'],
|
|
'/': ['./node_modules/drizzle-orm/**'],
|
|
'/api/v1/media': sharpNative,
|
|
'/admin/media': sharpNative,
|
|
'/admin/media/[slug]': sharpNative,
|
|
'/admin/entries/[id]': sharpNative,
|
|
'/admin/entries/new': sharpNative,
|
|
},
|
|
typedRoutes: true,
|
|
experimental: {
|
|
useTypeScriptCli: true,
|
|
serverActions: {
|
|
bodySizeLimit: '16mb',
|
|
},
|
|
},
|
|
images: {
|
|
formats: ['image/webp'],
|
|
deviceSizes: [480, 640, 960, 1200, 1600, 1920],
|
|
imageSizes: [96, 160, 240, 320],
|
|
minimumCacheTTL: 31536000,
|
|
},
|
|
}
|
|
|
|
const withNextIntl = createNextIntlPlugin('./src/i18n/request.ts')
|
|
|
|
export default withNextIntl(config)
|