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:
2026-03-21 15:17:56 +00:00
commit 1467a948d0
65 changed files with 5525 additions and 0 deletions

26
Dockerfile Normal file
View 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"]