- Rust 52.8%
- Vue 24.3%
- TypeScript 22.4%
- Dockerfile 0.3%
- CSS 0.1%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| crates | ||
| docker | ||
| packages | ||
| .dockerignore | ||
| .env.example | ||
| .envrc | ||
| .gitignore | ||
| .taplo.toml | ||
| bun.lock | ||
| Cargo.lock | ||
| Cargo.toml | ||
| devbox.json | ||
| devbox.lock | ||
| docker-compose.yml | ||
| LICENSE | ||
| package.json | ||
| prek.toml | ||
| README.fr.md | ||
| README.md | ||
| Taskfile.yml | ||
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.rsfiles are staged). - TOML:
taplo fmt --check. - Frontend:
bun run lint+bun run type-check(triggered only when files underpackages/**/*.{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.