Skip to content

Orchestration

Apache Airflow

Profiles: airflow. Stack orch, defined in compose-orch.yml.

airflow

Depends on: postgres, storage. odctl up airflow also starts: deps, postgres, storage.

• Airflow Web UI (Credentials: user / password):
  * External (host): http://127.0.0.1:8085
  * Internal (Docker): http://airflow:8080
• DAGs: read from s3://airflow/dags every 15 seconds.
• Plugins: copied from s3://airflow/plugins at start. Airflow loads
  plugins only once, so run `odctl restart airflow` after changing one.
Service Image Host:container ports Memory limit
airflow ghcr.io/jaehyeon-kim/odctl/airflow:<CLI version> 8085:8080 3g

Temporal

Profiles: temporal. Stack orch, defined in compose-orch.yml.

temporal

Depends on: deps. odctl up temporal also starts: deps.

• Temporal Web UI:
  * External (host): http://127.0.0.1:8233
  * Internal (Docker): http://temporal:8233
• gRPC endpoint for SDK clients and workers (namespace "default"):
  * External (host): 127.0.0.1:7233
  * Internal (Docker): temporal:7233
• Your environment needs: temporalio. odctl runs only the server, so
  your own process runs the worker that executes workflows and
  activities.
• Development server: the server, the UI and a SQLite database in one
  process. History survives `odctl restart` and is lost on
  `odctl down`, like every odctl service's data.
• Prometheus metrics: http://temporal:9090/metrics, inside the network.
Service Image Host:container ports Memory limit
temporal temporalio/temporal:1.9.1 7233:7233, 8233:8233 1g