firegex/frontend
Domingo Dirutigliano 08d83e0041
Publish a browsable demo on GitHub Pages
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.
2026-09-03 09:36:37 +02:00
..
public add: frontend update 2024-10-13 01:50:52 +02:00
src Publish a browsable demo on GitHub Pages 2026-09-03 09:36:37 +02:00
.env.demo Publish a browsable demo on GitHub Pages 2026-09-03 09:36:37 +02:00
bun.lock integrated and refactore docs + minor changes 2026-07-23 16:53:09 +02:00
index.html mantine update + passed to vite 2023-06-05 00:57:54 +02:00
package.json Publish a browsable demo on GitHub Pages 2026-09-03 09:36:37 +02:00
README.md docs: update 2023-10-01 02:21:07 +02:00
tsconfig.json mantine update 2026-06-21 11:49:53 +02:00
vite.config.ts integrated and refactore docs + minor changes 2026-07-23 16:53:09 +02:00

Firegex Frontend

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.

GO BACK