From 8ce9314887ddb82aebcf90e35eb6a7840eb10ca6 Mon Sep 17 00:00:00 2001 From: pavel444-byte Date: Thu, 20 Aug 2026 13:38:32 +0500 Subject: [PATCH] fix(web): serve Nitro assets reliably Co-authored-by: multica-agent --- Dockerfile | 5 ----- apps/web/nuxt.config.ts | 7 +++++++ 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index 88b0705..217aeab 100644 --- a/Dockerfile +++ b/Dockerfile @@ -61,11 +61,6 @@ COPY --from=build /app/apps/worker apps/worker COPY --from=build /app/packages/shared packages/shared COPY --from=build /app/packages/game-engine packages/game-engine -# Nitro 2.10 resolves file-backed public assets from the directory containing -# its split runtime chunk. Keep the generated output in its standard location -# and expose it at that runtime path without storing a second copy. -RUN ln -s ../../public apps/web/.output/server/chunks/public - EXPOSE 3000 # Coolify (and other hosts) override PORT at runtime; probe that port, not a diff --git a/apps/web/nuxt.config.ts b/apps/web/nuxt.config.ts index 4683740..d4803c2 100644 --- a/apps/web/nuxt.config.ts +++ b/apps/web/nuxt.config.ts @@ -3,6 +3,13 @@ export default defineNuxtConfig({ devtools: { enabled: false }, css: ['~/assets/css/main.css'], modules: [], + nitro: { + // Nitro 2.10 resolves file-backed assets relative to its split runtime + // chunk, which makes every /_nuxt request fail outside the Docker-only + // symlink workaround. Embedding them keeps every production launcher + // (preview, Docker, and managed hosts) on the same reliable code path. + serveStatic: 'inline', + }, runtimeConfig: { aiProvider: process.env.AI_PROVIDER ?? 'openrouter', openrouterApiKey: process.env.OPENROUTER_API_KEY,