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.
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.
Fastest way to get running - about 10 minutes.
git clone https://github.com/eclipse-tractusx/industry-core-hub.git
cd industry-core-hub
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.
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.
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!
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.
helm repo add tractusx-dev https://eclipse-tractusx.github.io/charts/dev
helm repo update
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"
helm install industry-core-hub tractusx-dev/industry-core-hub \
-f my-values.yaml \
--namespace ichub \
--create-namespace
# 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.
If using Minikube:
minikube service industry-core-hub-frontend -n ichub
Or use your configured ingress hostname.
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:
Here’s how to debug common problems.
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
Can’t connect to backend?
ICHUB_BACKEND_URL in index.htmlModule errors?
rm -rf node_modules package-lock.json
npm install
Can’t reach EDC?
curl https://your-edc.example.com/management/v3/assetsCan’t reach Digital Twin Registry?
curl https://your-dtr.example.com/api/v3/shell-descriptorsCheck what’s wrong:
kubectl logs -n ichub <pod-name>
kubectl describe pod -n ichub <pod-name>
Common issues:
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.
This work is licensed under the CC-BY-4.0.