Primeros pasos
Todo corre en local con datos reales. La primera ciudad configurada es Bogotá; el mismo flujo sirve para cualquier ciudad con GTFS (ver Añadir una ciudad).
Requisitos
Sección titulada «Requisitos»- Docker (para PostgreSQL/PostGIS).
- Python ≥ 3.12 y un JDK ≥ 21 (OpenTripPlanner corre nativo; la VM de Docker Desktop suele ser pequeña para construir el grafo de una ciudad grande).
- Node ≥ 20 con
pnpmpara la web; Flutter ≥ 3.41 para el móvil. - Unos 500 MB de descargas la primera vez (GTFS + extracto de OpenStreetMap).
1. Backend y enrutador
Sección titulada «1. Backend y enrutador»git clone https://github.com/jeronimotech/opentransit-api && cd opentransit-apimake venv # entorno virtual con dependenciasmake up # Postgres/PostGIS en localhost:5435make graph CITY=bogota # descarga GTFS + OSM, recorta al bbox y construye el grafo (~2 min)make otp # sirve OpenTripPlanner en http://localhost:8080cp .env.example .env # define ADMIN_TOKEN (cualquier cadena larga y aleatoria)make dev # API en http://localhost:8001; el primer arranque ingiere el GTFS (~1 min)Comprueba que responde:
curl localhost:8001/healthzcurl "localhost:8001/v1/cities/bogota/plan?fromLat=4.7546&fromLon=-74.0459&toLat=4.5978&toLon=-74.1616" | jq '.itineraries[0]'open http://localhost:8001/docs # OpenAPI interactivogit clone https://github.com/jeronimotech/opentransit-web && cd opentransit-webpnpm install && cp .env.example .env.localpnpm dev # contra la API local (NEXT_PUBLIC_API_URL=http://localhost:8001)pnpm dev:mock # sin backend, con datos de ejemploLa app queda en http://localhost:3000/bogota; el panel de operadores en /admin.
3. Móvil
Sección titulada «3. Móvil»git clone https://github.com/jeronimotech/opentransit-mobile && cd opentransit-mobileflutter pub get && flutter gen-l10nflutter run --dart-define=API_URL=http://localhost:8001 # simulador iOSflutter run --dart-define=API_URL=http://10.0.2.2:8001 # emulador Androidflutter run --dart-define=MOCK=true # sin backendPuertos por defecto
Sección titulada «Puertos por defecto»| Servicio | Puerto |
|---|---|
| API | 8001 |
| OpenTripPlanner | 8080 |
| PostgreSQL | 5435 |
| Web | 3000 |
Qué hacer después
Sección titulada «Qué hacer después»- Cambia tarifas, enlaces o el modo mantenimiento desde el panel de administración sin redesplegar.
- Revisa las notas de calidad del dato antes de confiar en horarios, tarifas o accesibilidad.