diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..3b6eb30 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,47 @@ +# 1. Base image +FROM node:20-alpine AS base + +# 2. Dependencies +FROM base AS deps +RUN apk add --no-cache libc6-compat +WORKDIR /app + +COPY package.json package-lock.json* ./ +RUN npm ci + +# 3. Builder +FROM base AS builder +WORKDIR /app +COPY --from=deps /app/node_modules ./node_modules +COPY . . + +ENV NEXT_TELEMETRY_DISABLED=1 + +RUN npm run build + +# 4. Runner +FROM base AS runner +WORKDIR /app + +ENV NODE_ENV=production +ENV NEXT_TELEMETRY_DISABLED=1 + +RUN addgroup --system --gid 1001 nodejs +RUN adduser --system --uid 1001 nextjs + +COPY --from=builder /app/public ./public + +RUN mkdir .next +RUN chown nextjs:nodejs .next + +COPY --from=builder --chown=nextjs:nodejs /app/.next/standalone ./ +COPY --from=builder --chown=nextjs:nodejs /app/.next/static ./.next/static + +USER nextjs + +EXPOSE 3000 + +ENV PORT=3000 +ENV HOSTNAME="0.0.0.0" + +CMD ["node", "server.js"] diff --git a/app/favicon.ico b/app/favicon.ico index 718d6fe..1700cf6 100644 Binary files a/app/favicon.ico and b/app/favicon.ico differ diff --git a/next.config.ts b/next.config.ts index e9ffa30..68a6c64 100644 --- a/next.config.ts +++ b/next.config.ts @@ -1,7 +1,7 @@ import type { NextConfig } from "next"; const nextConfig: NextConfig = { - /* config options here */ + output: "standalone", }; export default nextConfig; diff --git a/public/favicon_io.zip b/public/favicon_io.zip new file mode 100644 index 0000000..614ee6c Binary files /dev/null and b/public/favicon_io.zip differ diff --git a/public/favicon_io/android-chrome-192x192.png b/public/favicon_io/android-chrome-192x192.png new file mode 100644 index 0000000..87096b6 Binary files /dev/null and b/public/favicon_io/android-chrome-192x192.png differ diff --git a/public/favicon_io/android-chrome-512x512.png b/public/favicon_io/android-chrome-512x512.png new file mode 100644 index 0000000..4ea7dc4 Binary files /dev/null and b/public/favicon_io/android-chrome-512x512.png differ diff --git a/public/favicon_io/apple-touch-icon.png b/public/favicon_io/apple-touch-icon.png new file mode 100644 index 0000000..51aebea Binary files /dev/null and b/public/favicon_io/apple-touch-icon.png differ diff --git a/public/favicon_io/favicon-16x16.png b/public/favicon_io/favicon-16x16.png new file mode 100644 index 0000000..25d0cdd Binary files /dev/null and b/public/favicon_io/favicon-16x16.png differ diff --git a/public/favicon_io/favicon-32x32.png b/public/favicon_io/favicon-32x32.png new file mode 100644 index 0000000..4ce35da Binary files /dev/null and b/public/favicon_io/favicon-32x32.png differ diff --git a/public/favicon_io/favicon.ico b/public/favicon_io/favicon.ico new file mode 100644 index 0000000..1700cf6 Binary files /dev/null and b/public/favicon_io/favicon.ico differ diff --git a/public/favicon_io/site.webmanifest b/public/favicon_io/site.webmanifest new file mode 100644 index 0000000..45dc8a2 --- /dev/null +++ b/public/favicon_io/site.webmanifest @@ -0,0 +1 @@ +{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} \ No newline at end of file