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"]
