The missing operating system between mobility data and political decisions.
OpenMobility OS is not another consumer routing app. It is a decision, prioritization, and transparency platform that turns scattered open data into traceable, defensible choices — so the case for safer streets and better mobility can be made in the open, in any city, in any country.
What it is
- A prioritization engine for mobility measures
- A transparent, auditable scoring layer
- A public window into how decisions are made
What it is not
- A turn-by-turn navigation app
- A black-box recommendation engine
- Locked to one city, vendor, or country
Betriebsmodi
One codebase, three ways to run it — pick the scope that matches your installation.
The landing page lists every workspace — ideal for showcases and open catalogues.
One municipality; the landing page redirects straight into that workspace.
A county, region, or state — one installation hosts many workspaces side by side.
Self-hosting in under a minute
No proprietary SaaS, no hidden dependencies. Clone it, set two secrets, and bring the whole stack up with Docker Compose.
git clone https://github.com/richardkfm/openmobility-os.git
cd openmobility-os
cp .env.example .env
# edit .env — set SECRET_KEY and ADMIN_TOKEN
docker compose up --build
Every change keeps this command working end-to-end — self-hosting first is a project principle, not an afterthought.
Principles we never violate
Six commitments that shape every line of code and every feature.
Stadt-unabhängig
No logic is wired to any one place. Leipzig is just a demo — every feature works for any municipality, anywhere.
API-first & connector-based
Data enters through pluggable adapters — CSV, GeoJSON, OpenStreetMap, GTFS and more. Core code never assumes a vendor.
Transparente Bewertung
No black boxes. Every score exposes its sources, inputs, formula, and uncertainty — traceable back to the raw data.
Self-hosting first
Docker Compose is the entry point. No mandatory SaaS — a municipality can always run the whole stack on its own hardware.
Open public layer
Read access is always free and login-less. Only write actions are protected, so the public can always check the work.
Internationalized from day one
Every user-facing string goes through translation. The platform speaks the local language, not just English.