MTL Explorer: a self-hosted GPS track explorer for maps, stats, filtering, route planning, and photo-linked trail history.
40
stars
27
commits
Java
primary language
Sep 4, 2026
updated
Self-hosted GPS track and trail log for your own PC, NAS, home lab, or server.
| 🏠 Home page | 🧭 Live demo | ▶️ Intro video |
|---|---|---|
| Visit the home page | Try the live demo | Watch on YouTube |
| Overview, screenshots, and feature tour. | No account needed; loaded with demo tracks. | Three-minute walkthrough. |
MTL Explorer imports Garmin, GPX, and FIT tracks, shows them on a map, analyzes track statistics, replays activities with a cinematic 3D camera, and can plan routes with BRouter. It is designed for self-hosting with Docker Compose. Location search runs in a separate GeoNames SQLite sidecar.
See the feature overview for the current capability list.
Why I built MTL Explorer: the project started from the need to see thousands of Garmin tracks on one map, then grew into a personal exploration, planning, and statistics tool.
Note: MTL Explorer is a long-running personal project. This GitHub repository is a recently published public mirror; primary development happens in a private repository, so the public commit history may look younger than the project itself and may not include all intermediate steps. AI tools helped polish parts of the user experience, but MTL Explorer is not an automatically generated project. Even with the most advanced AI tools available today, that is not (yet?) possible.
Repository layout:
mtl-server/ - Spring Boot backend.mtl-client/ - Vue 3 and TypeScript PWA.mtl-api/ - OpenAPI schema and generated TypeScript clients.docker-brouter/ - BRouter sidecar.docker-maps/ - optional local vector map sidecar.docker-location-search/ - GeoNames SQLite location-search sidecar.docker/ - import and demo-data helpers.Prerequisite: Docker Engine and the Docker Compose plugin must be installed and support docker compose.
Start the stack:
mkdir mtl-explorer && cd mtl-explorer
curl -fsSL -o docker-compose.yml https://raw.githubusercontent.com/mindalyze-com/mtl-explorer/main/docker-compose.yml
docker compose up -d
mkdir mtl-explorer; cd mtl-explorer
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/mindalyze-com/mtl-explorer/main/docker-compose.yml" -OutFile "docker-compose.yml"
docker compose up -d
(Note: The server takes about 10-15 seconds to boot up and initialize the database on first run.)
Open http://localhost:18080/mtl/ and log in:
mtlchange-meTo import your tracks, copy GPX/FIT files into the ./data/gpx/ folder.
Change the default login before exposing MTL Explorer outside your home network. For custom logins, directories, offline maps, and reverse proxy setup, see the home install guide.
MTL Explorer is available under AGPL-3.0-or-later, with a separate commercial license for users who do not want to comply with the AGPL terms.
MTL Explorer is not a safety-critical navigation system. See the full disclaimer.
Copyright (C) 2020-2026 Patrick Heusser and MTL Explorer contributors.
27 commits
Java
35.8%
TypeScript
31.0%
Vue
27.1%
Python
4.3%
CSS
1.1%
MTL Explorer: a self-hosted GPS track explorer for maps, stats, filtering, route planning, and photo-linked trail history.
40
stars
27
commits
Java
primary language
Sep 4, 2026
updated
Self-hosted GPS track and trail log for your own PC, NAS, home lab, or server.
| 🏠 Home page | 🧭 Live demo | ▶️ Intro video |
|---|---|---|
| Visit the home page | Try the live demo | Watch on YouTube |
| Overview, screenshots, and feature tour. | No account needed; loaded with demo tracks. | Three-minute walkthrough. |
MTL Explorer imports Garmin, GPX, and FIT tracks, shows them on a map, analyzes track statistics, replays activities with a cinematic 3D camera, and can plan routes with BRouter. It is designed for self-hosting with Docker Compose. Location search runs in a separate GeoNames SQLite sidecar.
See the feature overview for the current capability list.
Why I built MTL Explorer: the project started from the need to see thousands of Garmin tracks on one map, then grew into a personal exploration, planning, and statistics tool.
Note: MTL Explorer is a long-running personal project. This GitHub repository is a recently published public mirror; primary development happens in a private repository, so the public commit history may look younger than the project itself and may not include all intermediate steps. AI tools helped polish parts of the user experience, but MTL Explorer is not an automatically generated project. Even with the most advanced AI tools available today, that is not (yet?) possible.
Repository layout:
mtl-server/ - Spring Boot backend.mtl-client/ - Vue 3 and TypeScript PWA.mtl-api/ - OpenAPI schema and generated TypeScript clients.docker-brouter/ - BRouter sidecar.docker-maps/ - optional local vector map sidecar.docker-location-search/ - GeoNames SQLite location-search sidecar.docker/ - import and demo-data helpers.Prerequisite: Docker Engine and the Docker Compose plugin must be installed and support docker compose.
Start the stack:
mkdir mtl-explorer && cd mtl-explorer
curl -fsSL -o docker-compose.yml https://raw.githubusercontent.com/mindalyze-com/mtl-explorer/main/docker-compose.yml
docker compose up -d
mkdir mtl-explorer; cd mtl-explorer
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/mindalyze-com/mtl-explorer/main/docker-compose.yml" -OutFile "docker-compose.yml"
docker compose up -d
(Note: The server takes about 10-15 seconds to boot up and initialize the database on first run.)
Open http://localhost:18080/mtl/ and log in:
mtlchange-meTo import your tracks, copy GPX/FIT files into the ./data/gpx/ folder.
Change the default login before exposing MTL Explorer outside your home network. For custom logins, directories, offline maps, and reverse proxy setup, see the home install guide.
MTL Explorer is available under AGPL-3.0-or-later, with a separate commercial license for users who do not want to comply with the AGPL terms.
MTL Explorer is not a safety-critical navigation system. See the full disclaimer.
Copyright (C) 2020-2026 Patrick Heusser and MTL Explorer contributors.
27 commits
Java
35.8%
TypeScript
31.0%
Vue
27.1%
Python
4.3%
CSS
1.1%