Skip to main content

Requirements & topology

Software​

  • Docker Engine with the Compose plugin on every host.
  • openssl on the host where you run the MVP setup.sh (it generates secrets).
  • Access to ghcr.io (images ghcr.io/datacrop/maize-model-repository/wme-server and ghcr.io/datacrop/maize-workflow-management-editor/wme-ui). Run docker login ghcr.io if your network requires it.

Sizing​

The Airflow initializer warns below 4 GB RAM, 2 CPUs and 10 GB disk for Airflow alone. A single host running everything (Elastic stack, Airflow, Kafka, Keycloak, MongoDB, a worker and your processors) is comfortable with 16 GB RAM, 4+ CPUs and 50 GB disk. Workers need whatever your processors need, plus Docker.

Topology​

  • The backend writes DAG files straight into Airflow's dags/ folder through a bind mount, so the backend and the Airflow webserver/scheduler must run on the same host (or share that folder).
  • Workers can run anywhere that can reach Airflow's Redis (6379) and Postgres (5432), and that the backend can reach on 8090.
  • Browsers need to reach the editor, Keycloak, the backend API, the assistant runtime (Preview), Kibana (embedded views), Airflow (admin iframe) and AKHQ (links).

Ports​

PortServiceWho connects
5173Workflow Editor (nginx)Browsers
8180Keycloak (admin console at /admin)Browsers, backend
9090Model Repository API (Swagger at /swagger-ui/index.html)Browsers, assistant-runtime
8200assistant-runtime (preview, runs in the backend stack)Browsers
27017MongoDBBackend
9200 / 9300ElasticsearchBackend, Logstash, Kibana
5601KibanaBrowsers, backend
9600 / 5044 / 50000Logstash monitoring / Beats / TCPBackend / data sources
9092KafkaProcessors, Logstash
8081AKHQBrowsers
8080Airflow webserverBrowsers (admins), backend
5555FlowerBackend
6379 / 5432Redis / Postgres (Airflow)Workers
8090WME agent on each workerBackend only
Keep 8090 private

Only the agent's /runtime/* endpoints check the shared WME_SERVICE_TOKEN; its DAG and folder endpoints do not. Expose port 8090 to the backend host only (firewall or private network).