industry-core-hub

Quickstart Guide

Get up and running with Industry Core Hub in about 30-45 minutes. This guide walks you through setting up the application, creating your first digital twin, and consuming data from a partner.

What’s Covered

What You Need

For any setup:

For local setup:

For Kubernetes:

Optional: If you don’t have EDC and DTR running, use the Umbrella deployment guide to set those up first.

Choose Your Setup

Fastest way to get running - about 10 minutes.

Clone the Repository

git clone https://github.com/eclipse-tractusx/industry-core-hub.git
cd industry-core-hub

Setup the Database

With Docker (easiest):

cd deployment/local/docker-compose
docker-compose up -d

This gives you PostgreSQL on localhost:5432 with username user, password password, and database ichub.

Alternatively, install PostgreSQL locally and create an ichub database.

Run the Backend

cd ichub-backend

# Create virtual environment
python3 -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

Configure the backend by editing config/configuration.yml:

authorization:
  enabled: true
  apiKey:
    key: "X-Api-Key"
    value: "your-secure-api-key-here"  # Change this!

database:
  # Connection details are auto-detected from DATABASE_URL environment variable
  echo: false
  timeout: 8
  retry_interval: 5

provider:
  connector:
    controlplane:
      hostname: "https://your-edc-control-plane.example.com"
      apiKey: "your-edc-api-key"
      apiKeyHeader: "X-Api-Key"
      managementPath: "/management"
      protocolPath: "/api/v1/dsp"
    dataplane:
      hostname: "https://your-edc-data-plane.example.com"
      publicPath: "/api/public"
  
  digitalTwinRegistry:
    hostname: "https://your-dtr.example.com"
    apiPath: "/api/v3"
    uri: "/semantics/registry"

consumer:
  connector:
    controlplane:
      hostname: "https://consumer-edc-control-plane.example.com"
      apiKey: "consumer-edc-api-key"
      apiKeyHeader: "X-Api-Key"
      catalogPath: "/catalog"
      managementPath: "/management"
      protocolPath: "/api/v1/dsp"
  
  discovery:
    discovery_finder:
      url: "https://discovery-finder.example.com/api/v1.0/administration/connectors/discovery/search"
    oauth:
      url: "https://central-idp.example.com/auth/"
      realm: "CX-Central"
      client_id: "your-client-id"
      client_secret: "your-client-secret"

Set database connection:

export DATABASE_URL="postgresql://user:password@localhost:5432/ichub"

Run the backend:

python main.py --host 0.0.0.0 --port 8000

The backend is now running at http://localhost:8000. Check the Swagger UI at http://localhost:8000/docs to explore the API.

Run the Frontend

Open a new terminal:

cd ichub-frontend

# Install dependencies
npm install

Update index.html with your configuration:

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

Run the frontend:

npm run dev

Frontend runs at http://localhost:5173. You’re all set!


Kubernetes Setup (Production-Ready)

For a production-like environment.

Make sure you have EDC, Digital Twin Registry, and optionally Keycloak running first. See the Umbrella Deployment Guide if you need to set those up.

Add the Helm Repository

helm repo add tractusx-dev https://eclipse-tractusx.github.io/charts/dev
helm repo update

Prepare Your Values File

Create my-values.yaml:

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

Then update it with your configuration:

backend:
  configuration:
    authorization:
      enabled: true
      apiKey:
        key: "X-Api-Key"
        value: "your-secure-api-key"
    
    provider:
      connector:
        controlplane:
          hostname: "https://your-edc-control.example.com"
          apiKey: "your-edc-api-key"
          apiKeyHeader: "X-Api-Key"
          managementPath: "/management"
          protocolPath: "/api/v1/dsp"
        dataplane:
          hostname: "https://your-edc-dataplane.example.com"
          publicPath: "/api/public"
      
      digitalTwinRegistry:
        hostname: "https://your-dtr.example.com"
        apiPath: "/api/v3"
        uri: "/semantics/registry"
    
    consumer:
      connector:
        controlplane:
          hostname: "https://consumer-edc.example.com"
          apiKey: "consumer-edc-api-key"
      discovery:
        discovery_finder:
          url: "https://discovery-finder.example.com/api/v1.0/administration/connectors/discovery/search"
        oauth:
          url: "https://central-idp.example.com/auth/"
          realm: "CX-Central"
          client_id: "your-client-id"
          client_secret: "your-client-secret"

  ingress:
    enabled: true
    className: "nginx"
    hosts:
      - host: "ichub-backend.example.com"
        paths:
          - path: "/"
            pathType: ImplementationSpecific

frontend:
  ingress:
    enabled: true
    className: "nginx"
    hosts:
      - host: "ichub.example.com"
        paths:
          - path: "/"
            pathType: ImplementationSpecific

postgresql:
  enabled: true
  auth:
    password: "change-me-in-production"
    database: "ichub"

Install the Helm Chart

helm install industry-core-hub tractusx-dev/industry-core-hub \
  -f my-values.yaml \
  --namespace ichub \
  --create-namespace

Verify It’s Running

# Check pod status
kubectl get pods -n ichub

# Check services
kubectl get svc -n ichub

# Check ingress
kubectl get ingress -n ichub

Once all pods show Running, you’re good to go.

Access the Application

If using Minikube:

minikube service industry-core-hub-frontend -n ichub

Or use your configured ingress hostname.


Next Steps

Great! Your instance is running. Now you’re ready to start working with parts and data.

For detailed workflows on creating and sharing digital products, managing partners, and consuming data from other organizations, see these guides:


Having Issues?

Here’s how to debug common problems.

Backend Won’t Start

Getting Python errors? Make sure you’re in the virtual environment:

source venv/bin/activate
pip install -r requirements.txt --force-reinstall

Database connection errors? Check PostgreSQL is running:

docker ps  # if using Docker
psql $DATABASE_URL -c "SELECT 1"  # test connection

Frontend Issues

Can’t connect to backend?

Module errors?

rm -rf node_modules package-lock.json
npm install

EDC Connection Issues

Can’t reach EDC?

DTR Issues

Can’t reach Digital Twin Registry?

Kubernetes Pods Won’t Start

Check what’s wrong:

kubectl logs -n ichub <pod-name>
kubectl describe pod -n ichub <pod-name>

Common issues:

Need Help?


Feedback

We’d love to hear from you. Let us know if this guide was helpful or if you hit any issues in our GitHub Discussions or Issues.


NOTICE

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