Skip to content

Deployment

The deployment repository is the reference for running Flexo MMS as a whole: a Docker Compose stack for one machine and Kubernetes manifests for a cluster, plus the guide that documents them.

Docker Compose

docker-compose/ starts everything Flexo MMS needs on a bridged network:

Container Role Local port
OpenLDAP Directory with two seeded users 1389
Apache Jena Fuseki The quadstore, seeded with cluster.trig 3030
MinIO S3-compatible storage for the Store service 9000
Auth service LDAP login → JWT 8082
Store service Large loads to MinIO 8081
Layer 1 service The Flexo MMS API 8080

A second compose file swaps Fuseki for Ontotext GraphDB. The directory also carries a Postman collection and a Bruno collection for the API, and the getting started page walks through a first session. The SysML v2 API has a compose stack of its own that adds it to this one.

Kubernetes

k8s/ splits the same stack into deployments and services for the Auth, Store and Layer 1 services, an SSL-terminating ingress, and config maps and secrets for Layer 1, JWT, S3, LDAP and logging. Fill in the hostnames, secrets and storage endpoints for your cluster, then kubectl apply the directory. The manifests are a starting point rather than a Helm chart; the README explains what each file configures.

Configuration in general

Every Flexo service is configured through environment variables, and the same few settings recur across them:

  • the quadstore endpoints — query, update and graph store — for Layer 1;
  • the JWT audience, issuer and secret, which must be identical everywhere;
  • the S3 endpoint, bucket and credentials for the Store service;
  • the LDAP or identity-provider settings for authentication;
  • the root context, the IRI under which Flexo names everything it stores.

The service pages on this site say what each service needs; the guide on ReadTheDocs lists every variable.

Images

All services publish images to Docker Hub under openmbee/.