services: mnestix-api: image: mnestix/mnestix-api:1.3.2 container_name: mnestix-api # Port Mapping # Map host port 5064 to container port 5064 ports: - "5064:5064" environment: # Application Settings # API Key: CustomerEndpointsSecurity__ApiKey: YOUR_API_KEY_HERE # Set your API key for Mnestix API # Connection to Repository Service: ReverseProxy__Clusters__aasRepoCluster__Destinations__destination1__Address: "http://aas:8081/" ReverseProxy__Clusters__submodelRepoCluster__Destinations__destination1__Address: "http://aas:8081/" ReverseProxy__Clusters__discoveryCluster__Destinations__destination1__Address: "http://aas-discovery:8081/" # Features Configuration Features__AasRegistryMiddleware: true Features__AllowRetrievingAllShellsAndSubmodels: true Features__UseAuthentication: true # InfluxDB Configuration # URL to specify the host and port where InfluxDB is running: ReverseProxy__Clusters__influxCluster__Destinations__destination1__Address: "YOUR_INFLUX_DB_ADDRESS_HERE" # Replace with you Influx DB adress # Token: ReverseProxy__Routes__InfluxRoute__Transforms__1__Set: "YOUR_TOKEN_HERE" # Replace with you Influx DB token # MongoDB Configuration BasyxDbConnectionConfiguration__MongoConnectionString: "mongodb://mongoAdmin:mongoPassword@mongodb:27017/?authSource=admin" BasyxDbConnectionConfiguration__DatabaseName: basyxdb BasyxDbConnectionConfiguration__AasCollectionName: "aas-repo" # OpenId repository settings RepositoryOpenIdConnect__EnableRepositoryOpenIdAuth: "false" RepositoryOpenIdConnect__Authority: "http://YOUR_KEYCLOAK_SERVER/realms/YOUR_REALM" # Replace with your keycloak data RepositoryOpenIdConnect__DiscoveryEndpoint: ".well-known/openid-configuration" RepositoryOpenIdConnect__ClientId: "YOUR_MNESTIX_KEYCLOAK_CLIENT_ID" # Replace with your keycloak client id RepositoryOpenIdConnect__ClientSecret: "YOUR_CLIENT_SECRET" # Replace with your client secret RepositoryOpenIdConnect__ValidateIssuer: "false" # Microsoft Authentication and Authorization Configuration: AzureAd__Domain: YOUR_AZURE_DOMAIN_HERE # Replace with your Microsoft Authentication configuration AzureAd__TenantId: YOUR_AZURE_TENANTID_HERE # Replace with your Microsoft Authentication configuration AzureAd__ClientId: YOUR_AZURE_CLIENTID_HERE # Replace with your Microsoft Authentication configuration # OpenID Configuration OpenId__EnableOpenIdAuth: "false" OpenId__Issuer: "http://YOUR_KEAYCLOAK_SERVER/realms/YOUR_REALM" # Replace with your keycloak data OpenId__ClientID: "YOUR_MNESTIX_API_CLIENT_ID" # Replace with your mnestix client id OpenId__RequireHttpsMetadata: "false" # ASP.NET Core URLs ASPNETCORE_URLS: "http://+:5064" depends_on: aas: condition: service_healthy # only after the healthcheck in aas is successful, the mnestix container is being created logging: driver: "json-file" options: max-file: "5" max-size: "100m" mongodb: image: mongo:latest container_name: mongodb # Provide mongo config ports: - "27017:27017" environment: MONGO_INITDB_ROOT_USERNAME: mongoAdmin MONGO_INITDB_ROOT_PASSWORD: mongoPassword healthcheck: test: echo "db.runCommand("ping").ok" | mongosh mongodb:27017/test --quiet interval: 3s timeout: 3s retries: 5 logging: driver: "json-file" options: max-file: "5" max-size: "100m" aas: image: eclipsebasyx/aas-environment:2.0.0-milestone-03.1 container_name: aas ports: - "8081:8081" environment: # MongoDb configuration for Basyx Repository BASYX__BACKEND: MongoDB SPRING__DATA__MONGODB__HOST: mongodb SPRING__DATA__MONGODB__DATABASE: basyxdb SPRING__DATA__MONGODB__authentication-database: admin SPRING__DATA__MONGODB__USERNAME: mongoAdmin SPRING__DATA__MONGODB__PASSWORD: mongoPassword SPRING_SERVLET_MULTIPART_MAX_FILE_SIZE: 100000KB SPRING_SERVLET_MULTIPART_MAX_REQUEST_SIZE: 100000KB # Allow mnestix frontend and backend to call basyx BASYX_CORS_ALLOWED-ORIGINS: '*' BASYX_CORS_ALLOWED-METHODS: GET,POST,PATCH,DELETE,PUT,OPTIONS,HEAD # Authorization basyx.feature.authorization.enabled: "false" basyx.feature.authorization.type: rbac basyx.feature.authorization.jwtBearerTokenProvider: keycloak basyx.feature.authorization.rbac.file: file:/data/rbac_rules.json # Just a example for your rbac_rules files !!! spring.security.oauth2.resourceserver.jwt.issuer-uri: "http://YOUR_KEYCLOAK_SERVER/realms/YOUR_REALM" # Replace with your keycloak data volumes: - ./data/keycloak/rbac_rules.json:/data/rbac_rules.json:ro # Just a example for your rbac_rules files !!! depends_on: mongodb: condition: service_healthy healthcheck: # check the endpoint for a valid response (service ready) test: curl -f http://localhost:8081/actuator/health interval: 30s timeout: 10s retries: 6 logging: driver: "json-file" options: max-file: "5" max-size: "100m" aas-discovery: image: eclipsebasyx/aas-discovery:2.0.0-milestone-03.1 container_name: aas-discovery ports: - "8082:8081" environment: BASYX__BACKEND: MongoDB SPRING__DATA__MONGODB__HOST: mongodb SPRING__DATA__MONGODB__DATABASE: basyxdb SPRING__DATA__MONGODB__authentication-database: admin SPRING__DATA__MONGODB__USERNAME: mongoAdmin SPRING__DATA__MONGODB__PASSWORD: mongoPassword BASYX__CORS__ALLOWED-ORIGINS: '*' BASYX__CORS__ALLOWED-METHODS: GET,POST,PATCH,DELETE,PUT,OPTIONS,HEAD depends_on: mongodb: condition: service_healthy healthcheck: # check the endpoint for a valid response (service ready) test: curl -f http://localhost:8081/actuator interval: 30s timeout: 10s retries: 6 logging: driver: "json-file" options: max-file: "5" max-size: "100m"