PR3: static dashboard served by nginx / krypto-dca serve #3
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/frontend-dashboard"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Dritter von vier PRs. Das statische Dashboard, das die PR2-API konsumiert.
Inhalt
web/: dependency-freies Dashboard, kein Build-Stepweb/vendor/, MIT): Portfoliowert vs. eingezahlt vs. Buy&Hold, Umschalter 30/90/365 Tageprefers-color-scheme, reinesfetch()paths.resolve_web_dir(): findetweb/aus explizitem Pfad,KRYPTO_DCA_WEB_DIR, dem Source-Checkout oder/opt/krypto-dca-bot/webapi.create_app(): mountetweb/alsStaticFilesnach den/api-Routen (die gewinnen immer). Dev:krypto-dca serveliefert damit alles same-origin unter einem Port (kein CORS). Prod: nginx serviertweb/, der Mount liegt brach.config: neues optionales[backend] web_dirscripts/seed_demo.py: Dev-Tool (nicht im CLI), erzeugt eine synthetische paper-modetrading.db(seeded RNG, wöchentliche Käufe bis Spend-Budget, tägliche Kurse + Snapshots), damit lokal Daten da sindroot web/von Platte +/api/proxied auf127.0.0.1:8787, eine Basic-Auth für beidesBugfix (PR2-Code)
db.connect()bekommt ein optionalescheck_same_thread(DefaultTrue, unverändert fürs CLI);api.get_conn/api.healthübergebenFalse. FastAPI führt die Cleanup einer Generator-Dependency u.U. in einem anderen Threadpool-Thread aus als das Öffnen →sqlite3.ProgrammingErrorbei parallelen Requests. Das Dashboard feuert drei Requests gleichzeitig, damit trat es zuverlässig auf.Verifiziert
pytest→ 36 passed (10 neu: static-Mount vs./api, Assets ausgeliefert,app.jsverdrahtet alle Endpunkte,resolve_web_dir, seed-DB treibtanalytics.summarize/history, Buy-Stopp am Budget, Cross-Thread-Close)seed_demo.py→serve→ Browser. Alle Endpunkte 200, auch unter parallelen Dreier-Bursts. KPIs, Chart (90/126 Punkte je Zeitraum), Bestände, Trade-Pagination und Zeitraum-Umschalter funktionieren.Sicherheit
127.0.0.1, ausschließlich lesend; TLS + Auth komplett in nginxCo-authored-by: Claude claude@anthropic.com