# Gegenbuch – läuft auf einem EIGENEN Rechner, nicht dort, wo OpenCRM läuft.
#
# Der Container holt lesend einen Kontrollwert vom CRM (HTTPS + Token mit
# audit:read) und legt seine Einträge in einem Git-Repository auf DIESER
# Maschine ab. Er braucht keinen SSH-Zugang zum CRM, keine Datenbank, keine
# Shell dort. Umgekehrt kennt OpenCRM dieses Gegenbuch überhaupt nicht.
FROM node:20-slim

# git für das Buch, openssh-client für die Signaturen (ssh-keygen).
RUN apt-get update && apt-get install -y --no-install-recommends \
      git openssh-client ca-certificates \
    && rm -rf /var/lib/apt/lists/*

COPY notary.mjs /opt/notary/notary.mjs
COPY entrypoint.sh /opt/notary/entrypoint.sh
RUN chmod +x /opt/notary/entrypoint.sh

# Der Container STARTET als root – aber nur, um die Rechte auf dem
# Datenverzeichnis geradezuziehen. Danach gibt der entrypoint die Privilegien
# ab und arbeitet als unprivilegierter Benutzer weiter.
#
# Grund: Das Datenverzeichnis kommt als Bind-Mount vom Host. Wer das Projekt
# als root geklont hat, hat dort root-eigene Verzeichnisse – ein Container, der
# direkt als UID 1000 startet, kann darin nichts anlegen.
WORKDIR /gegenbuch

ENTRYPOINT ["/opt/notary/entrypoint.sh"]
