No description
  • Rust 52.8%
  • Vue 24.3%
  • TypeScript 22.4%
  • Dockerfile 0.3%
  • CSS 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-08-04 21:56:12 +02:00
crates feat(organizations): scope kits + outings, drop form org selectors, add move-to action 2026-08-04 21:30:23 +02:00
docker feat(deploy): docker self-hosted stack (postgres + gear-http + caddy) 2026-07-26 09:24:11 +02:00
packages feat(organizations): scope kits + outings, drop form org selectors, add move-to action 2026-08-04 21:30:23 +02:00
.dockerignore feat(deploy): docker self-hosted stack (postgres + gear-http + caddy) 2026-07-26 09:24:11 +02:00
.env.example feat(deploy): docker self-hosted stack (postgres + gear-http + caddy) 2026-07-26 09:24:11 +02:00
.envrc Init tooling: devbox, Taskfile, prek + bilingual README 2026-07-07 08:06:44 +02:00
.gitignore feat(tauri-desktop): local desktop app via Tauri commands + first-boot flow 2026-07-17 06:36:02 +02:00
.taplo.toml Fix prek.toml to TOML 1.0 syntax and add taplo exclude config 2026-07-07 18:39:38 +02:00
bun.lock feat(equipment): barcode + NFC UID columns, camera scanner and QR fast-path 2026-08-01 10:48:14 +02:00
Cargo.lock feat(organizations): domain model, admin CLI, instance-admin UI 2026-08-02 17:20:13 +02:00
Cargo.toml Scaffold gear-persistence crate with SeaORM workspace deps 2026-07-09 08:01:24 +02:00
devbox.json chore(devbox): bundle glib-networking so WebKit finds a TLS backend 2026-07-21 22:05:37 +02:00
devbox.lock chore(devbox): bundle glib-networking so WebKit finds a TLS backend 2026-07-21 22:05:37 +02:00
docker-compose.yml feat(deploy): docker self-hosted stack (postgres + gear-http + caddy) 2026-07-26 09:24:11 +02:00
LICENSE Initial commit 2026-07-05 18:24:32 +02:00
package.json feat(equipment): barcode + NFC UID columns, camera scanner and QR fast-path 2026-08-01 10:48:14 +02:00
prek.toml Fix prek.toml to TOML 1.0 syntax and add taplo exclude config 2026-07-07 18:39:38 +02:00
README.fr.md feat(deploy): docker self-hosted stack (postgres + gear-http + caddy) 2026-07-26 09:24:11 +02:00
README.md feat(deploy): docker self-hosted stack (postgres + gear-http + caddy) 2026-07-26 09:24:11 +02:00
Taskfile.yml feat(deploy): docker self-hosted stack (postgres + gear-http + caddy) 2026-07-26 09:24:11 +02:00

GearTrack

Tauri desktop app + Actix HTTP backend + Vue/Vuetify frontend shared between the two runtimes. Same stack as mysecretsanta-rs.

Version française : README.fr.md.

Stack

  • Rust — domain lib + Actix backend + Tauri wrapper
  • Vue 3 + Vuetify — shared frontend (web mode talks to the HTTP backend, desktop mode uses Tauri invoke)
  • Devbox — reproducible dev environment (Nix under the hood)
  • Taskfile — command orchestration (task <name>)
  • prek — pre-commit runner written in Rust (drop-in replacement for pre-commit)

Initial setup

devbox shell        # enter the env (or let direnv do it automatically)
task install        # bun install + cargo build (when present) + prek hooks

If direnv is installed and enabled (direnv allow in this directory), the devbox env is loaded automatically on every cd into the folder.

Commands

task              # help
task lint         # full lint (rust + web + toml)
task fmt          # cargo fmt + taplo fmt
task test         # all tests
task precommit:run:all   # run every hook against the whole repo

Docker deployment

Self-hosted stack in three containers (Postgres + Actix backend + Caddy serving the SPA and reverse-proxying /api) :

cp .env.example .env    # set POSTGRES_PASSWORD + JWT_SECRET at minimum
docker compose up -d --build
curl http://localhost:8081/api/config

Full operator guide lives out-of-tree at ../docs/DOCKER.md (project-root technical wiki, not versioned in the repo).

Pre-commit (prek)

Configuration lives in prek.toml (prek's native format, more compact than the upstream YAML). Active hooks:

  • Generic: trailing whitespace, end-of-file, YAML/JSON/TOML validity, large files, merge conflicts.
  • Rust: cargo fmt --check, cargo clippy -D warnings (triggered only when .rs files are staged).
  • TOML: taplo fmt --check.
  • Frontend: bun run lint + bun run type-check (triggered only when files under packages/**/*.{ts,vue,js,json,scss} are staged).

The git hooks are installed automatically on the first devbox shell entry (via the init_hook). To reinstall manually: task precommit:install.