Sportstlm Architecture (main hub)
sportstlm.com is the primary hub — football (soccer) in-run, served by the
sportstlm Docker container on 127.0.0.1:9000.
Container layout
/opt/sportstlm/— app sourceDockerfile,frontend/Dockerfile,backend/Dockerfiledata/sportstlm.db— SQLite (37 tables)data/llm_usage.jsonl— LLM cost logscripts/sportsmole_online.py— Sports Mole pipeline- Image tags:
sportstlm:latest(live), rollbacks kept as e.g.sportstlm:pre-llm-order,
sportstlm:llm-order.
Public routes
| Path | Handler |
|---|---|
/ (SPA) |
frontend (Next.js) |
/api/* |
backend (FastAPI) |
/liveinrun2/* |
in-run hub sidecar (in-container) |
/livenba/* → :8126 |
livenba container |
/ops/* → :9600 |
opsd |
/pz/api/predictz/ingest* → :9600 |
Predictz ingest |
Frontend routes: / /admin /article /league /liveinrun /match /players /privacy /stats /terms /transfers.
Data flow (football)
Scrape (Sports Mole online + local-feeds + Predictz) → LLM-enrich/paraphrase → persist
/opt/sportstlm/data/sportstlm.db → serve SPA + API. See:
- Sportstlm/Sports Mole Pipeline
- Sportstlm/LLM Pipeline
- VPS/Local-VPS Sync
Admin
- Admin API:
/api/admin/sportsmole/import-batch,paraphrase?id=N. - Odds edits are global (admin).
- Main-UI games show only today/yesterday; upcoming pre-mapped to results + odds.
Related modules
The in-run hub (/liveinrun2) and NBA in-run (livenba) are separate concerns but
served under this same origin. The older inlive2 container (goaloo livescore, :8123)
is currently Exited — see VPS/Containers.