No description
  • Rust 62.5%
  • TypeScript 19.7%
  • CSS 14.6%
  • JavaScript 2.6%
  • Dockerfile 0.4%
  • Other 0.2%
Find a file
2026-07-15 17:04:05 +02:00
.forgejo/workflows ci: make deployment workflow manual 2026-07-15 14:44:24 +02:00
deploy ci: add Forgejo deployment workflow 2026-07-15 14:28:44 +02:00
parser feat: add replay parser and web dashboard 2026-07-15 14:09:11 +02:00
web feat(web): improve accessibility 2026-07-15 17:04:05 +02:00
.dockerignore ci: add Forgejo deployment workflow 2026-07-15 14:28:44 +02:00
.gitignore fix(ci): include TypeScript configuration 2026-07-15 14:46:28 +02:00
compose.yml ci: add Forgejo deployment workflow 2026-07-15 14:28:44 +02:00
Dockerfile fix(ci): update Rust image for wasm-pack 2026-07-15 14:41:56 +02:00
README.md ci: make deployment workflow manual 2026-07-15 14:44:24 +02:00
Y11_REC_FORMAT.md feat: add replay parser and web dashboard 2026-07-15 14:09:11 +02:00

Y11 Replay Viewer

A local-first Rainbow Six Siege Y11 replay viewer. The Rust parser runs inside a Web Worker through WebAssembly, so replay data stays in the browser and large files do not block the interface.

Run the web app

Requirements: a recent Node.js release, Rust with the wasm32-unknown-unknown target, and wasm-pack.

cd web
npm install
npm run build:all
npm run dev

Open the local URL printed by Vite, then drag a replay folder or one or more .rec files onto the upload screen. The native folder picker is also available where the browser supports it.

Use npm run build after frontend-only edits. Run npm run wasm after changing the Rust WebAssembly interface, or npm run build:all to rebuild both layers.

Checks

cd web
npm run test:parser
npm run build

cd ../parser
cargo test --all-targets --features wasm
cargo clippy --all-targets --features wasm -- -D warnings

npm run test:parser feeds every replay below parser/replays through the generated WebAssembly module and verifies that the browser-facing match model contains the expected rounds and teams.

Forgejo deployment

The manually dispatched workflow in .forgejo/workflows/deploy.yml builds the Rust/WASM parser and web frontend into a self-contained nginx image, publishes it to the Forgejo container registry, and deploys it through compose.yml.

Configure a dedicated Forgejo runner on the VPS with the label vps, Docker Engine access, the Docker Compose plugin, and access to the external Traefik network named proxy. Add this repository Actions variable and secrets:

  • variable REGISTRY_HOST: the Forgejo registry hostname, without a path;
  • secret REGISTRY_USERNAME: a Forgejo user allowed to publish packages; and
  • secret REGISTRY_TOKEN: that user's personal access token.

The deployed route is replay.hadeler.me; adjust the Traefik labels in compose.yml if the hostname, entrypoint, or certificate resolver differs.