Getting Started¶
GeoLibre Desktop is an npm workspaces monorepo. The main app lives in apps/geolibre-desktop and is built with Tauri, React, TypeScript, and MapLibre GL JS.
Prerequisites¶
- Node.js 18 or newer
- Rust toolchain for desktop builds
- Linux desktop build dependencies from the Tauri v2 prerequisites
Install¶
git clone https://github.com/opengeos/GeoLibre.git
cd GeoLibre
npm install
Bun users can run bun install. The root trustedDependencies list allows the known install scripts for core-js, @google/genai, and protobufjs.
Run the browser UI¶
npm run dev
Open http://localhost:5173. The map and browser vector import work in this mode for GeoJSON, GeoParquet, GeoPackage, and zipped Shapefiles. Use Add Vector Layer or drag files onto the app. Desktop filesystem dialogs require Tauri.
Run the desktop app¶
npm run tauri:dev
Build¶
npm run build
npm run tauri:build
Optional imagery credentials¶
The Street View plugin can use Google Street View and Mapillary imagery. Create apps/geolibre-desktop/.env.local and set one or both provider credentials:
VITE_GOOGLE_MAPS_API_KEY=your_google_maps_api_key
VITE_MAPILLARY_ACCESS_TOKEN=your_mapillary_access_token
For Google Street View, enable the Maps Embed API for the key in Google Cloud. For Mapillary, create an app in the Mapillary developer dashboard and use its client access token.
Restart npm run dev or npm run tauri:dev after changing environment variables.
Optional Python sidecar¶
The optional FastAPI sidecar is reserved for heavier processing workflows and is not required for the desktop UI.
cd backend/geolibre_server
python -m venv .venv
source .venv/bin/activate
pip install -e .
uvicorn geolibre_server.app.main:app --host 127.0.0.1 --port 8765