# BizGaze Support — server image # Data store is PostgreSQL (DB_BACKEND=pg; the `pg` client is a prod dependency installed below). SQLite was # retired 2026-08-12 — one schema source of truth (db/schema.pg.sql), no dual-maintenance drift. FROM node:24-alpine # ffmpeg: server-side video poster thumbnails (see static.js /thumbs/). Small on Alpine. RUN apk add --no-cache ffmpeg ENV NODE_ENV=production WORKDIR /app/server # Install deps first for layer caching (only `ws`, plus optional nodemailer) COPY server/package*.json ./ RUN npm install --omit=dev --no-audit --no-fund # App source COPY server/ ./ # Served HTTP port (NPM terminates TLS and proxies here). The DB is Postgres (DATABASE_URL, set via .env); # the /data volume holds uploads / recordings / transcripts / downloads (see docker-compose.yml). ENV PORT=8090 EXPOSE 8090 CMD ["node", "server.js"]