Files
website/scripts/demo
Christian ManivongandClaude Opus 5.5 011f816fc9 feat: replace UI mockups with real netOrk screenshots
The homepage showed seven hand-built JSX imitations of the netOrk UI. They
are gone; every image is now a screenshot of netOrk v0.28.0 itself, taken
from an anonymized copy of a production database (scripts/demo) with
scripts/screenshots/capture.py and published as WebP (~630 KB for all eight).

- Hero: the device inventory. Walkthrough: device detail, VLANs, the Security
  tab, the vulnerability triage queue (replacing the config-diff row), the
  dashboard and service checks (new row 6). NIS2: the audit log, filtered to
  what people did.
- Copy follows the images: row 3 describes the security assessment, row 4 the
  triage queue; row 2 no longer claims corrections are always automatic;
  18 widgets. Alt texts in both languages.
- Also fixed on the homepage: the NIS2 teaser for Art. 21 (2e) and the
  container list of a deployment (three worker pools, plus Flower, registry,
  APT cache and the Signal gateway).
- Demo tooling hardened on the real dump: secrets inside JSON (Wi-Fi keys),
  reverse DNS zones, glued identifiers, tens of thousands of CrowdSec
  addresses, a schema newer than the release (anonymize, then downgrade),
  MFA-enforcing roles, and click steps for view filters.
- DESIGN.md: real screenshots only. PAGES.md: the six rows as they are.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 08:24:51 +02:00
..

Demo instance for screenshots

The website shows real netOrk screens, taken from a local copy of a production database with every hostname, domain, address, MAC and name replaced.

pg_dump -Fc ... > netork.dump                 # on the production host, by hand
scripts/demo/up.sh restore netork.dump        # fresh local DB + anonymize.py
scripts/demo/up.sh start                      # API :8000, UI http://127.0.0.1:5173
scripts/screenshots/capture.py --list-devices
scripts/screenshots/capture.py --var ap=<id> --var switch=<id> --var server=<id>

Log in as netork / netork-demo.

  • Only the API and the UI run. There is no worker, no beat and no Redis, so nothing polls or reaches a device. Stored credentials are emptied, and the encryption key is random per start.
  • The mapping from real to demo names lives outside the repo in ~/.config/netork-screenshots/demo-map.json, because it lists the real names. Domains become example.demo.
  • anonymize.py ends with a leak report. Read it before taking screenshots, and look at every image before committing it.
  • The dump file itself holds production data: keep it out of the repo and delete it when done.