chadtmiller.com/pds.js
An atproto PDS in JavaScript, for Cloudflare Workers and Node
0
0
FROM node:20-slim
# Install pnpm
RUN npm install -g pnpm
WORKDIR /app
# Copy package files first for better caching
COPY package.json pnpm-lock.yaml* pnpm-workspace.yaml* ./
COPY packages/core/package.json ./packages/core/
COPY packages/storage-sqlite/package.json ./packages/storage-sqlite/
COPY packages/blobs-fs/package.json ./packages/blobs-fs/
COPY packages/readonly/package.json ./packages/readonly/
# Install dependencies
RUN pnpm install --frozen-lockfile || pnpm install
# Copy source code
COPY packages/core/ ./packages/core/
COPY packages/storage-sqlite/ ./packages/storage-sqlite/
COPY packages/blobs-fs/ ./packages/blobs-fs/
COPY packages/readonly/ ./packages/readonly/
# Create data directories
RUN mkdir -p /data/repos /data/blobs /data/db
# Set environment variables
ENV PDS_PORT=3000
ENV PDS_HOSTNAME=localhost
# Expose port
EXPOSE 3000
# Run the read-only PDS
ENTRYPOINT ["node", "packages/readonly/src/cli.js"]
CMD ["--data-dir", "/data/db", "--port", "3000"]