From 7489bdef1453850f1dfb1f9f5bb76d81ca830348 Mon Sep 17 00:00:00 2001 From: kevin-asprec Date: Tue, 14 Apr 2026 06:05:36 +0800 Subject: [PATCH 1/8] fix: install typescript for next.config.ts transpilation in Dockerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index a7d7d9b..d870667 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,7 @@ WORKDIR /app COPY package.json package-lock.json* ./ RUN npm install COPY . . -RUN npx next build +RUN npm install --save-dev typescript && npx next build FROM node:20-alpine AS runner WORKDIR /app -- 2.43.0 From cc52551b5a5927927611071c4ca53859d3a0a595 Mon Sep 17 00:00:00 2001 From: kevin-asprec Date: Tue, 14 Apr 2026 06:31:04 +0800 Subject: [PATCH 2/8] fix: use next.config.mjs to avoid typescript build dependency --- next.config.mjs | 7 +++++++ next.config.ts | 3 --- 2 files changed, 7 insertions(+), 3 deletions(-) create mode 100644 next.config.mjs delete mode 100644 next.config.ts diff --git a/next.config.mjs b/next.config.mjs new file mode 100644 index 0000000..ab09779 --- /dev/null +++ b/next.config.mjs @@ -0,0 +1,7 @@ +/** @type {import('next').NextConfig} */ +const nextConfig = { + transpilePackages: ['@fiberops/shared'], + output: 'standalone', +}; + +export default nextConfig; diff --git a/next.config.ts b/next.config.ts deleted file mode 100644 index a327e25..0000000 --- a/next.config.ts +++ /dev/null @@ -1,3 +0,0 @@ -import type { NextConfig } from 'next'; -const nextConfig: NextConfig = { output: 'standalone' }; -export default nextConfig; -- 2.43.0 From 3040d4f6bf7f134b1d8683e550fd9379421ec8fb Mon Sep 17 00:00:00 2001 From: kevin-asprec Date: Tue, 14 Apr 2026 06:41:26 +0800 Subject: [PATCH 3/8] fix: add cache bust arg to force clean Docker build --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index d870667..05619e6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,5 @@ FROM node:20-alpine AS builder +ARG CACHE_BUST=1 WORKDIR /app COPY package.json package-lock.json* ./ RUN npm install -- 2.43.0 From 337a780d0ca7b2a07a62cc40950b6dbf560ec13f Mon Sep 17 00:00:00 2001 From: kevin-asprec Date: Tue, 14 Apr 2026 09:00:58 +0800 Subject: [PATCH 4/8] fix: set NODE_ENV=development during build to include devDependencies --- Dockerfile | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 05619e6..eb1081b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,10 +1,13 @@ FROM node:20-alpine AS builder ARG CACHE_BUST=1 +ENV NODE_ENV=development WORKDIR /app COPY package.json package-lock.json* ./ +COPY packages/shared/package.json ./packages/shared/ RUN npm install +COPY packages/shared/ ./packages/shared/ COPY . . -RUN npm install --save-dev typescript && npx next build +RUN npx next build FROM node:20-alpine AS runner WORKDIR /app @@ -12,7 +15,7 @@ RUN apk add --no-cache dumb-init RUN addgroup --system --gid 1001 nodejs && adduser --system --uid 1001 nextjs COPY --from=builder /app/.next/standalone ./ COPY --from=builder /app/.next/static ./.next/static -ENV NODE_ENV=production HOSTNAME=0.0.0.0 PORT=3002 +ENV NODE_ENV=production HOSTNAME=0.0.0.0 EXPOSE 3002 USER nextjs ENTRYPOINT ["dumb-init", "--"] -- 2.43.0 From 5de24a78d37e7b35d476034b862350934d494365 Mon Sep 17 00:00:00 2001 From: kevin-asprec Date: Tue, 14 Apr 2026 09:43:02 +0800 Subject: [PATCH 5/8] fix: add not-found.tsx to prevent Html import error during build --- src/app/not-found.tsx | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 src/app/not-found.tsx diff --git a/src/app/not-found.tsx b/src/app/not-found.tsx new file mode 100644 index 0000000..3cd9eb3 --- /dev/null +++ b/src/app/not-found.tsx @@ -0,0 +1,10 @@ +export default function NotFound() { + return ( + + +

404 - Page Not Found

+

The page you are looking for does not exist.

+ + + ); +} -- 2.43.0 From b079df58e44c9226bbfa79b30f040aa80c7adb82 Mon Sep 17 00:00:00 2001 From: kevin-asprec Date: Tue, 14 Apr 2026 20:12:59 +0800 Subject: [PATCH 6/8] fix: remove ENV NODE_ENV=development that breaks Next.js static generation --- Dockerfile | 2 -- 1 file changed, 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index eb1081b..81a5f05 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,4 @@ FROM node:20-alpine AS builder -ARG CACHE_BUST=1 -ENV NODE_ENV=development WORKDIR /app COPY package.json package-lock.json* ./ COPY packages/shared/package.json ./packages/shared/ -- 2.43.0 From 13d1fdfdefbd6f50709738e9fc6f9f1e78c7baad Mon Sep 17 00:00:00 2001 From: kevin-asprec Date: Tue, 14 Apr 2026 20:42:14 +0800 Subject: [PATCH 7/8] fix: remove packages/shared and override NODE_ENV for Coolify builds Portal has no shared package dependency. Coolify injects ARG NODE_ENV=production which skips devDependencies. --- Dockerfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 81a5f05..09b07ec 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,10 +1,11 @@ FROM node:20-alpine AS builder +ARG NODE_ENV=production +ENV NODE_ENV=development WORKDIR /app COPY package.json package-lock.json* ./ -COPY packages/shared/package.json ./packages/shared/ RUN npm install -COPY packages/shared/ ./packages/shared/ COPY . . +ENV NODE_ENV=production RUN npx next build FROM node:20-alpine AS runner -- 2.43.0 From 4d5177004c5672c6da615244ef78660fb38a4ace Mon Sep 17 00:00:00 2001 From: john kevin asprec Date: Tue, 16 Jun 2026 22:33:09 +0800 Subject: [PATCH 8/8] chore: update Dockerfile to explicitly set PORT environment variable to 3002 --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 09b07ec..753f4ba 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,7 +14,7 @@ RUN apk add --no-cache dumb-init RUN addgroup --system --gid 1001 nodejs && adduser --system --uid 1001 nextjs COPY --from=builder /app/.next/standalone ./ COPY --from=builder /app/.next/static ./.next/static -ENV NODE_ENV=production HOSTNAME=0.0.0.0 +ENV NODE_ENV=production HOSTNAME=0.0.0.0 PORT=3002 EXPOSE 3002 USER nextjs ENTRYPOINT ["dumb-init", "--"] -- 2.43.0