Index: Dockerfile
===================================================================
--- Dockerfile	(revision 5a2cb69938b7be48d3e1d8f2ae4465720f9e2721)
+++ Dockerfile	(revision 5a2cb69938b7be48d3e1d8f2ae4465720f9e2721)
@@ -0,0 +1,38 @@
+# syntax=docker/dockerfile:1
+# ──────────────────────────────────────────────────────────────────────────
+# Klonkt — zelf-host image. Multi-stage: native deps compileren in een volle
+# image, dan een slanke runtime. ffmpeg wordt meegebundeld via ffmpeg-static
+# (npm), cwebp komt uit het Debian-pakket 'webp'.
+# ──────────────────────────────────────────────────────────────────────────
+
+# ---- builder: native modules (better-sqlite3) + ffmpeg-static ophalen ----
+FROM node:20-bookworm AS builder
+WORKDIR /app
+# Build-tools voor het geval better-sqlite3 from-source moet (anders prebuilt).
+RUN apt-get update && apt-get install -y --no-install-recommends python3 make g++ \
+    && rm -rf /var/lib/apt/lists/*
+COPY package.json package-lock.json ./
+# Productie-deps; install-scripts draaien (better-sqlite3 build + ffmpeg download).
+RUN npm ci --omit=dev
+
+# ---- runtime: slank image + cwebp ----
+FROM node:20-bookworm-slim AS runtime
+ENV NODE_ENV=production \
+    PORT=3000
+WORKDIR /app
+# cwebp = afbeelding→WebP (optioneel in de app, maar handig); ca-certificates
+# voor uitgaande HTTPS (license-server, SMTP, Google).
+RUN apt-get update && apt-get install -y --no-install-recommends webp ca-certificates \
+    && rm -rf /var/lib/apt/lists/*
+# node_modules (incl. gecompileerde better-sqlite3 + gebundelde ffmpeg) uit builder.
+COPY --from=builder /app/node_modules ./node_modules
+# App-broncode.
+COPY . .
+# Persistente data leeft hier (DB, media, audio) — mount-punt voor een volume.
+RUN mkdir -p storage/media storage/audio && chown -R node:node /app
+USER node
+EXPOSE 3000
+# Simpele healthcheck via Node's ingebouwde fetch (Node 20).
+HEALTHCHECK --interval=30s --timeout=5s --start-period=20s --retries=3 \
+  CMD node -e "fetch('http://127.0.0.1:'+(process.env.PORT||3000)+'/').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"
+CMD ["node", "src/server.js"]
