Configuration

Glove is configured via config.yaml at the repository root. All settings have sensible defaults.

Server

server:
  bind: "0.0.0.0"
  port: 8080
  workers: 1                    # 0 = auto (one per logical CPU)
  log_level: "info"             # trace, debug, info, warn, error
  shutdown_timeout: 30          # seconds — graceful shutdown for in-flight requests
  api_key: ""                   # Required for POST /api/gtfs/reload. Empty = endpoint disabled
  cors_origins: []              # Allowed origins. ["*"] = permissive (not for production)
  rate_limit: 20                # Max requests/sec per IP. 0 = disabled
SettingDescriptionDefault
bindNetwork interface to listen on0.0.0.0
portHTTP port8080
workersActix worker threads. 0 = one per CPU core1
log_levelMinimum log levelinfo
shutdown_timeoutSeconds to wait for in-flight requests on shutdown30
api_keyAPI key for the reload endpoint. Empty disables the endpoint""
cors_originsList of allowed CORS origins. ["*"] allows all[]
rate_limitMaximum requests per second per IP address20

Tip

Override the log level at runtime with RUST_LOG=debug cargo run.

Data Sources

data:
  dir: "data"
  gtfs_url: "https://data.iledefrance-mobilites.fr/..."
  osm_url: "https://download.geofabrik.de/europe/france/ile-de-france-latest.osm.pbf"
  ban_url: "https://adresse.data.gouv.fr/data/ban/adresses/latest/csv"
  departments: [75, 77, 78, 91, 92, 93, 94, 95]
SettingDescription
dirBase data directory. Sub-directories gtfs/, osm/, raptor/, ban/ are created automatically
gtfs_urlURL to download the GTFS zip archive
osm_urlURL to download the OpenStreetMap PBF file (for Valhalla)
ban_urlBase URL for BAN address CSV files
departmentsFrench department codes to download BAN data for

Routing

routing:
  max_journeys: 5
  max_transfers: 5
  default_transfer_time: 120    # seconds
  max_duration: 10800           # 3 hours in seconds
  max_nearest_stop_distance: 1500  # meters (~20 min walk at 5 km/h)
SettingDescriptionDefault
max_journeysMaximum number of alternative journeys to return5
max_transfersMaximum number of transfers in a journey5
default_transfer_timeDefault walking time between stops (seconds)120
max_durationMaximum total journey duration (seconds)10800 (3h)
max_nearest_stop_distanceMaximum distance to nearest stops (meters)1500

Valhalla

valhalla:
  host: "localhost"
  port: 8002

The Valhalla routing engine is used for walking, cycling, and driving directions. It runs as a separate Docker container. When OSM data includes indoor information, Valhalla provides indoor maneuvers (elevator, stairs, escalator, enter/exit building) in transfer and walking sections.

Map

map:
  zoom: 11
  center_lat: 48.8566
  center_lon: 2.3522
  bounds_sw_lat: 48.1
  bounds_sw_lon: 1.4
  bounds_ne_lat: 49.3
  bounds_ne_lon: 3.6
  tile_url: "https://{s}.basemaps.cartocdn.com/rastertiles/voyager/{z}/{x}/{y}{r}.png"
  tile_cache_duration: 864000    # seconds (10 days)

These settings control the initial map view, geographic bounds, and the tile caching proxy.

SettingDescriptionDefault
zoomDefault map zoom level11
center_lat / center_lonDefault map center48.8566 / 2.3522 (Paris)
bounds_sw_* / bounds_ne_*Geographic bounds (SW and NE corners)Île-de-France
tile_urlUpstream tile server URL template. Placeholders: {s} (subdomain), {z}, {x}, {y}, {r} (retina)CARTO Voyager
tile_cache_durationBrowser cache duration for tiles (seconds)864000 (10 days)

Tiles are fetched from the upstream server on first request and cached to data/tiles/ on disk. Subsequent requests are served from cache.

Bike Profiles

bike:
  city:
    cycling_speed: 16.0         # km/h
    use_roads: 0.2              # prefer bike lanes
    use_hills: 0.3              # avoid climbs
    bicycle_type: "City"
  ebike:
    cycling_speed: 21.0
    use_roads: 0.4
    use_hills: 0.8              # climbs are easy with motor
    bicycle_type: "Hybrid"
  road:
    cycling_speed: 25.0
    use_roads: 0.6
    use_hills: 0.5
    bicycle_type: "Road"

Three bike profiles are available, each with independent Valhalla routing parameters:

ProfileSpeedUse Case
City16 km/hVelib' / city bikes, avoids hills and busy roads
E-bike21 km/hElectric bikes (VAE), handles hills easily
Road25 km/hRoad bikes, prefers smooth tarmac

Wheelchair Accessibility

wheelchair:
  step_penalty: 999999          # effectively avoid stairs
  max_grade: 6                  # 6% slope max (wheelchair norms)
  use_hills: 0.0                # avoid hills entirely
  elevator_penalty: 0           # prefer elevators
  walking_speed: 3.5            # km/h — typical wheelchair speed

These settings are used when the wheelchair=true parameter is passed to journey endpoints. They configure Valhalla's pedestrian costing model for wheelchair-accessible routing.

SettingDescriptionDefault
step_penaltyPenalty for stairs. Very high value effectively avoids them999999
max_gradeMaximum road grade in percent (6% is the standard wheelchair norm)6
use_hillsHill avoidance factor (0.0 = strongly avoid, 1.0 = no preference)0.0
elevator_penaltyPenalty for elevators (0 = prefer them)0
walking_speedWheelchair speed in km/h3.5

Info

When wheelchair mode is active, the walking speed slider in the frontend is locked to the configured wheelchair speed (3.5 km/h), and bike/car modes are hidden.