pinned / Dockerfile
igorktech's picture
Pinned demo: two recorded boards, agent off
6f91ce5 verified
Raw History Blame Contribute Delete
988 Bytes
# Pinned demo on Hugging Face Spaces (sdk: docker). The build context is the folder
# deploy/hf-space/build.sh assembles: a copy of client/ plus pitch.mp4.
FROM node:22-slim
# HF runs the container as uid 1000; in node images that's the existing `node` user.
RUN corepack enable
USER node
WORKDIR /home/node/app
COPY --chown=node package.json pnpm-lock.yaml pnpm-workspace.yaml ./
RUN pnpm install --frozen-lockfile
COPY --chown=node . .
# The tldraw license key arrives as a Space variable (HF passes variables as build args).
ARG VITE_TLDRAW_LICENSE_KEY
RUN if [ -z "$VITE_TLDRAW_LICENSE_KEY" ]; then \
echo "VITE_TLDRAW_LICENSE_KEY is empty: set it as a variable on the Space"; exit 1; \
fi
RUN VITE_TLDRAW_LICENSE_KEY="$VITE_TLDRAW_LICENSE_KEY" pnpm build
# demo mode: every visitor gets a freshly seeded board, the agent is off, the video streams
ENV PORT=7860 DATA_DIR=/tmp/pinned DEMO_MODE=1 DEMO_VIDEO=/home/node/app/pitch.mp4
EXPOSE 7860
CMD ["node", "server/server.ts"]