Small PHP website to manage GPX tracks.
Provide a lightweight self-hosted web app where you can:
- upload GPX files
- browse your uploaded tracks
- view basic track stats (distance, elevation, total points)
- view tracks on a map
- share a map view via a share link
Authentication is handled via email “magic links”.
- PHP (project targets
^8.3) - Composer
- Node.js / npm (only needed to build static assets)
- SQLite extension (
ext-sqlite3)
Alternatively, use the provided docker compose setup.
Environment variables are loaded from .env (see .env.dist for a template).
Key variables:
BASE_URL(used when generating magic links)APPLICATION_MODE(development|production|test)MAIL_PROVIDER/MAIL_PROVIDER_DSN(default SMTP points to the included Mailpit container)EMAIL_FROMLOGIN_TOLERANCE_TIMEPAGINATION_IPP
-
Copy env template:
cp .env.dist .env -
Start containers:
make start -
Open a shell in the app container:
make cli -
Install dependencies and copy assets:
composer installcomposer copy-assets -
Open the app:
http://localhost/
Mailpit UI (for catching magic-link emails in dev):
http://localhost:8025/
-
Copy env template:
cp .env.dist .env -
Install dependencies and copy assets:
composer install
composer copy-assets
-
Ensure writable folders exist:
var/logs/var/data/var/database/ -
Point your web server document root to
public/.
-
Enable/disable Xdebug in Docker:
make xdebug-enablemake xdebug-disable -
Other useful commands:
make help- Show all available Makefile targetsmake build- Build Docker containersmake rebuild- Rebuild containers without cachemake stop- Stop containersmake clean- Stop and remove containers
The project includes a small console entrypoint at bin/console with migration and transfer-generation commands.
Run static analysis + tests:
composer tests
MIT (see LICENSE).