Sign inSign up

abrechen2/travstats

By abrechen2

Updated 13 days ago

Self-hosted travel logbook: flights, cruises, hotels. Maps, stats, 270+ achievements. travstats.de

Image
Web servers
1

10K+

abrechen2/travstats repository overview

TravStats

Self-hosted travel logbook for small households and groups (1–10 users). Log flights and cruises, plus hotels and places, and get history, statistics, maps and achievements out of them. It all runs on your own server: no cloud, no telemetry, no ads.

It's a logbook, not a live tracker. You enter a trip by hand, scan a boarding pass or import a confirmation email, and TravStats turns that into history.

📖 Documentation: travstats.de/docs · 🌐 travstats.de · 💻 GitHub · 💬 Discord

Highlights

  • Flights and cruises. Import a cruise from email or PDF: the ship, every port of call and every sea day. Fly-and-cruise trips link both.
  • Maps. Routes, heatmap, animated trips and a 3D globe, for flights and cruises alike.
  • Statistics across all of it. Distance, countries, active days, top airlines and cruise lines, per year and all-time.
  • 270+ achievements, bronze to diamond.
  • Import. Boarding-pass scanner (QR / PDF417 / OCR); confirmation emails (text, HTML, .eml, Outlook .msg) with optional local LLM parsing via Ollama; Excel/CSV round-trip.
  • REST API with OpenAPI 3.0 / Swagger UI and personal access tokens (read / write / admin).
  • Automated backups with retention and optional WebDAV off-site sync.
  • Security. Invite-only by default, JWT in HttpOnly cookies, rate limiting, optional two-factor authentication and passkeys.
  • German and English UI.

Quick start

curl -O https://raw.githubusercontent.com/Abrechen2/TravStats/main/docker-compose.prod.yml
echo "DB_PASSWORD=$(openssl rand -base64 32)" > .env
docker compose -f docker-compose.prod.yml up -d
# then open http://localhost:3000/setup

The database password is the only thing you set in a file. Everything else (instance name, API keys, Ollama, backups, SMTP) is handled by the setup wizard and the admin UI.

Tags

TagPoints to
latest, stableNewest promoted stable release
X.Y.ZPinned, immutable release
rc-latestNewest release candidate, for testers

Docker Hub mirrors these tags byte-identically from the primary registry, ghcr.io/abrechen2/travstats. Individual RC and beta tags are published on GHCR only.

Good to know

  • amd64 only. The published images have a single linux/amd64 manifest.
  • PostgreSQL is required. It is bundled in the compose file; there is no SQLite fallback.
  • Built for 1–10 users on one instance. There is no SSO or multi-tenancy.
  • Flight-data APIs are optional (AirLabs / Aviationstack / OpenSky). Everything works without a key.
  • Local LLM parsing needs real hardware. Plan on gemma3:12b on a machine with a GPU.

Support

Bug reports and ideas go to GitHub Issues. Report security vulnerabilities through a private advisory. License: AGPL-3.0-or-later.

Tag summary

Content type

Image

Digest

sha256:7e82b977b

Size

473.7 MB

Last updated

13 days ago

docker pull abrechen2/travstats