This example provides a comprehensive showcase setup for the BaSyx AAS Web UI. It combines as many major UI features as possible in one ready-to-run environment and is intended for demos, workshops, and end-to-end validation.
The setup includes two preconfigured BaSyx infrastructures:
- Infrastructure 1 (Secured BaSyx): OAuth2-secured environment with Keycloak
- Infrastructure 2 (Local BaSyx): Unsecured environment without authentication
The Web UI is preconfigured to connect to both infrastructures and demonstrate cross-infrastructure workflows.
- Multi infrastructure handling
- OAuth2 support (Keycloak)
- File management with the File Explorer submodel plugin
- Live sensor data integration via Node-RED (including auto-sync behavior)
- Time series data plugin with InfluxDB integration and chart visualization
- IFC file rendering for BIM use cases
- PCF Process module for carbon footprint calculation from materials and quantities
- Digital Product Passport module for AAS-based DPP visualization
- Submodel plugin showcase: technical data, handover documentation, digital nameplate, contact information
- Bill of Materials submodel plugin with graphical editing capabilities (dynamic flow chart)
The example includes:
- A single AAS Web UI instance
- Infrastructure 1 with secured BaSyx services (AAS Environment, Registry, Submodel Registry, Discovery), Keycloak, reverse proxy, InfluxDB, Telegraf, and MQTT publisher
- Infrastructure 2 with unsecured BaSyx services, Node-RED, MQTT broker, and MQTT client
- A shared MongoDB database for both infrastructures
- Docker and Docker Compose installed
- Available ports including:
80,3000,8086,1880,1883,1884,8081-8084,9081-9084,9097 - Host entries for
*.basyx.localhostdomains
Add the following entries to your hosts file (for example /etc/hosts):
127.0.0.1 aasgui.basyx.localhost
127.0.0.1 keycloak.basyx.localhost
127.0.0.1 discovery.basyx.localhost
127.0.0.1 aasreg.basyx.localhost
127.0.0.1 smreg.basyx.localhost
127.0.0.1 aasenv.basyx.localhost
- Start all services from this folder:
docker compose up -d- Open the AAS Web UI:
- (Optional) Open supporting tools:
- InfluxDB UI: http://localhost:8086
- Node-RED: http://localhost:1880
- Keycloak admin console: http://keycloak.basyx.localhost
Keycloak admin credentials:
- Username:
admin - Password:
keycloak-admin
- Open the Web UI at http://localhost:3000
- Open the settings menu
- Navigate to Infrastructure Management
- Switch between:
- Secured BaSyx (OAuth2)
- Local BaSyx (no auth)
- Select Secured BaSyx
- Access secured AAS content
- Complete login in Keycloak when redirected
- Return to the UI with an authenticated session
Use this sequence for a complete showcase:
- Start in Secured BaSyx and demonstrate OAuth2 login
- Open AAS/Submodels that contain technical data, handover documentation, digital nameplate, and contact information plugins
- Demonstrate file upload/download via the File Explorer plugin
- Show IFC file rendering for BIM-related AAS data
- Open the Time Series submodel plugin and visualize linked data from InfluxDB
- Switch to Local BaSyx and demonstrate live sensor updates (Node-RED + MQTT + auto-sync)
- Open the Bill of Materials plugin and edit structures using the dynamic flow chart editor
- Launch the PCF Process module and calculate a product footprint from selected materials/quantities
- Launch the Digital Product Passport module to visualize DPP-related AAS content
- Infrastructure definitions are stored in
basyx-infra.yml - Endpoint editing is enabled (
ENDPOINT_CONFIG_AVAILABLE=true), so users can add or modify infrastructures in the UI - The InfluxDB token is preconfigured through the Web UI container environment
Stop all services:
docker compose downStop and remove volumes:
docker compose down -v- Verify host entries for
*.basyx.localhost - Check that the reverse proxy is running (
proxycontainer) - Check service health:
docker compose ps- Verify Keycloak status and logs
- Confirm the selected infrastructure is Secured BaSyx
- Ensure
keycloak.basyx.localhostresolves on your machine
- Verify InfluxDB is running and reachable at http://localhost:8086
- Check Telegraf and MQTT publisher containers for incoming data
- Re-run data fetch in the plugin after waiting for fresh data points
- Verify Node-RED and MQTT services in Infrastructure 2
- Check MQTT client/publisher container logs
- Confirm auto-sync is enabled in the BaSyx UI settings