Files
dyolink/frontend/next.config.ts

53 lines
1.3 KiB
TypeScript

import type { NextConfig } from "next";
function publicAppHostname(): string | null {
const url = process.env.NEXT_PUBLIC_APP_URL;
if (!url) return null;
try {
return new URL(url).hostname;
} catch {
return null;
}
}
const appHost = publicAppHostname();
/** @type {import('next').NextConfig} */
const nextConfig = {
// Enable React strict mode
reactStrictMode: true,
// Disable x-powered-by header for security
poweredByHeader: false,
// Configure allowed remote image sources (hostname derived from NEXT_PUBLIC_APP_URL at build time)
images: {
remotePatterns: [
{ protocol: "http", hostname: "localhost" },
...(appHost
? [
{ protocol: "http" as const, hostname: appHost },
{ protocol: "https" as const, hostname: appHost },
]
: []),
{ protocol: "https", hostname: "dyolink.com" },
{ protocol: "https", hostname: "www.dyolink.com" },
],
},
// Environment variables that will be available at build time
env: {
NEXT_PUBLIC_APP_NAME: process.env.NEXT_PUBLIC_APP_NAME,
NEXT_PUBLIC_APP_URL: process.env.NEXT_PUBLIC_APP_URL,
NEXT_PUBLIC_API_URL: process.env.NEXT_PUBLIC_API_URL,
},
// Output configuration
output: 'standalone', // Reduces Docker image size
// Compress with gzip
compress: true,
}
module.exports = nextConfig