plebdevs/next.config.js
2025-01-03 11:59:27 -06:00

99 lines
2.6 KiB
JavaScript

const removeImports = require("next-remove-imports")();
module.exports = removeImports({
reactStrictMode: true,
images: {
domains: ['localhost', 'secure.gravatar.com', 'plebdevs-three.vercel.app', 'plebdevs.com', 'plebdevs-bucket.nyc3.cdn.digitaloceanspaces.com', 'avatars.githubusercontent.com'],
},
webpack(config, options) {
return config;
},
async rewrites() {
return [
{
source: '/api/cron',
destination: '/api/cron',
},
{
source: "/.well-known/nostr.json",
destination: "/api/nip05",
},
{
source: '/.well-known/lnurlp/:slug',
destination: '/api/lightning-address/lnurlp/:slug',
}
];
},
async headers() {
return [
{
source: "/.well-known/:slug*",
headers: [
{
key: "Access-Control-Allow-Origin",
value: "*"
},
{
key: "Access-Control-Allow-Methods",
value: "GET, POST, OPTIONS"
},
{
key: "Access-Control-Allow-Headers",
value: "Content-Type, Authorization"
}
]
},
{
source: "/api/:slug*",
headers: [
{
key: "Access-Control-Allow-Origin",
value: process.env.BACKEND_URL
},
{
key: "Access-Control-Allow-Methods",
value: "GET, POST, PUT, DELETE, OPTIONS",
},
{
key: "Access-Control-Allow-Headers",
value: "Content-Type, Authorization",
},
{
key: "X-Frame-Options",
value: "DENY",
},
{
key: "X-Content-Type-Options",
value: "nosniff",
},
{
key: "Referrer-Policy",
value: "strict-origin-when-cross-origin",
},
{
key: "Content-Security-Policy",
value: "default-src 'self'; frame-ancestors 'none';",
},
{
key: "Strict-Transport-Security",
value: "max-age=31536000; includeSubDomains; preload"
},
],
},
];
},
env: {
KV_URL: process.env.NODE_ENV !== 'production'
? process.env.REDIS_URL
: process.env.KV_URL,
KV_REST_API_URL: process.env.NODE_ENV !== 'production'
? process.env.REDIS_URL
: process.env.KV_REST_API_URL,
KV_REST_API_TOKEN: process.env.NODE_ENV !== 'production'
? 'dummy_token'
: process.env.KV_REST_API_TOKEN,
KV_REST_API_READ_ONLY_TOKEN: process.env.NODE_ENV !== 'production'
? 'dummy_token'
: process.env.KV_REST_API_READ_ONLY_TOKEN,
},
});