Skip to content

Platform overview

DrToller.Platform is the OSS deployment layer (standalone sibling repo). Product page: platform.drtoller.com. It does not contain step domain logic or framework orchestration code — only service wiring, Docker Compose, env templates, and thin integration entry points.

Repo / package Role
DrToller.Framework (drtoller.framework) Runtime: DRTML compile, storage, processing, telemetry emit
DrToller.Edge / DrToller.Ops Step packages: *.drtml + domain Python
DrToller.Platform Deploy: compose stack, Postgres init, Grafana provisioning, Airflow DAG stubs, Streamlit entry

License: Apache-2.0 (LICENSE / NOTICE). Secrets stay in gitignored .env — see Platform SECURITY.md.

DrToller.Platform/
stack/ # docker-compose.yaml, env.example, bin/, postgres-init, nginx
ui/ # Streamlit app → framework integration/ui
airflow/dags/ # thin DAG wrappers → framework
grafana/ # datasource + dashboard provisioning
prometheus/ # scrape config (Ray SD, worker metrics)

Step manifests are discovered from stack/config/steps_roots.txt (mounted in containers as DRTOLLER_STEPS_ROOTS_FILE). Framework and UI read that list — platform does not hardcode step ids.

  • Docker services: Postgres, Redis, MinIO, Qdrant, Ray head, Prometheus, Grafana, Airflow (Celery), Streamlit.
  • Host paths: env.example.env (DRTOLLER_HOME, DATADIR, artifact/corpus mounts). Placeholders only in env.example.
  • One-time / update scripts: drtoller up, drtoller down, drtoller update, drtoller verify, drtoller cloud bootstrap (DOKS), drtoller ray attach, …
  • Deploy-time codegen: Grafana dashboard JSON sync, Postgres DDL from DRTML (migrate-postgres.sh).
  • Postgres bootstrap: generic pipeline schema + drt_tbl_* / drt_proc_* objects (stack/postgres-init/, inventory + orphan drop on migrate).
  • Step processors, registry plugins, spaCy parsing — step packages only.
  • Runtime metric emit, partition loop, storage session — framework only.
  • Hand-maintained Grafana JSON in git — dashboards are generated from DRTML (see Grafana sync).

Sibling checkout example:

/opt/DrToller.Framework
/opt/DrToller.Edge
/opt/DrToller.Ops
/opt/DrToller.Platform
Terminal window
cd /opt/DrToller.Platform/stack
sudo bin/install-stack-cli.sh # once: symlinks in /usr/local/bin
cp env.example .env && nano .env
# set DRTOLLER_HOME to the parent of step checkouts (or edit compose mounts)
drtoller up
drtoller verify
./bin/day1-bootstrap.sh # once: Airflow connections + smoke table
# Optional multi-host Ray on existing DOKS (not AWS/GCP yet):
# export KUBECONFIG=~/.kube/….yaml
# # MINIO_API_BIND=<VPC IP> in .env
# drtoller cloud bootstrap --provider digitalocean --attach
# drtoller verify

Optional override: /etc/drtoller/stack.env with STACK_DIR=….

Compose still mounts code under ${DRTOLLER_HOME}/drtoller and ${DRTOLLER_HOME}/drtoller/platform — use matching directory names / symlinks or edit the volume paths. Details: Docker stack.