# Gegenbuch für OpenCRM
# =====================
# Gehört auf einen EIGENEN Rechner – nicht dorthin, wo OpenCRM läuft.
#
# Richtung der Verbindung (das ist der eigentliche Schutz):
#   Gegenbuch  ──holt lesend──>  OpenCRM     (HTTPS, Token nur mit audit:read)
#   OpenCRM    ─────────────────>  (kennt das Gegenbuch nicht)
#
# Wer OpenCRM übernimmt, kommt damit nicht an dieses Buch heran. Deshalb holt
# das Gegenbuch selbst, statt sich etwas schicken zu lassen.
#
# Start:
#   cp .env.example .env     # Werte eintragen
#   docker compose up -d
#
# Zwei Bücher auf einer Maschine sind vorgesehen (Produktion und Test): zwei
# getrennte Dienste mit getrennten Verzeichnissen und getrennten Schlüsseln.
# Welche laufen, steuert COMPOSE_PROFILES in der .env.

services:
  prod:
    build: .
    container_name: gegenbuch-prod
    restart: unless-stopped
    profiles: ["prod"]
    environment:
      INSTANZ: prod
      CRM_URL: ${PROD_CRM_URL}
      CRM_EMAIL: ${PROD_CRM_EMAIL}
      CRM_PASSWORD: ${PROD_CRM_PASSWORD}
      NOTARY_INTERVAL: ${PROD_INTERVAL:-3600}
      NOTAR_EMAIL: ${NOTAR_EMAIL:-gegenbuch@localhost}
      # Nur beim allerersten Lauf einmalig auf true, danach wieder leeren:
      NOTARY_GENESIS_ACK: ${PROD_GENESIS_ACK:-}
      # Nur nach geklärtem Verlust des Beobachtungsspeichers, siehe README:
      NOTARY_ADOPT_ACK: ${PROD_ADOPT_ACK:-}
    volumes:
      # Buch, Schlüssel, Beobachtungsspeicher und Statusdatei.
      # Dieses Verzeichnis ist das Gegenbuch – es gehört ins Backup.
      - ${PROD_DIR:-./data/prod}:/gegenbuch

  staging:
    build: .
    container_name: gegenbuch-staging
    restart: unless-stopped
    profiles: ["staging"]
    environment:
      INSTANZ: staging
      CRM_URL: ${STAGING_CRM_URL}
      CRM_EMAIL: ${STAGING_CRM_EMAIL}
      CRM_PASSWORD: ${STAGING_CRM_PASSWORD}
      NOTARY_INTERVAL: ${STAGING_INTERVAL:-3600}
      NOTAR_EMAIL: ${NOTAR_EMAIL:-gegenbuch@localhost}
      NOTARY_GENESIS_ACK: ${STAGING_GENESIS_ACK:-}
      NOTARY_ADOPT_ACK: ${STAGING_ADOPT_ACK:-}
    volumes:
      - ${STAGING_DIR:-./data/staging}:/gegenbuch
