diff --git a/Dockerfile b/Dockerfile index 8876606..5cad5a1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -23,10 +23,18 @@ FROM base AS builder # Set environment variables for build (moved earlier for better caching) ENV NEXT_TELEMETRY_DISABLED=1 +# NEXT_PUBLIC_ vars must be present at build time for Next.js to inline them +ARG NEXT_PUBLIC_DISABLE_EMAIL_PASSWORD +ARG NEXT_PUBLIC_OIDC_PROVIDER_ID +ARG NEXT_PUBLIC_BETTER_AUTH_URL +ENV NEXT_PUBLIC_DISABLE_EMAIL_PASSWORD=${NEXT_PUBLIC_DISABLE_EMAIL_PASSWORD} +ENV NEXT_PUBLIC_OIDC_PROVIDER_ID=${NEXT_PUBLIC_OIDC_PROVIDER_ID} +ENV NEXT_PUBLIC_BETTER_AUTH_URL=${NEXT_PUBLIC_BETTER_AUTH_URL} + COPY --from=deps /app/node_modules ./node_modules COPY . . -RUN pnpm build +RUN DATABASE_URL="postgresql://dummy:dummy@localhost:5432/dummy" pnpm prisma generate && pnpm build # Production image FROM node:24.10.0-alpine AS production diff --git a/app/[lang]/login/login-client.tsx b/app/[lang]/login/login-client.tsx index 76e8486..2246add 100644 --- a/app/[lang]/login/login-client.tsx +++ b/app/[lang]/login/login-client.tsx @@ -94,66 +94,82 @@ export function LoginPageClient() { {dict.title} -
-
- - setEmail(e.target.value)} - required - disabled={isLoading} - suppressHydrationWarning + {process.env.NEXT_PUBLIC_DISABLE_EMAIL_PASSWORD !== "true" && ( + +
+ + setEmail(e.target.value)} + required + disabled={isLoading} + suppressHydrationWarning + className="w-full" + placeholder={dict.emailLabel} + /> +
+
+ + setPassword(e.target.value)} + required + disabled={isLoading} + suppressHydrationWarning + className="w-full" + placeholder={dict.passwordLabel} + /> +
+ {error && } + -
-
- - setPassword(e.target.value)} - required - disabled={isLoading} - suppressHydrationWarning - className="w-full" - placeholder={dict.passwordLabel} + + {dict.signInButton} + + + )} + + {error && + process.env.NEXT_PUBLIC_DISABLE_EMAIL_PASSWORD === "true" && ( + -
- {error && } - - - {dict.signInButton} - - + )} {process.env.NEXT_PUBLIC_OIDC_PROVIDER_ID && ( <> -
-
- + {process.env.NEXT_PUBLIC_DISABLE_EMAIL_PASSWORD !== "true" && ( +
+
+ +
+
+ + {dict.signInWith} + +
-
- - {dict.signInWith} - -
-
+ )}