Obsidian Quartz4 docker compose setup

A quick guide on how to run quartz4 with docker compose.

docker-compose.yml:

services:
  quartz:
    build: .
    container_name: quartz4
    ports:
      - "8080:8080"
      - "3001:3001"
    volumes:
      - ./content:/usr/src/app/content
    restart: unless-stopped

Dockerfile:

FROM node:22-bookworm-slim AS builder
RUN apt-get update \
  && apt-get install -y --no-install-recommends git ca-certificates \
  && rm -rf /var/lib/apt/lists/*

WORKDIR /usr/src/app
RUN git clone --depth 1 --branch v4 https://github.com/jackyzha0/quartz.git .
RUN npm ci

FROM node:22-bookworm-slim
WORKDIR /usr/src/app
COPY --from=builder /usr/src/app/ /usr/src/app/

EXPOSE 8080 3001
CMD ["npx", "quartz", "build", "--serve"]

create a content folder locally:

mkdir ./content

the launch the Application.