services:
  hermes-workspace:
    image: hermes-workspace:v2.3.0-0218dbaf@sha256:5e07a0fc1d94b4700b9a82b16a42dd45a77e64bebbc6f6cf3c28b89afeb373d4
    container_name: hermes-carlo-komfort
    network_mode: host
    restart: unless-stopped
    env_file: /opt/struktur/hermes-ui-auswahl/.env
    environment:
      PORT: 5100
      HERMES_DASHBOARD_URL: http://127.0.0.1:9130
    volumes:
      - /opt/struktur/hermes-ui-auswahl/data:/home/workspace/.hermes
    security_opt:
      - no-new-privileges:true
    cap_drop:
      - ALL
    read_only: true
    tmpfs:
      - /tmp:mode=1777
    healthcheck:
      test: ["CMD-SHELL", "curl -fsS http://127.0.0.1:5099/ >/dev/null"]
      interval: 30s
      timeout: 5s
      retries: 5
      start_period: 30s

  hermes-kanban-adapter:
    image: hermes-workspace:v2.3.0-0218dbaf@sha256:5e07a0fc1d94b4700b9a82b16a42dd45a77e64bebbc6f6cf3c28b89afeb373d4
    container_name: hermes-kanban-adapter
    network_mode: host
    restart: unless-stopped
    command: ["node", "/opt/kanban-adapter/server.js"]
    environment:
      LISTEN_HOST: 127.0.0.1
      LISTEN_PORT: 5099
      WORKSPACE_UPSTREAM: http://127.0.0.1:5100
      DASHBOARD_UPSTREAM: http://127.0.0.1:9130
      KANBAN_STATUS_MAP: /etc/hermes-kanban/kanban-status-map.json
    env_file: /opt/struktur/hermes-ui-auswahl/.env
    volumes:
      - /opt/struktur/hermes-carlo-komfort/kanban-adapter/server.js:/opt/kanban-adapter/server.js:ro
      - /opt/struktur/hermes-carlo-komfort/config/kanban-status-map.json:/etc/hermes-kanban/kanban-status-map.json:ro
    security_opt:
      - no-new-privileges:true
    cap_drop:
      - ALL
    read_only: true
    tmpfs:
      - /tmp:mode=1777
    healthcheck:
      test: ["CMD-SHELL", "node -e \"fetch('http://127.0.0.1:5099/health').then(r=>{if(!r.ok)process.exit(1)})\""]
      interval: 30s
      timeout: 5s
      retries: 5
      start_period: 5s
