mirror of
https://github.com/Av0idD4rk/firegex.git
synced 2026-10-23 16:31:00 +00:00
The real frontend, built against an in-memory backend, so the UI can be tried without a Linux host, NET_ADMIN or a running firewall. A visitor can create, edit, start, stop and delete services across all five modules and watch the UI react as it would against a real instance; a reload restores the seed. - frontend/src/js/demo.ts holds the mock. genericapi() and the socket.io client are the frontend's only two ways out to the network, so routing both through it was enough - no component knows the difference. It also emits the same "update" events the backend does, and ticks the packet counters of running services so the page looks alive. - The demo lives behind IS_DEMO, which vite inlines as a literal, so a normal `bun run build` tree-shakes the module and its seed data away. Verified: no demo string survives in the production bundle. - The workflow rebuilds on every push touching frontend/ or docs/ and deploys to demo.firegex.pwnzer0tt1.it, copying index.html to 404.html so deep links resolve on Pages. |
||
|---|---|---|
| .. | ||
| public | ||
| src | ||
| .env.demo | ||
| bun.lock | ||
| index.html | ||
| package.json | ||
| README.md | ||
| tsconfig.json | ||
| vite.config.ts | ||
Firegex Frontend
The frontend of firegex is written using vite. The routing of the pages is managed by react-router 6 and the graphics is mainly managed by the framework Mantine and icons provided by React Icons. The style of the page is written with sass.
The page is auto-updated by a global timeout and also thanks to socket.io that raise an event triggering all parts of the app that requires fetch updated data from the backend, the update of these data.
