Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Getting Started

Quick start

Needs Nix (with flakes) and Docker or Podman.

nix develop          # enter the dev shell (provides every tool)
task lock            # generate Cargo.lock (first time only)
task run             # open http://localhost:3000

Run task with no arguments to see all available tasks (build, test, lint, container, sbom, cve, deploy, …).

For the shared, persisted canvas, run a Redis alongside:

docker run -d -p 6379:6379 redis:7-alpine
REDIS_URL=redis://localhost:6379 task run

What task run does

sequenceDiagram
    actor Dev as Developer
    participant T as task run
    participant C as cargo
    participant App as pixelflux (:3000)
    participant S as Canvas store
    actor Br as Browser

    Dev->>T: task run
    T->>C: cargo run
    C->>App: compile (debug) and start
    Note over App,S: REDIS_URL set: Redis<br/>otherwise: in-memory
    Br->>App: open http://localhost:3000
    App-->>Br: embedded web UI
    Br->>App: POST /api/pixel
    App->>S: store the pixel
    App-->>Br: SSE /api/events (live update)