Phase 7 features: - Ace Attorney-style PixiJS renderer with camera presets, character poses, dialogue typewriter, and effects engine - Render directives inferred from role, phase, and dialogue keywords - Structured case file generated at session start with witness roster, evidence inventory, and charge sheet - Witness statement events emitted during examination - Audience interaction endpoints: POST /press and /present with rate limiting - Twitch chat adapter (press, present, objection commands) - NDJSON session recording and deterministic replay (CLI flags + env vars) - SSE fixture recorder for browser overlay replay - Prometheus metrics endpoint (GET /api/metrics) with session lifecycle, vote latency, SSE connection, and phase transition telemetry - Docker: TRUST_PROXY support, 127.0.0.1 bind, network isolation Quality review fixes: - C1: Rate-limit /press and /present endpoints (10 req/IP/10s) - C2: Fix Twitch objection to read current count and increment properly - I1: Document /api/metrics in README, docs/api.md, operator-runbook - I2: Comment out unused TWITCH_EVENTSUB_SECRET in .env.example - I3: Fix event-taxonomy render_directive schema (poses/faces maps) - I4: Deduplicate dashboard event mapping into session-snapshot.ts - M1: Match Ace Attorney keywords with or without trailing punctuation - M3: Add SSE fixture recording docs to docs/api.md
35 lines
636 B
Docker
35 lines
636 B
Docker
# syntax=docker/dockerfile:1.7
|
|
|
|
FROM node:22-alpine AS builder
|
|
WORKDIR /app
|
|
|
|
COPY package.json package-lock.json ./
|
|
RUN npm ci
|
|
|
|
COPY tsconfig.json ./
|
|
COPY vite.config.ts ./
|
|
COPY postcss.config.js ./
|
|
COPY tailwind.config.js ./
|
|
COPY src ./src
|
|
COPY dashboard ./dashboard
|
|
COPY public ./public
|
|
COPY db ./db
|
|
|
|
RUN npm run build
|
|
|
|
FROM node:22-alpine AS runner
|
|
WORKDIR /app
|
|
|
|
ENV NODE_ENV=production
|
|
|
|
COPY package.json package-lock.json ./
|
|
RUN npm ci --omit=dev
|
|
|
|
COPY --from=builder /app/dist ./dist
|
|
COPY --from=builder /app/public ./public
|
|
COPY --from=builder /app/db ./db
|
|
|
|
EXPOSE 3001
|
|
|
|
CMD ["sh", "-c", "npm run migrate:dist && npm run start"]
|