- Express + TypeScript backend with SQLite (default) or PostgreSQL support via DB_DRIVER env var; dual-dialect migration runner with adapter pattern - React + Vite + TailwindCSS frontend with hls.js player - RTMP ingest via node-media-server 2.3.9 → HLS segments served by Express - Multi-provider OIDC auth (openid-client v5) + local email/password fallback - First-run setup page creates local admin account (invite-only provisioning) - Valkey (Redis-compatible) session store via connect-redis - Podman compose: default SQLite stack; --profile postgres for PostgreSQL - Fix: CSP media-src/worker-src blob: directives required by hls.js MSE API - Fix: video element muted for autoplay policy compliance Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
7 lines
237 B
Docker
7 lines
237 B
Docker
# Development container — mounts source as volumes, uses tsx watch + vite dev server
|
|
FROM node:20-alpine
|
|
RUN apk add --no-cache ffmpeg
|
|
WORKDIR /app
|
|
EXPOSE 3000 5173 1935
|
|
CMD ["sh", "-c", "cd /app/server && npm install && npm run dev"]
|