services:
  telemetry-importer:
    container_name: oppi-telemetry-importer
    image: node:22-bookworm
    restart: unless-stopped
    working_dir: /app
    command:
      - sh
      - -lc
      - >
        umask 0002;
        mkdir -p /var/lib/oppi-telemetry-db;
        chmod 2775 /var/lib/oppi-telemetry-db;
        if [ -f /var/lib/oppi-telemetry-db/telemetry.db ]; then chmod g+rw /var/lib/oppi-telemetry-db/telemetry.db; fi;
        node /app/scripts/manual/telemetry-import-sqlite.mjs
        --watch
        --interval-ms ${OPPI_TELEMETRY_IMPORT_INTERVAL_MS:-15000}
        --telemetry-dir /var/lib/oppi-telemetry-jsonl
        --db /var/lib/oppi-telemetry-db/telemetry.db
    volumes:
      - ./:/app:ro
      - ${OPPI_DATA_DIR:-${HOME}/.config/oppi}/diagnostics/telemetry:/var/lib/oppi-telemetry-jsonl:ro
      - oppi-telemetry-sqlite:/var/lib/oppi-telemetry-db

  grafana-telemetry:
    container_name: oppi-telemetry-grafana
    image: grafana/grafana-oss:11.1.4
    restart: unless-stopped
    depends_on:
      - telemetry-importer
    ports:
      - "${OPPI_GRAFANA_PORT:-13001}:3000"
    environment:
      GF_SECURITY_ADMIN_USER: ${OPPI_GRAFANA_ADMIN_USER:-admin}
      GF_SECURITY_ADMIN_PASSWORD: ${OPPI_GRAFANA_ADMIN_PASSWORD:-admin}
      GF_AUTH_ANONYMOUS_ENABLED: "true"
      GF_AUTH_ANONYMOUS_ORG_ROLE: Viewer
      GF_INSTALL_PLUGINS: frser-sqlite-datasource
    volumes:
      - ./docker/grafana/provisioning:/etc/grafana/provisioning:ro
      - ./docker/grafana/dashboards:/var/lib/grafana/dashboards:ro
      - oppi-telemetry-sqlite:/var/lib/oppi-telemetry-db

volumes:
  oppi-telemetry-sqlite:
