Platform overview
DrToller.Platform is the deployment and operations layer for DrToller.Framework workloads. Product page: platform.drtoller.com. It does not contain step domain logic or framework orchestration code.
Framework needs an environment that can provide the runtime. Platform is that layer. How the environment is implemented is an operator choice.
The current reference is a self-hosted Compose environment, env templates, operator CLI, and thin integration entry points. That service list is a default, not the definition of Platform or of Framework.
| Repo / package | Role |
|---|---|
DrToller.Framework (drtoller.framework) |
Runtime: DRTML compile, storage, processing, telemetry emit |
| DrToller.Edge | OSS step pack (example): *.drtml + domain Python |
| DrToller.Platform | Deployment environment: provisioning, wiring, lifecycle, health |
License: Apache-2.0 (LICENSE / NOTICE). Secrets stay in gitignored .env — see Platform SECURITY.md.
Layout
Section titled “Layout”The reference tree (Compose-based):
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”- Environment: bootstrap, service wiring, secrets and host paths, lifecycle, health — bound to Framework contracts.
- Deploy-time codegen (in the current reference): Grafana dashboard JSON sync, Postgres DDL from DRTML (
migrate-postgres.sh). - Operator CLI (in the current reference):
drtoller up,drtoller down,drtoller update,drtoller verify,drtoller install,drtoller k8s up,drtoller k8s down,drtoller ray attach,drtoller ray bake, … Hostray syncis debug-only; Streamlitruntime.parallelism.*patches the live RayCluster at task start.
Current reference services
Section titled “Current reference services”Today’s Compose file includes Postgres, Redis, MinIO, Qdrant, Ray head, Prometheus, Grafana, Airflow (Celery), and Streamlit. Those names are implementation choices for this default. You may use the reference as shipped, change parts of it, or provide a different environment.
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 (current reference)
Section titled “Typical server path (current reference)”Sibling checkout example:
/opt/DrToller.Framework/opt/DrToller.Edge/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=….
The reference Compose mounts code under ${DRTOLLER_HOME}/drtoller and ${DRTOLLER_HOME}/drtoller/platform — use matching directory names / symlinks or edit the volume paths. Details: Reference Compose environment.
- Reference Compose environment — current default services, volumes,
.env - CLI operations —
drtoller up,down,cloud bootstrap,ray attach, … - Ray / KubeRay — DOKS attach (AWS/GCP backlog)
- Grafana dashboard sync — generation on deploy