Installation

Prerequisites

Requirements

Download Data

Glove needs GTFS transit data to operate. The download script reads config.yaml for data URLs.

# Download everything (GTFS + OSM + BAN addresses)
bin/download.sh all

# Or download individually
bin/download.sh gtfs     # GTFS transit schedules
bin/download.sh osm      # OpenStreetMap data (for Valhalla)
bin/download.sh ban      # BAN French addresses (for autocomplete)

Note

By default, this downloads data for Ile-de-France (Paris region). You can change the data URLs in config.yaml to use GTFS feeds from other regions.

Start Valhalla (Optional)

Valhalla provides walking, cycling, and driving directions. Without it, only public transit routing is available.

bin/valhalla.sh    # Pulls Docker image, builds tiles, starts on port 8002

This creates a Docker container named valhalla that builds routing tiles from the downloaded OSM data.

Run

Production Mode

Build and run are separated so restarts are instant:

bin/build.sh    # Build the release backend binary + portal SPA (run after code changes)
bin/start.sh    # Run only — auto-runs build.sh on the first launch if artifacts are missing

start.sh launches two separate processes: the Actix API on port 8080 and the frontend (vite preview) on port 3000. The frontend proxies /api requests to the backend, so you access the app at http://localhost:3000.

Note

vite preview is fine for local/self-hosted use, but it is not a hardened production web server. For real production, use the Docker setup (nginx-served portal) behind a TLS reverse proxy.

Development Mode

bin/start.sh --dev

This starts:

  • Backend: cargo-watch for automatic recompilation on Rust file changes
  • Frontend: Vite dev server with HMR on port 3000

Manual Start

# Terminal 1 — Backend
cargo run --release

# Terminal 2 — Frontend
cd portal && npm install && npm run dev

Access