industry-core-hub

Installation Guide

Deploy Industry Core Hub either in a Kubernetes cluster (via Helm) or locally.

💡 New to Industry Core Hub?
If this is your first time setting up the application, we recommend starting with our Quickstart Guide, which provides a step-by-step walkthrough including a complete data provision and consumption example.

1. Kubernetes Deployment with Helm

Prerequisites

Tip: If using Minikube, run:

minikube start --cpus=4 --memory=8Gb
minikube addons enable ingress

You also need a running DTR and EDC Connector. See the Umbrella deployment guide.

1.1 Prepare values.yaml

cp charts/industry-core-hub/values.yaml ./your-values.yaml

Edit your-values.yaml under backend.configuration:

backend:
  configuration:
    authorization:
      enabled: true
      apiKey:
        key: "X-Api-Key"
        value: "<<example>>"
    # -- Database connection config; database connection settings are inferred from postgresql or externalDatabase sections.
    database:
      echo: true
    # -- EDC (Eclipse Dataspace Connector) configuration
      edc:
        controlplane:
          hostname: "https://connector.control.plane"
          apiKeyHeader: "X-Api-Key"
          apiKey: "<<example>>"
          managementPath: "/management"
          protocolPath: "/api/v1/dsp"
          catalogPath: "/catalog"
        dataplane:
          hostname: "https://connector.data.plane"
          publicPath: "/api/public"
    # -- Digital Twin Registry configuration
    digitalTwinRegistry:
      hostname: "https://dataprovider-dtr.tx.test"
      apiPath: "/api/v3"
      # -- Set this to the urlPrefix defined in your DTR values. [Default value](https://github.com/eclipse-tractusx/sldt-digital-twin-registry/blob/cc9c63c12d96e48050a1b24eca022277075cf6c7/charts/registry/values.yaml#L86)
      uri: "/semantics/registry"
      lookup:
        # -- Same as the uri above
        uri: "/semantics/registry"

For all chart options, see the Helm chart README.

Use kubectl port-forward for localhost access, or set up an Ingress resource (with a controller) in the values.yaml to expose your services over HTTP(S).

1.2 Build and Load Docker Images (Optional for Local Development)

If you’re developing locally and want to use custom images instead of the published ones, build and load them into Minikube:

Build Backend Image
cd ichub-backend/
docker build -t <your-registry>/ichub-backend:<tag> .
Build Frontend Image
cd ichub-frontend/
docker build -t <your-registry>/ichub-frontend:<tag> .
Load Images into Minikube
minikube image load <your-registry>/ichub-backend:<tag>
minikube image load <your-registry>/ichub-frontend:<tag>

Note: Update your values.yaml to reference these custom image tags:

backend:
  image:
    repository: <your-registry>/ichub-backend
    tag: <tag>
frontend:
  image:
    repository: <your-registry>/ichub-frontend
    tag: <tag>

1.3 Install the Chart

helm repo add tractusx-dev https://eclipse-tractusx.github.io/
helm repo update
helm install ichub -f your-values.yaml tractusx-dev/industry-core-hub

To use as a dependency in your own chart:

dependencies:
  - name: industry-core-hub
    repository: https://eclipse-tractusx.github.io/industry-core-hub
    version: 0.1.x

1.4 Uninstall

helm uninstall ichub

2. Local Development

2.1 Backend

Prerequisites
Setup & Run
cd ichub-backend/
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Edit config/configuration.yml with your config

# run
python -m main --host 0.0.0.0 --port 8000

Open the Swagger UI at http://localhost:8000/docs.

2.2 Frontend

Prerequisites
Setup & Run
cd ichub-frontend/
npm install

Set on index.html your backend url

<script>
    const ENV = {
        REQUIRE_HTTPS_URL_PATTERN: "false",
        ICHUB_BACKEND_URL: "http://localhost:8000"
    }
</script>

Run the frontend

npm run dev

Visit http://localhost:5173.

Licenses

NOTICE

This work is licensed under the CC-BY-4.0.