55 lines
1.2 KiB
JavaScript
55 lines
1.2 KiB
JavaScript
/** @type {import('next').NextConfig} */
|
|
const nextConfig = {
|
|
experimental: {
|
|
// Enable experimental features
|
|
serverActions: {
|
|
allowedOrigins: ['localhost:3000', '127.0.0.1:3000']
|
|
},
|
|
},
|
|
// Allow dev origins
|
|
allowedDevOrigins: ['127.0.0.1:3000', 'localhost:3000'],
|
|
images: {
|
|
domains: ['localhost', 'supabase.co'],
|
|
remotePatterns: [
|
|
{
|
|
protocol: 'https',
|
|
hostname: '**',
|
|
},
|
|
],
|
|
},
|
|
// Enable standalone output for Docker
|
|
output: 'standalone',
|
|
// PWA configuration
|
|
compiler: {
|
|
removeConsole: process.env.NODE_ENV === 'production',
|
|
},
|
|
// Security headers
|
|
async headers() {
|
|
return [
|
|
{
|
|
source: '/(.*)',
|
|
headers: [
|
|
{
|
|
key: 'X-Frame-Options',
|
|
value: 'DENY',
|
|
},
|
|
{
|
|
key: 'X-Content-Type-Options',
|
|
value: 'nosniff',
|
|
},
|
|
{
|
|
key: 'Referrer-Policy',
|
|
value: 'strict-origin-when-cross-origin',
|
|
},
|
|
{
|
|
key: 'Permissions-Policy',
|
|
value: 'camera=(), microphone=(), geolocation=()',
|
|
},
|
|
],
|
|
},
|
|
]
|
|
},
|
|
}
|
|
|
|
module.exports = nextConfig
|