Motivation
Once the visualizer (issue #??) and the dockerized runner (issue #??) both
exist, docker compose up visualizer should be the canonical way for a
replicator to open the results dashboard against an experiment DB. This
closes the replication loop: clone → build → run experiments → view
results, all in containers.
Proposal
Add a visualizer service to docker-compose.yml:
- Reuses the existing image (same dependencies), overrides command with
streamlit run src/maestro/viz/app.py --server.port 8501 --server.address 0.0.0.0.
- Port
8501:8501 mapped to host.
- Read-only mount of the same DB the runner writes to.
- Does not require API keys (pure read path) so it can run without
.env populated.
Update README:
docker compose up visualizer → open http://localhost:8501.
- Note the read-only DB mount (no risk of corrupting experiment data).
Scope
- In scope:
- Compose service definition
- Port and volume wiring
- README update
- Out of scope:
- Separate image for the visualizer (reuse runner image until it diverges)
- Hosted / public deployment
- HTTPS / auth
Open questions
- Bundle visualizer deps (
streamlit, plotly or altair) into the main image, or split into an optional extra (pip install -e ".[viz]")? Extra is cleaner but adds a build matrix.
Depends on
Related
Motivation
Once the visualizer (issue #??) and the dockerized runner (issue #??) both
exist,
docker compose up visualizershould be the canonical way for areplicator to open the results dashboard against an experiment DB. This
closes the replication loop: clone → build → run experiments → view
results, all in containers.
Proposal
Add a
visualizerservice todocker-compose.yml:streamlit run src/maestro/viz/app.py --server.port 8501 --server.address 0.0.0.0.8501:8501mapped to host..envpopulated.Update README:
docker compose up visualizer→ openhttp://localhost:8501.Scope
Open questions
streamlit,plotlyoraltair) into the main image, or split into an optional extra (pip install -e ".[viz]")? Extra is cleaner but adds a build matrix.Depends on
Related
docker-compose.yml