React-based monitoring dashboard for projects: Piewell.com, Futures Screener, OpenClaw Agent, System Monitor.
dashboard/
โโโ src/
โ โโโ components/
โ โ โโโ cards/ # Project monitoring cards
โ โ โโโ modals/ # Full-screen detail views
โ โ โโโ ui/ # Reusable UI primitives
โ โ โโโ Header.tsx # Top navigation
โ โ โโโ Footer.tsx # Bottom info
โ โโโ hooks/ # Custom React hooks
โ โโโ lib/ # Utilities & API
โ โโโ types/ # TypeScript definitions
โ โโโ App.tsx # Main app component
โ โโโ main.tsx # Entry point
โโโ backend/ # Express.js API server
โ โโโ index.js # API routes
โโโ dist/ # Production build output
โโโ MIGRATION.md # Migration history
cd /home/app/dashboard
npm install
npm run dev # http://localhost:5173
npm run build # Production build
npm run preview # Preview production build
Base URL: https://dashboard.szhub.space/api
| Endpoint | Method | Description |
|---|---|---|
/api/health |
GET | Backend status |
/api/projects |
GET | All projects summary |
/api/projects/:id |
GET | Project details |
/api/system |
GET | System metrics |
/api/projects/:id/kanban-tasks |
GET | Task board |
/api/actions/restart |
POST | Restart service |
#6366f1 (indigo)#10b981 (green)#ef4444 (red)#f59e0b (amber)<Card>
<CardHeader>
<Icon />
<CardTitle>Title</CardTitle>
<Badge variant="success">Status</Badge>
</CardHeader>
<CardContent>
{/* KPI grid */}
</CardContent>
<CardFooter>
<Button>Actions</Button>
</CardFooter>
</Card>
dashboard)npm run build
pm2 restart dashboard
.env.production:
VITE_API_BASE=https://dashboard.szhub.space/api
npm run build completes without errorssudo nginx -t && sudo systemctl reload nginxpm2 logs dashboardcurl https://dashboard.szhub.space/api/health.envgrid-cols-1 md:grid-cols-2 lg:grid-cols-3/home/app/dashboard/backend//home/app/dashboard-old/ (retention: 30 days)/home/app/dashboard/MIGRATION.mdCreated: 2026-02-25 Maintainer: Morty