# SPDX-FileCopyrightText: 2023 XWiki CryptPad Team and contributors # # SPDX-License-Identifier: AGPL-3.0-or-later # # Tweaks by Deuxfleurs # Multistage build to reduce image size and increase security FROM node:lts-slim AS build ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get install --no-install-recommends -y \ ca-certificates tar wget # Download the release tarball RUN wget https://github.com/cryptpad/cryptpad/archive/refs/tags/2024.9.0.tar.gz -O cryptpad.tar.gz # Create folder for CryptPad RUN mkdir /cryptpad # Extract the release into /cryptpad RUN tar xvzf cryptpad.tar.gz -C /cryptpad --strip-components 1 # Go to /cryptpad WORKDIR /cryptpad # Install dependencies RUN npm install --production && npm run install:components # Create the actual CryptPad image FROM node:lts-slim ENV DEBIAN_FRONTEND=noninteractive # Install curl for healthcheck # Install git, rdfind and unzip for install-onlyoffice.sh RUN apt-get update && apt-get install --no-install-recommends -y \ curl ca-certificates git rdfind unzip && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* # Copy cryptpad with installed modules COPY --from=build /cryptpad /cryptpad # Set workdir to cryptpad WORKDIR /cryptpad # Install onlyoffice RUN ./install-onlyoffice.sh --accept-license --trust-repository # Build static pages (?) unsure we need this RUN npm run build # Healthcheck HEALTHCHECK --interval=1m CMD curl -f http://localhost:3000/ || exit 1 # Ports EXPOSE 3000 3003 # Run cryptpad on startup CMD ["npm", "start"]