surfoo / georoadbook
Create your geocaching roadbook ready-to-print from your gpx file.
Package info
Language:JavaScript
Type:project
pkg:composer/surfoo/georoadbook
Requires
- php: ~7.2
- ext-dom: *
- ext-tidy: *
- ext-zip: *
- cebe/markdown: ~1.0
- components/jquery: ~2.2
- jbbcode/jbbcode: 1.2.*
- kartik-v/bootstrap-fileinput: ~4.3.0
- monolog/monolog: ^1.22
- silex/silex: ~2.0
- surfoo/geocaching-php-sdk: ~3.2.0
- symfony/asset: ^3.2
- symfony/console: ^3.2
- symfony/translation: ^3.2
- symfony/twig-bridge: ^3.2
- tinymce/tinymce: ~4.0
- twbs/bootstrap: ^3.3
- twig/twig: ~2.0
Requires (Dev)
- phpstan/phpstan: ^0.10.5
- silex/web-profiler: ^2.0
- symfony/var-dumper: ^3.2
This package is auto-updated.
Last update: 2026-07-12 23:27:25 UTC
README
GeoRoadbook is a web app to create your geocaching roadbook ready-to-print from your GPX file (Pocket Query, GSAK, GCTour, …). Upload a GPX (or pick one of your Pocket Queries via the Geocaching.com API), customize the content, edit it in the browser, and export as HTML, ZIP, or a print-grade PDF with a paginated table of contents, page headers/footers, and PDF bookmarks.
Hosted here: http://georoadbook.vaguelibre.net/
Stack
- Symfony 8 (no database — roadbooks are plain files, users live in the session)
- Bootstrap 5 + vanilla JavaScript via Symfony Asset Mapper (no build step)
- Jodit in-browser editor
- WeasyPrint sidecar for HTML → PDF conversion (CSS Paged Media)
- Twig rendering of parsed GPX (typed
GpxParser+RoadbookRenderer), jBBCode and cebe/markdown for log parsing - PHP 8.5 with the
tidyextension - OAuth2 (PKCE) against the Geocaching.com API for Pocket Queries
Development setup
git clone https://github.com/Surfoo/georoadbook.git cd georoadbook cp .env .env.local # set GEOCACHING_OAUTH_KEY/SECRET/CALLBACK docker compose up -d --build docker compose exec php-fpm composer install
The app runs at http://localhost:8000/. Three services: webserver (nginx), php-fpm, and weasyprint (PDF conversion).
Code quality
Rector, php-cs-fixer, and PHPStan (level 6) run in CI (.github/workflows/check.yml) and in the versioned pre-commit hook. Activate the hook once per clone:
git config core.hooksPath .githooks
Composer shortcuts: composer rector, composer php-cs-fixer, composer phpstan.
Housekeeping
Roadbooks are deleted after 30 days without modification. Run the purge from cron:
php bin/console app:roadbook:purge # add --dry-run to preview, --days N to override
License
GeoRoadbook is distributed under the Apache License, Version 2.0.
Contact
- original author: surfooo at gmail dot com