A self-hosted app to archive your outdoor adventures — hikes, climbs, scrambles, and everything in between. Import your GPX tracks, attach photos, write notes, and browse everything on an interactive map. Your data lives on your own machine.
- Import and view GPX tracks
- Create points of interest and areas
- Add descriptions, photos and metadata to each entry
- Use filtering options
- Find places with the search bar
- Responsive interface — works on desktop and mobile
![]() | ![]() |
The only prerequisite is Docker. No API key or external account required.
Download the latest release source archive from the latest release page:
https://github.com/TheoFABIEN/Trailkeepr/releases/latest
Extract it, open a terminal in the extracted folder and start the app by running:
docker compose up -dThen open http://localhost:3000 in your browser. That's it.
To get the latest changes, clone the repository directly:
git clone https://github.com/TheoFABIEN/Trailkeepr.git
cd Trailkeepr
docker compose up -dBy default, the app uses the following credentials to connect to the database:
| Variable | Default |
|---|---|
POSTGRES_USER |
postgres |
POSTGRES_PASSWORD |
changeme |
POSTGRES_DB |
hiking |
These defaults work out of the box — no configuration needed for a standard local setup.
If you really want to use your own credentials, create a .env file from the provided .env.example before starting the app for the first time:
cp .env.example .envThen edit .env with your own values.
⚠️ Credentials must be set before the firstdocker compose up -d. The database is initialized once on first launch. If you change credentials in.envafter the database has already been created, the app will fail to connect. To reset, you will need to delete the existing data volume and recreate it:docker compose down -v rm -rf ./data docker compose up -dThis will permanently delete all your archived hikes, points, and photos. Make sure to back up anything important before doing this.

