# syntax=docker/dockerfile:1 FROM node:22-bookworm-slim # Install system libraries needed by native Node modules (better-sqlite3, canvas, sharp) RUN apt-get update && apt-get install -y --no-install-recommends \ ca-certificates \ curl \ python3 \ make \ g++ \ libcairo2-dev \ libpango1.0-dev \ libjpeg-dev \ libgif-dev \ librsvg2-dev \ && rm -rf /var/lib/apt/lists/* WORKDIR /app # Copy sibling dependencies referenced by package.json ("file:../dashdbschema", "file:../llmorbiter") COPY dashdbschema /dashdbschema COPY llmorbiter /llmorbiter # Copy dashback package manifests COPY dashback/package*.json ./ # Install all dependencies (including devDependencies required by OpenAPI live docs generator) RUN npm install # Copy application source code COPY dashback/src ./src COPY dashback/scripts ./scripts # Set production defaults ENV NODE_ENV=production \ HOST=0.0.0.0 \ PORT=4208 \ HTTPS_PORT=0 \ SQLITE_PATH=/app/data/dash.db \ STORAGE_DIR=/app/data/storage \ BACKUP_DIR=/app/data/backups EXPOSE 4208 CMD ["node", "src/index.js"]