Day 12 v3 Day 3 — F11 scaffold from the v3 deferred bucket.
Self-hosted TRD stack: orchestrator + receipt signer + IPFS gateway + predictive engine, all in one docker compose up. Same code TRD runs in production — packaged as a portable bundle and a single CLI.
npx @trd-network/framework init my-stack
cd my-stack
# Edit .env to add your inference API key
docker compose upDefault ports:
:3000Orchestrator:3001Receipt signer (ed25519 keypair auto-generated at init):3002IPFS gateway:3003Predictive engine
Phase 1: CLI + compose template + ed25519 keypair generator working. Docker images not yet published — once we build + push the four images to GHCR, the CLI flow works end-to-end. Target ship: Q3 2026.
The four framework services are built and pushed to GitHub Container Registry
by .github/workflows/publish-images.yml. Owner is trdnetwork; replace
<OWNER> below if you fork into a different org.
Current release line: v0.1.0 (see docs/F11-FIRST-PUBLISH.md for the
1-command release flow). Pull :0.1.0 for a pinned deploy or :latest for
local evaluation. Future releases are cut with ./tag-release.sh after
bumping version.txt.
| Service | Image | Port |
|---|---|---|
| Orchestrator | ghcr.io/<OWNER>/orchestrator |
3000 |
| Receipt signer | ghcr.io/<OWNER>/receipt-signer |
3001 |
| IPFS gateway | ghcr.io/<OWNER>/ipfs-gateway |
3002 |
| Predictive engine | ghcr.io/<OWNER>/predictive-engine |
3003 |
docker pull ghcr.io/trdnetwork/orchestrator:latest
docker pull ghcr.io/trdnetwork/receipt-signer:latest
docker pull ghcr.io/trdnetwork/ipfs-gateway:latest
docker pull ghcr.io/trdnetwork/predictive-engine:latest# Orchestrator
docker run --rm -p 3000:3000 ghcr.io/trdnetwork/orchestrator:latest
# Receipt signer (mount a volume so the ed25519 key survives restarts)
docker run --rm -p 3001:3001 \
-e TRD_RECEIPT_PRIVATE_KEY_PATH=/data/receipt-key.private.pem \
-v "$PWD/data:/data" \
ghcr.io/trdnetwork/receipt-signer:latest
# IPFS gateway
docker run --rm -p 3002:3002 ghcr.io/trdnetwork/ipfs-gateway:latest
# Predictive engine
docker run --rm -p 3003:3003 ghcr.io/trdnetwork/predictive-engine:latestHealth check on any service:
curl http://localhost:3000/health:latest floats — it moves every time we publish. For production, pin to
an immutable tag so deploys are reproducible and partners don't pick up
breaking changes during a rebuild:
# Good — pinned to a released version
docker pull ghcr.io/trdnetwork/orchestrator:v0.1.0
# Or pin to the exact commit
docker pull ghcr.io/trdnetwork/orchestrator:sha-a1b2c3d:latest is fine for npx @trd-network/framework init local stacks and
for evaluation.
Tag and push — the workflow does the rest:
git tag v0.1.0
git push --tagsOr run it ad-hoc from the Actions → Publish framework images to GHCR → Run workflow button on GitHub (no tag required).
Apache-2.0