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