Initial server: Deno/Hono backend with auth, CSRF, Hydra consent, and flow proxy
Hono app serving as the login UI and admin panel for Ory Kratos + Hydra. Handles OIDC consent/login flows, session management, avatar uploads, and proxies Kratos admin/public APIs.
This commit is contained in:
26
Dockerfile
Normal file
26
Dockerfile
Normal file
@@ -0,0 +1,26 @@
|
||||
# Stage 1: build UI
|
||||
FROM node:22-alpine AS ui-builder
|
||||
WORKDIR /app/ui
|
||||
COPY ui/package.json ui/package-lock.json* ./
|
||||
RUN npm ci
|
||||
COPY ui/ ./
|
||||
RUN npm run build
|
||||
|
||||
# Stage 2: compile Deno binary
|
||||
FROM denoland/deno:2.7.3 AS deno-builder
|
||||
WORKDIR /app
|
||||
COPY deno.json deno.lock* ./
|
||||
COPY server/ ./server/
|
||||
COPY main.ts ./
|
||||
COPY --from=ui-builder /app/ui/dist ./ui/dist
|
||||
RUN deno cache main.ts
|
||||
RUN deno task compile
|
||||
|
||||
# Stage 3: distroless
|
||||
FROM gcr.io/distroless/cc-debian12:nonroot
|
||||
WORKDIR /app
|
||||
# Copy binary and UI dist so serveStatic({ root: "./ui/dist" }) resolves from /app
|
||||
COPY --from=deno-builder /app/kratos-admin ./
|
||||
COPY --from=ui-builder /app/ui/dist ./ui/dist
|
||||
EXPOSE 3000
|
||||
ENTRYPOINT ["/app/kratos-admin"]
|
||||
Reference in New Issue
Block a user