Henrik Jess Nielsen
026b470b31
Fix metrics.json path to persistent data volume (/app/data)
Build and Deploy MoneyMaker / build-and-deploy (push) Successful in 12m21s
2026-05-28 13:42:36 +02:00
Henrik Jess Nielsen
6a407cf216
Add /metrics + /metrics-dash endpoints, Claude cost tracking and safety caps
...
- Track Claude token usage + cost in metrics.json after each call
- Add /metrics JSON endpoint
- Add /metrics-dash visual dashboard (KPIs, charts, burn bars)
- Switch model to claude-3-haiku-20240307 (3.2x cheaper)
- Add per-run cap (50 calls) and daily spend cap ($2.00, env: CLAUDE_DAILY_CAP_USD)
2026-05-28 13:41:53 +02:00
Henrik Jess Nielsen
2294f5bc07
Metrics
Build and Deploy MoneyMaker / build-and-deploy (push) Successful in 12m22s
2026-05-28 13:11:29 +02:00
Henrik Jess Nielsen
4a08016edf
fix: SQLite column migration + startup init_schema + missing DB_URL warning
...
Build and Deploy MoneyMaker / build-and-deploy (push) Has been cancelled
- db.py: auto-migrate missing columns (signal_correct, pnl_dkk, etc.) on existing SQLite DBs
- db.py: print warning to stderr if DATABASE_URL not set
- dashboard.py: call init_schema() at startup so columns always exist
2026-05-27 15:04:15 +02:00
Henrik Jess Nielsen
1df1bbbd47
feat(dashboard): add C25 Signal Board + light theme polish
...
Build and Deploy MoneyMaker / build-and-deploy (push) Failing after 48m10s
- Add signal board section showing per-ticker NLP analysis from DB
- Badge-yellow CSS class added
- _signal_board_data() helper: maps company_stats() + analyst_rec()
to clean badge classes, signal strength bar, agreement status
- Error-safe: falls back to empty list on import/query failure
- badge-yellow added to CSS palette
2026-05-26 23:06:31 +02:00
Henrik Jess Nielsen
6f1ee72e10
feat: containerize for mmd.i80.dk deployment via Gitea/Nomad
...
Build and Deploy MoneyMaker / build-and-deploy (push) Failing after 15s
- Add Dockerfile (python:3.12-slim, HF_HOME=/app/data/hf-cache)
- Add mmd.nomad (multi-task: web=dashboard, worker=scheduler)
- Add .gitea/workflows/deploy.yml (build->Harbor, deploy->Nomad)
- Add scheduler.py (stdlib scheduler replaces cron in container)
- Add requirements.txt
- dashboard.py: LOG_DIR + PORT/HOST from env vars
- saxo_auth.py: TOKEN_FILE from SAXO_TOKEN_FILE env var
- .gitignore: proper ignores for container project
Volume moneymaker-data (/app/data) holds:
- logs/ (shared between web+worker)
- .saxo_token.json (pre-copy once after first deploy)
- hf-cache/ (HuggingFace FinBERT cache)
Gitea secrets required: DATABASE_URL, ANTHROPIC_API_KEY,
SAXO_APP_KEY, SAXO_APP_SECRET_1, HARBOR_ROBOT_TOKEN
2026-05-26 22:30:38 +02:00
Henrik Jess Nielsen
05eed51e7d
First commit
2026-05-26 22:21:27 +02:00