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.
Layout
Section titled “Layout”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.
What platform owns
Section titled “What platform owns”- 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 inenv.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
pipelineschema +drt_tbl_*/drt_proc_*objects (stack/postgres-init/, inventory + orphan drop on migrate).
What platform does not own
Section titled “What platform does not own”- 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).
Typical server path
Section titled “Typical server path”Sibling checkout example:
/opt/DrToller.Framework/opt/DrToller.Edge/opt/DrToller.Ops/opt/DrToller.Platformcd /opt/DrToller.Platform/stacksudo bin/install-stack-cli.sh # once: symlinks in /usr/local/bincp env.example .env && nano .env# set DRTOLLER_HOME to the parent of step checkouts (or edit compose mounts)drtoller updrtoller 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 verifyOptional 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.
- Docker stack and
.env— compose services, volumes, what to configure - CLI operations —
drtoller up,down,cloud bootstrap,ray attach, … - Ray / KubeRay — DOKS attach (AWS/GCP backlog)
- Grafana dashboard sync — generation on deploy