Share GPS tracks from myTracks apps via web browser - no installation required for viewers.
TrackShare enables users of the myTracks suite of apps to share GPS tracks with anyone via a simple URL. Recipients can view the track on an interactive map using just their web browser, without needing any special software installed.
- Upload GPX tracks via REST API
- Get shareable URL for each track
- Delete tracks when no longer needed
- Secure API key authentication
- View tracks on interactive OpenStreetMap
- See track statistics (distance, duration)
- Pan and zoom the map
- Works on mobile and desktop
- No registration or installation required
cd src
docker-compose up -dAccess the application:
- Frontend: http://localhost/
- Backend API: http://localhost:8080/api
See DEPLOYMENT.md for detailed instructions.
The system consists of three main components:
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Frontend │─────▶│ Backend │─────▶│ PostgreSQL │
│ (nginx) │ │ (.NET 8) │ │ Database │
│ Port 80 │ │ Port 8080 │ │ Port 5432 │
└─────────────┘ └─────────────┘ └─────────────┘
Frontend:
- HTML5, CSS3, JavaScript (ES6+)
- MapLibre GL JS for interactive maps
- nginx web server
- Docker container
Backend:
- .NET 8 / ASP.NET Core
- Entity Framework Core
- PostgreSQL database
- REST API
- Docker container
trackshare/
├── docs/
│ ├── arc42/ # Architecture documentation
│ ├── ai/ # AI generated documentation
│ └── entities/ # Entity specifications
├── src/
│ ├── backend/
│ │ └── TrackShare.Api/ # ASP.NET Core API
│ └── frontend/
│ └── public/ # Static web files
├── DEPLOYMENT.md # Deployment guide
└── README.md # This file
curl -X POST http://localhost:8080/api/tracks/upload \
-H "Content-Type: application/json" \
-H "X-API-Key: dev-api-key-12345" \
-d '{
"id": "my-track-123",
"gpxContent": "<gpx>...</gpx>"
}'Open in browser:
http://localhost/track.html?id=my-track-123
curl -X DELETE http://localhost:8080/api/tracks/my-track-123 \
-H "X-API-Key: dev-api-key-12345"See API_REFERENCE.md for complete API documentation.
cd src/backend/TrackShare.Api
dotnet restore
dotnet runcd src/frontend
npm install
npm run devSee individual README files in each directory for detailed development instructions.
- Architecture Documentation - Arc42 architecture documentation
- API Reference - Complete REST API documentation
- Deployment Guide - Production deployment instructions
- Entity Specification - Database schema
- Backend Implementation - Backend architecture details
- Frontend Implementation - Frontend architecture details
- Docker or Podman
- Docker Compose
- .NET 8 SDK (for development)
- Node.js 18+ (for frontend development)
See LICENSE file for details.
This project is part of the myTracks ecosystem:
For issues and questions:
- Check the documentation
- Review the API reference
- See troubleshooting guide
Note: This repository contains only the backend and frontend for track sharing. The myTracks apps are separate projects.