gazel — short for gas gazelle — /ɡəˈzɛl/
A lightweight, self-hosted fuel expense and mileage tracker. Log fill-ups, track fuel efficiency and costs across your vehicles, and spot trends over time — all from a single binary with no external dependencies.
The gazel remembers every drop so you don't have to.
- Multi-vehicle tracking — manage all your cars, motorcycles, and trucks in one place
- Fill-up logging — record date, odometer, fuel amount, cost, and station
- Fuel efficiency — automatic MPG / L/100km calculation between fill-ups
- Cost tracking — cost per mile/km, monthly and yearly spend breakdowns
- Dashboard — at-a-glance overview with summary stats and recent activity
- Charts — visualize efficiency, cost, and fuel price trends over time
- Flexible units — switch between imperial and metric, choose your currency
- Multi-language — English and German
- Data portability — export and import your data as JSON
- Light & dark theme — follows your system preference, with manual override
- Installable PWA — add to home screen on mobile for a native-like experience
- Single binary — self-contained Rust service with embedded UI, just run it or use Docker
docker run -p 4110:4110 -v gazel-data:/data \
ghcr.io/simplyroba/gazel:latestOpen http://localhost:4110. Data is persisted in the gazel-data volume.
A docker-compose.yml is included in the repository.
docker compose up -d| Variable | Default | Description |
|---|---|---|
GAZEL_PORT |
4110 |
HTTP server listen port. |
GAZEL_DB_PATH |
/data/gazel.db |
Filesystem path to the SQLite database. |
GAZEL_LOG_LEVEL |
info |
tracing level filter for logs. |
gazel has no built-in authentication. It is designed to run on a trusted home network or behind a reverse proxy that handles auth (e.g., Authelia, Authentik, Caddy with basic auth). Do not expose it directly to the internet.
See CONTRIBUTING.md for dev setup, testing, and design system documentation.
This project is developed spec-driven with AI assistance, reviewed by a critical human.

