// next.config.ts import type { NextConfig } from "next"; const nextConfig: NextConfig = { images: { formats: ["image/avif", "image/webp"], remotePatterns: [{ protocol: "https", hostname: "netrunner-vpn.com" }], }, async rewrites() { return { // beforeFiles: срабатывает до проверки файлов в /public — отдаёт статический // doom.html по человекочитаемому пути /doom (пасхалка с браузерным DOOM). beforeFiles: [ { source: "/doom", destination: "/doom.html", }, ], // fallback: срабатывает только если ни один маршрут/файл Next.js не подошёл — // проксирует запросы фронта на Rust-шлюз proxy-ws (гостевая книга, спидтест и т.д.), // чтобы браузер обращался к тому же origin и не упирался в CORS. В контейнере // прод-сборка резолвит ws-proxy по имени докер-сервиса, в деве — на localhost. fallback: [ { source: "/api/proxy/:path*", destination: process.env.NODE_ENV === "production" ? "http://ws-proxy:3001/:path*" : "http://127.0.0.1:3001/:path*", }, ], }; }, }; export default nextConfig;