FROM node:22-slim # Install git, curl, patchelf, and other deps RUN apt-get update && apt-get install -y \ git \ curl \ ca-certificates \ patchelf \ && rm -rf /var/lib/apt/lists/* # Install carry (local-first semantic DB) — patch Nix-built binary for Debian RUN curl -fsSL -o /usr/local/bin/carry \ https://github.com/tonk-labs/tonk/releases/download/latest/carry-linux-x86_64 \ && chmod +x /usr/local/bin/carry \ && patchelf --set-interpreter /lib64/ld-linux-x86-64.so.2 /usr/local/bin/carry \ && apt-get purge -y patchelf && apt-get autoremove -y && rm -rf /var/lib/apt/lists/* WORKDIR /app # Install ob (Obsidian headless CLI) globally RUN npm install -g obsidian-headless # Install deps COPY package.json ./ RUN npm install --production # Copy analysis engine (ARG to bust cache on source changes) ARG BUILD_DATE=unknown COPY server.ts ./ COPY analysis.ts ./ COPY sync.ts ./ # Create data directories RUN mkdir -p /data/vault /data/carry EXPOSE 8080 CMD ["node", "--experimental-strip-types", "server.ts"]