slothful-vassal
3b8f00fd26
feat: Refine trail category model ( #1059 )
...
* feat: advanced trail categories
* rename remote_category
* fix merge issues
* subcategories for plugins mapping
* fix refresh
* remove vertical trail filter category scrolling
* cleanup
* add confirm modal for disabling a category
* Fix federation issues
* fix review findings
* redesign category settings page
* remove prio badge
* fix subcategory badge layout
* optimize subcategory settings layout
* further settings page layout optimization
* fix subcategory icon position
* fix
* update docs
---------
Co-authored-by: Christian Beutel <>
2026-06-29 03:16:26 +02:00
slothful-vassal
485ec53f6d
feat: add plugin system ( #1034 )
...
* feat: add plugin system
* fix db docker build
* fix hammerhead readme, add strava subscription news to docs
* fixes and sdk improvements
* fix: reduce Meilisearch load, debounce federation sync (#1012 )
* optimize meili trail index
* several fixes
---------
Co-authored-by: Flomp <Flomp@users.noreply.github.com >
* Bump svelte from 5.55.5 to 5.56.0 in /docs (#1032 )
Bumps [svelte](https://github.com/sveltejs/svelte/tree/HEAD/packages/svelte ) from 5.55.5 to 5.56.0.
- [Release notes](https://github.com/sveltejs/svelte/releases )
- [Changelog](https://github.com/sveltejs/svelte/blob/main/packages/svelte/CHANGELOG.md )
- [Commits](https://github.com/sveltejs/svelte/commits/svelte@5.56.0/packages/svelte )
---
updated-dependencies:
- dependency-name: svelte
dependency-version: 5.56.0
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Flomp <Flomp@users.noreply.github.com >
* Release v0.19.2 (#1035 )
* chore: release v0.19.2
* add changelog
---------
Co-authored-by: Flomp <26000991+Flomp@users.noreply.github.com >
Co-authored-by: Christian Beutel <>
* speed up plugin sync and several small fixes
* concepts for security improvements and process stability
* improve concept
* security concept implemented
* remove insecure TLS
* worker concept implemented
* fixes and cleanup
* fixes
* docu
* mermaid, namings
* WASM plugin host improvements, plugin logging
* fix db migration
* Improve plugin config and category mapping UI
* fixes
* further fixes
* remove manual test sync
* fix db migration and strava mapping
* type added, UI improvements
* fix plugin card toggle clickable area
* optimize synch status card layout
* plugin type 'trails' instead of 'integration'
* session auth validation in UI
* fix komoot date and waypoints
* improve category mapping
* fix send to hammerhead: trail name
* plugin setup error handling improved
* fix review findings
* re-mapping added
* rename remote_category
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: Flomp <Flomp@users.noreply.github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Flomp <26000991+Flomp@users.noreply.github.com >
2026-06-22 15:00:44 +02:00
slothful-vassal
6baeafe755
waypoint editing while drawing a route ( #1060 )
...
* waypoint editing while drawing a route
* fix waypoint click while drawing
---------
Co-authored-by: Christian Beutel <>
2026-06-16 19:55:46 +02:00
Pål Håland
197cd8d04e
feat: implement server-side map clustering ( #991 )
...
* feat: meilisearch bounding box intersection and map filtering
* feat: tiered clustering and polyline filtering based on bounding box diagonal
Addressing review comments with optimized performance and data accuracy:
- Implemented a two-tiered search strategy (Summary vs. Detailed) to provide 100% accurate cluster counts while minimizing metadata traffic.
- Added a client-side ID-based cache to eliminate redundant network requests for trails already in memory.
- Introduced tiered 'detail shedding' that dynamically hides small trail lines when zooming out to maintain smooth panning performance.
- Fixed Svelte 5 reactivity issues to ensure clusters reappear instantly when trail detail is shed.
- Consolidated zoom thresholds into centralized constants for system-wide consistency.
- Updated Meilisearch configuration to support efficient ID-based filtering.
* feat: implement server-side map clustering using Meilisearch and Supercluster
- Implemented SvelteKit server-side clustering route at `/api/v1/search/trails/cluster` using the `supercluster` library.
- Integrated backend search results with the new clustering endpoint to improve performance for large trail datasets.
- Fixed Svelte 5 reactivity in `MapWithElevationMaplibre.svelte` by making `mapLoaded` reactive and fixing destructuring of `` map data.
- Removed obsolete client-side zoom constraints (`minzoom`/`maxzoom`) from `TrailLayer`, `PreviewLayer`, and `ClusterLayer` to allow dynamic visibility controlled by backend attributes.
- Fixed a bug where unauthenticated users generated invalid Meilisearch filters.
- Optimized map page performance by caching bounding box and filter values in the route loader.
- Updated `ClusterLayer` font to `Noto Sans Regular` to match available tileserver resources.
* feat: implement dynamic polyline visibility based on result density
- Replaced static zoom-based diagonal thresholds with a dynamic "Top N" approach for polyline visibility.
- Updated `/api/v1/search/trails/cluster` to mark only the top `MAP_MAX_POLYLINES` (default 100) trails by bounding box diagonal as "large".
- Modified `trails_search_bounding_box` store function to always fetch polylines for trails marked as large, regardless of zoom level.
- Removed obsolete `MAP_*_ZOOM_DIAGONAL_LIMIT` constants and simplified map layer constructors by removing tier-based filtering.
- Updated environment configurations and documentation to use the new `PUBLIC_MAP_MAX_POLYLINES` variable.
* refactor: remove obsolete zoom-based map clustering thresholds
Following the transition to dynamic server-side clustering based on result density (Top N polylines), this commit removes all remaining zoom-based thresholds and logic.
- Removed PUBLIC_MAP_LOW_ZOOM_THRESHOLD, PUBLIC_MAP_MEDIUM_ZOOM_THRESHOLD, and PUBLIC_MAP_HIGH_ZOOM_THRESHOLD environment variables.
- Removed the 'mapClusterMinZoom' user setting from the schema, models, and settings UI.
- Simplified the map component and MapLibre layer managers by removing unused 'clusterMinZoom', 'minZoom', and 'maxZoom' parameters.
- Cleaned up obsolete 'map-cluster-zoom-level' translation keys across all locales.
- Updated documentation to reflect the removal of these variables.
* chore: remove map clustering debug logs
* docs: update changelog and fix global zoom feature disappearance
* fix: address PR reviews and refine map cluster/preview visuals
* feat: implement configurable map cluster zoom and trail start marker settings
* feat: render single unclustered shedded trails as start markers instead of cluster circles
* minor fixes
* minor ui changes
* fix missing entries in map list
* remove redundant map clustering zoom clamp
* fix merge issues
* fix merge issues
* fixes
* hide popup for trails without details
* several improvements
* prevent import of client trail_store in server cluster code
* update changelog
---------
Co-authored-by: slothful-vassal <89943360+slothful-vassal@users.noreply.github.com >
2026-06-07 13:00:26 +02:00
slothful-vassal
44cd092065
Improve trail planning: option to re-order route anchors ( #1007 )
...
* trail anchor list added
* add search location card to extend route endpoint in drawing mode
* add POI popup endpoint action in route drawing mode
* fix anchor stats, improve anchor list entries and refine route marker behavior
* fix map marker spinner
* docs updated
* fix spinner when delete an anchor
* further improvements
* fix adding first anchor from POI
* optimize drag handle area
---------
Co-authored-by: Flomp <Flomp@users.noreply.github.com >
2026-06-06 11:56:12 +02:00
github-actions[bot]
7ad129b841
Release v0.19.2 ( #1035 )
...
* chore: release v0.19.2
* add changelog
---------
Co-authored-by: Flomp <26000991+Flomp@users.noreply.github.com >
Co-authored-by: Christian Beutel <>
2026-06-01 19:30:44 +02:00
slothful-vassal
bfa8dfefbd
prepare v0.19.1 ( #988 )
...
* prepare v0.19.1
* update changelog
---------
Co-authored-by: Christian Beutel <>
Co-authored-by: Flomp <Flomp@users.noreply.github.com >
2026-05-14 18:41:14 +02:00
slothful-vassal
677d3a12b5
prepare changelog for upcoming release ( #970 )
...
* prepare changelog for upcoming release
* minor wording improvements
* #960
* #961
* update changelog
---------
Co-authored-by: Flomp <Flomp@users.noreply.github.com >
Co-authored-by: Christian Beutel <>
2026-05-10 10:11:48 +02:00
slothful-vassal
b5739cb72e
merge trails function added ( #627 )
...
* merge trails function added
* fix conflict resolve issues
* avoid incorrect authorship when merging trail comments
* require edit access for all selected trails before merge
* fix likes checkbox binding in trail merge modal
* improve error handling
* require editable target and deletable sources for merge
* avoid duplicate trail fetch during merge
* prevent duplicate likes when merging trails
* check photo download responses during trail merge
* add merge completion toast notifications
* cleanup
* small fixes
* move merge code to backend, option to merge single trail selection with similar one, automatic merge for integrations add as option, maintenance page to find and merge similar trails added
* fix build error
* fix
* docu, beautifying, refactoring
---------
Co-authored-by: Flomp <Flomp@users.noreply.github.com >
2026-05-09 13:09:26 +02:00
slothful-vassal
6d1d1236ef
Trail Edit / Waypoints from photos: prevent creating different waypoints for near-by locations ( #457 )
...
* trail edit / waypoints from photos: prevent creating different waypoints for near-by locations
* remove not necessary imports
* remove changes from gitignore
* patch gitignore
* waypoint merge radius as category property
* change datamodel for merge radius (use more generic settings field for future implementations)
* fix npm run check issues
* several improvements/fixes
* fix
* move geo cluster code to db
* fix compile issue
* fix docker issue
* merge with existing waypoints
---------
Co-authored-by: Christian Beutel <>
Co-authored-by: Flomp <Flomp@users.noreply.github.com >
2026-04-29 11:15:06 +02:00
slothful-vassal
85e5fb6df7
server sided external api calls ( #697 )
...
* server sided external api calls
* fix uploading gpx files
* rename api/v1/nominatim with api/v1/geocoding to prepare photon support
* remove NOMINATIM_MAX_RETRIES (side-kick from other PR)
* re-add nominatim url fallback
* docu, env var defaults and fallbacks, docker compose files
* refactor
* furhter refactorings and fixes
* PUBLIC_VALHALLA_ENABLED in docker compose files added
* fix env var names
---------
Co-authored-by: Flomp <Flomp@users.noreply.github.com >
2026-04-28 18:19:06 +02:00
Flomp
871bf38112
Feature: watcher based bulk uploads ( #886 )
...
* initial commit
* fix watcher.js for docker
* Update docs
* update healthcheck
* update docs
---------
Co-authored-by: Christian Beutel <>
2026-04-20 13:46:32 +02:00
slothful-vassal
369e71fcec
hammerhead integration added ( #628 )
...
* hammerhead integration added
* typo corrected
* start date added, optimize some translations
* new option to send trail to hammerhead
* fix elevation information (was in cm)
* skip empty tracks on import
* update docs
* remove manual user-id input
* fix merge issues
* remove user-id from documentation
* fix hammerhead logo for light theme
* fix hammerhead logo for light theme
---------
Co-authored-by: Christian Beutel <>
Co-authored-by: Flomp <Flomp@users.noreply.github.com >
2026-03-20 13:58:34 +01:00
slothful-vassal
bd293e6739
new setting: begin drawing a new trail from current location ( #592 )
...
* new setting: begin drawing a new trail from current location
* apply only when drawing
* fix application when editing an existing route
* documentation
* ignore pointer events on location circles
* fix i18n
---------
Co-authored-by: Flomp <Flomp@users.noreply.github.com >
Co-authored-by: Christian Beutel <>
2026-02-28 10:15:43 +01:00
github-actions[bot]
702681acee
Release v0.18.5 ( #830 )
...
* chore: release v0.18.5
* update changelog
---------
Co-authored-by: Flomp <26000991+Flomp@users.noreply.github.com >
Co-authored-by: Christian Beutel <>
2026-02-20 14:50:42 +01:00
Martin Schmidt
c0be0629e3
docs: auth providers and file size limitations ( #743 )
...
* feat: document file size and improve auth providers
* Minor text modifications
---------
Co-authored-by: Flomp <Flomp@users.noreply.github.com >
Co-authored-by: Christian Beutel <>
2026-02-12 14:00:15 +01:00
Ole Albers
98389d774d
Fix installation link in README ( #798 )
...
* Fix installation link in README
Corrected the link for installation from source in README.
* Fix link to 'from source' installation
Updated link for installation from source documentation.
---------
Co-authored-by: slothful-vassal <89943360+slothful-vassal@users.noreply.github.com >
2026-02-11 10:49:39 +01:00
Jonas Plum
d1c87577de
Fix healthcheck in docs ( #781 )
2026-02-06 11:49:54 +01:00
Flomp
32e6b6a6cc
fix/pocketbase-smtp-sender-address-spelling ( #769 )
...
Co-authored-by: Christian Beutel <>
2026-02-04 11:26:49 +01:00
Flomp
f99c650f8b
v0.18.4 Changelog ( #761 )
...
* initial commit
* update changelog
---------
Co-authored-by: Christian Beutel <>
2026-02-02 18:24:45 +01:00
Jonas Plum
c2b86f5521
Change repo url ( #722 )
2026-01-13 20:23:42 +01:00
Jonas Plum
8bf4138962
Add setup.sh script ( #595 )
...
* Add setup.sh script
* Remove update menu item
* make setup.sh work on macOS
* Update wording
---------
Co-authored-by: Christian Beutel <>
2025-10-05 10:14:20 +02:00
slothful-vassal
44bb49ec96
speed up POI retrieval by custom overpass api url ( #596 )
...
* speed up POI retrieval by custom overpass api url
* consistent overpass api url default
* switches default to overpass-api.de
---------
Co-authored-by: Christian Beutel <>
2025-10-04 14:46:52 +02:00
slothful-vassal
03ef547a75
improve some elements for dark mode ( #609 )
2025-10-04 14:38:27 +02:00
Christian Beutel
722bd6c078
updates changelog
2025-09-19 18:07:27 +02:00
Christian Beutel
adf41c370b
updates changelog
2025-09-13 16:39:37 +02:00
Christian Beutel
4ffd2dd0c2
updates changelog
2025-08-28 15:04:21 +02:00
Christian Beutel
7807c5c7c2
fix bare-metal update instructions
2025-08-28 14:53:29 +02:00
Flomp
00bb717def
New Crowdin updates ( #394 )
...
* New translations en.json (Spanish)
* New translations en.json (French)
* New translations en.json (German)
* New translations en.json (Hungarian)
* New translations en.json (Italian)
* New translations en.json (Dutch)
* New translations en.json (Polish)
* New translations en.json (Portuguese)
* New translations en.json (Chinese Simplified)
* New translations en.json (Russian)
* New translations en.json (Basque)
* New translations en.json (Spanish)
* New translations en.json (French)
* New translations en.json (German)
* New translations en.json (Hungarian)
* New translations en.json (Italian)
* New translations en.json (Dutch)
* New translations en.json (Polish)
* New translations en.json (Portuguese)
* New translations en.json (Chinese Simplified)
* New translations en.json (Russian)
* New translations en.json (Basque)
* New translations en.json (Spanish)
* New translations en.json (French)
* New translations en.json (German)
* New translations en.json (Hungarian)
* New translations en.json (Italian)
* New translations en.json (Dutch)
* New translations en.json (Polish)
* New translations en.json (Portuguese)
* New translations en.json (Chinese Simplified)
* New translations en.json (Russian)
* New translations en.json (Basque)
* New translations en.json (Spanish)
* New translations en.json (French)
* New translations en.json (German)
* New translations en.json (Hungarian)
* New translations en.json (Italian)
* New translations en.json (Dutch)
* New translations en.json (Polish)
* New translations en.json (Portuguese)
* New translations en.json (Chinese Simplified)
* New translations en.json (Russian)
* New translations en.json (Basque)
* New translations en.json (Russian)
* New translations en.json (French)
* New translations en.json (French)
* New translations en.json (Spanish)
* New translations en.json (French)
* New translations en.json (German)
* New translations en.json (Hungarian)
* New translations en.json (Italian)
* New translations en.json (Dutch)
* New translations en.json (Polish)
* New translations en.json (Portuguese)
* New translations en.json (Chinese Simplified)
* New translations en.json (Russian)
* New translations en.json (Basque)
* New translations en.json (Spanish)
* New translations en.json (French)
* New translations en.json (German)
* New translations en.json (Hungarian)
* New translations en.json (Italian)
* New translations en.json (Dutch)
* New translations en.json (Polish)
* New translations en.json (Portuguese)
* New translations en.json (Chinese Simplified)
* New translations en.json (Russian)
* New translations en.json (Basque)
* New translations en.json (Italian)
* New translations en.json (Basque)
* New translations en.json (Basque)
* New translations en.json (Basque)
* New translations en.json (Basque)
* New translations en.json (Chinese Simplified)
* New translations en.json (Chinese Simplified)
* New translations en.json (Chinese Simplified)
* New translations en.json (Chinese Simplified)
* New translations en.json (Basque)
* New translations en.json (French)
* New translations en.json (Spanish)
* New translations en.json (German)
* New translations en.json (Basque)
* New translations en.json (Hungarian)
* New translations en.json (Italian)
* New translations en.json (Dutch)
* New translations en.json (Polish)
* New translations en.json (Portuguese)
* New translations en.json (Russian)
* New translations en.json (Chinese Simplified)
* New translations en.json (German)
* New translations en.json (French)
* New translations en.json (Spanish)
* New translations en.json (German)
* New translations en.json (Basque)
* New translations en.json (Hungarian)
* New translations en.json (Italian)
* New translations en.json (Dutch)
* New translations en.json (Polish)
* New translations en.json (Portuguese)
* New translations en.json (Russian)
* New translations en.json (Chinese Simplified)
* adds OpenHikingMaps
* update changelogs
---------
Co-authored-by: Christian Beutel <>
2025-08-24 13:39:28 +02:00
Christian Beutel
7cadd08cb0
adds docs for "About" section
2025-08-24 12:20:27 +02:00
Jonas Plum
05ad5ce8e0
Change docs ( #441 )
...
* Change docs
* hide backend config & small style change
---------
Co-authored-by: Christian Beutel <>
2025-08-22 17:56:38 +02:00
Jonas Plum
f9451d73bf
Add healthchecks ( #437 )
2025-08-22 10:53:55 +02:00
Mario Angst
c47654cfa2
Fixed small typo environment-configuration.md ( #411 )
2025-08-20 13:14:51 +02:00
Jonas Plum
b1173d52ae
Fix typos ( #438 )
2025-08-04 19:23:14 +02:00
Christian Beutel
620d724972
updates changelog
2025-07-10 18:59:18 +02:00
Christian Beutel
dc7afffe8a
updates changelog
2025-07-10 18:52:27 +02:00
Christian Beutel
7cfca84ee3
updates server list
2025-07-10 18:52:21 +02:00
Christian Beutel
e923ec45a4
fixes valhalla URL
2025-07-04 11:21:39 +02:00
Christian Beutel
94a6915d6b
updates server list
2025-06-28 13:37:16 +02:00
Christian Beutel
efebcc176b
v0.17.1
2025-06-27 18:52:57 +02:00
Christian Beutel
67aa566888
adds server list to docs
2025-06-27 17:34:10 +02:00
Christian Beutel
01853dfaa0
Fixes valhalla URL
2025-06-26 12:29:54 +02:00
Christian Beutel
369202ec42
fixes map attribution && adds OpenFreeMap
2025-06-21 13:44:11 +02:00
Flomp
9276690d60
Federation ( #327 )
...
* initial commit federation
* more federation
* more federation
* more federation
* completes follow, accept, undo
* add trail create activity
* process trail create activity
* more trail create activity
* adds missing endpoints
* adds update and delete activity
* adds comment activities
* adds activities back
* adds summit logs activities
* deletes follow counts table
* fixes migrations
* fixes migrations
* fixes migrations
* fixes migrations
* adds remote profiles
* ctd
* ctd
* we are getting closer...
* adds public summit logs
* fixes federated trails in lists
* adds remote lists
* adds list activites
* fixes lists
* adds notifications
* adds iri redirect
* fixes comments and summitlogs
* fixes follows and profiles
* adds asynchronous send
* fixes list search
* adds encryption key
* bug fixes
* fixes activity signing
* removes custon activity object types
* adds html editor
* fixes html editor
* fixes display issues on mastodon
* adds federated sharing
* finishes announcements
* fixes small summit log issues
* adds trail likes
* finalizes likes
* fixes images for komoot
* add disable federation option
* adds private profiles
* updates docs
* adds federated comments
* adds trail and comments actvitiypub routes
* adds mentions to editor
* adds mentions to trails, comments, summit logs
* updates theme
* updates theme
* update docs
* update docs
* updates docs
* fixes various frontend problems
* fixes activitypub follows api
* updates docs
* updates docs
---------
Co-authored-by: Christian Beutel <>
2025-06-21 10:09:22 +02:00
Christian Beutel
40da416083
v0.16.5
2025-04-26 19:56:00 +02:00
Christian Beutel
dcdb82f5de
v0.16.4
2025-04-18 13:18:37 +02:00
Christian Beutel
9529c6b0d2
v0.16.3
2025-04-15 20:42:07 +02:00
Christian Beutel
5d4a676a38
Adds mail settings envs
2025-04-15 20:24:18 +02:00
Christian Beutel
108d4775bd
v0.16.2
2025-04-11 16:42:46 +02:00
Christian Beutel
61a6ca6b23
updates oauth docs
2025-04-11 16:18:23 +02:00