Extend graph_sessions schema and GraphRepository dashboards (user/slug/platform), wire nginx/orchestration routes, fix gmdate timestamps, and add API smoke script. Co-authored-by: Cursor <cursoragent@cursor.com>
Project hub
Infra overview: docs/INFRA.md
Static landing: index.html, hub.css, hub-logo-layers.css.
Logo assets in assets/ (editable fragments, loaded on demand):
hub-logo-fragment-space.svg— cosmic background (#space-bg, #stars-layer, #nebula-*)hub-logo-fragment-globe.svg— Earth (round border + Mercator grid 3x3, no continents)hub-logo-transparent.svg— header mark (globe only)
Review one layer: ?logoPart=space|globe|full
Compare Earth grids: ?logoPart=globe&grid=3 (default) or ?logoPart=full&grid=4
3D Earth (feature/3d_earth): Canvas orthographic globe baked from the same SVG layers as the static hub (globe + continents-mercator-globe + gridOverlay). Idle spin is slow (~0.035 rad/s); drag horizontally to rotate. Disable with ?globe3d=0. Deploy assets/hub-globe.js with index.html.
3D globe background (default): WebGL sphere with Mercator continents, meridian/equator grid, slow Y-axis spin; drag horizontally to spin (speed follows pointer). Disable: ?globe3d=0 (flat SVG layers). Default yaw: 0.42 rad (?globeYawDeg=24 to override). Requires deploying assets/hub-globe.js + hub-logo-layers.css + updated index.html (see DEPLOY.md).
BE only. FE apps.f0xx.org sends location / → http://artc0.intra.raptor.org:80 (not :8089).
Deploy copies/symlink under .../androidcast_project/ on the VM. Background watermark is 3% opacity (hub.css).
See DEPLOY.md — edit listen 80 in tmp/BE_alpine/etc/nginx/conf.d/apps.conf using
examples/crash_reporter/backend/nginx.apps-port80.fragment.
Google Analytics (optional)
Shared loader: ../crash_reporter/backend/public/assets/js/analytics.js
- Hub: copy
assets/analytics.config.example.js→assets/analytics.config.jsand setmeasurementId: 'G-…'. - Crash console: in
config/config.phpsetanalytics.enabledandanalytics.measurement_id.
Tracks hub page views, nav card clicks, and crash-console views (console_view by data-view).