diff --git a/.gitignore b/.gitignore index 2a49bc04e07..dff64e3c9e9 100644 --- a/.gitignore +++ b/.gitignore @@ -43,8 +43,6 @@ litellm/proxy/tests/package.json litellm/proxy/tests/package-lock.json ui/litellm-dashboard/.next ui/litellm-dashboard/node_modules -# Next.js static export — built inside Docker, not checked in. -litellm/proxy/_experimental/out/ ui/litellm-dashboard/next-env.d.ts ui/litellm-dashboard/package.json ui/litellm-dashboard/package-lock.json diff --git a/docker/Dockerfile.non_root b/docker/Dockerfile.non_root index ed84e573de4..2729babb6d6 100644 --- a/docker/Dockerfile.non_root +++ b/docker/Dockerfile.non_root @@ -55,18 +55,12 @@ COPY . . # Set non-root flag for build time consistency ENV LITELLM_NON_ROOT=true -# Build the Next.js Admin UI from source. -# nodejs + npm are already installed in this stage (see apk add above). -RUN --mount=type=cache,target=/root/.npm,id=litellm-npm-cache \ - cd /app/ui/litellm-dashboard && \ - NEXT_TELEMETRY_DISABLED=1 npm_config_fund=false npm_config_audit=false \ - npm ci --prefer-offline && \ - NEXT_TELEMETRY_DISABLED=1 npm run build - -# Stage the built UI and restructure extensionless routes -# (foo.html -> foo/index.html) to match the layout proxy_server.py expects. +# Stage the pre-built Admin UI from the checked-in Next.js static export. +# _experimental/out/ is regenerated as part of the release runbook. +# Restructure extensionless routes (foo.html -> foo/index.html) to match the layout +# proxy_server.py expects, and drop a readiness marker. RUN mkdir -p /var/lib/litellm/ui /var/lib/litellm/assets && \ - cp -r /app/ui/litellm-dashboard/out/. /var/lib/litellm/ui/ && \ + cp -r /app/litellm/proxy/_experimental/out/. /var/lib/litellm/ui/ && \ cp /app/litellm/proxy/logo.jpg /var/lib/litellm/assets/logo.jpg && \ ( cd /var/lib/litellm/ui && \ for html_file in *.html; do \