diff --git a/deploy/docker/Dockerfile.server b/deploy/docker/Dockerfile.server index 0622f31..7b6e621 100644 --- a/deploy/docker/Dockerfile.server +++ b/deploy/docker/Dockerfile.server @@ -3,7 +3,7 @@ FROM node:23-bookworm-slim AS builder WORKDIR /app -# Install build deps for argon2 +# Build deps for argon2 + bsb-plugin-cli RUN apt-get update && apt-get install -y --no-install-recommends \ build-essential python3 \ && rm -rf /var/lib/apt/lists/* @@ -11,15 +11,20 @@ RUN apt-get update && apt-get install -y --no-install-recommends \ COPY package.json package-lock.json ./ COPY server/package.json ./server/ COPY tsconfig.base.json ./ -RUN npm ci --ignore-scripts && npm rebuild argon2 +RUN npm ci && npm rebuild argon2 COPY server ./server +# Run BSB build — extracts schemas + compiles TS + generates plugin manifests +WORKDIR /app/server +RUN npm run build + # ---- Runtime image ---- FROM node:23-bookworm-slim +# ffmpeg for camera snapshot capture (optional but needed for /admin/entities/:id/snapshot) RUN apt-get update && apt-get install -y --no-install-recommends \ - ca-certificates \ + ca-certificates ffmpeg \ && rm -rf /var/lib/apt/lists/* RUN useradd -m -d /var/lib/betterframe -s /bin/false betterframe @@ -31,7 +36,6 @@ COPY --from=builder /app/server ./server COPY --from=builder /app/tsconfig.base.json ./ COPY --from=builder /app/package.json ./ -# Default data dir RUN mkdir -p /var/lib/betterframe && chown betterframe:betterframe /var/lib/betterframe VOLUME /var/lib/betterframe diff --git a/server/src/web-templates/admin-pages.tsx b/server/src/web-templates/admin-pages.tsx index c03af22..a075ca3 100644 --- a/server/src/web-templates/admin-pages.tsx +++ b/server/src/web-templates/admin-pages.tsx @@ -2043,19 +2043,23 @@ export function DisplayEditPage(props: DisplayEditPageProps) { {props.attachedLayouts.length > 0 && d.kiosk_id ? (