A project of the non-profit Open Transit Software Foundation!
The OneBusAway application suite's primary function is to share real-time public transit information with riders across a variety of interfaces:
- OneBusAway Web - A variety of web interfaces to transit data
- A standard web interface to transit data, including maps and stop pages with real-time info
- Sign-mode - Same information as the standard web interface, but in a large format for large displays (e.g., large televisions)
- A mobile-optimized version of the web interface for smart phone mobile browsers
- A text-only version of the web interface for more-basic mobile browsers
- OneBusAway REST API - A RESTful web-service that can be used to quickly write applications built on top of transit data. This API powers the following apps:
- OneBusAway GTFS-realtime export - A bulk export of all trip updates (predictions), vehicle positions, and service alerts for a transit system in the GTFS-realtime format.
- OneBusAway Phone - A Interactive Voice Response (IVR) phone application for accessing real-time transit information
- OneBusAway SMS - An SMS service for accessing real-time transit information
- OneBusAway Watchdog - A module hosting webservices for monitoring realtime data
Watch the YouTube video for more information.
Getting Started
Here are the high-level steps you'll need to take to launch the OneBusAway mobile apps in your area:
- Get your schedule transit data in the GTFS format
- Have an AVL system that produces arrival estimates (Note: we're working removing this requirement - contact us if you're interested. Alternatively, you may be able to use other open-source projects, such as The Transit Clock, to go directly from raw vehicle locations to arrival times that are shared via GTFS-realtime and SIRI - this would replace Steps 2 and 3.)
- Implement a GTFS-realtime or SIRI real-time data feed (We also support other formats)
- Set up a OneBusAway server
- Do some quality-control testing of arrival times
- Request to be added as a OneBusAway region
See the multi-region page for more details.
Setting up a OneBusAway server
There are two options for setting up your own OneBusAway instance:
Development Instructions with Docker
docker compose up builder
docker compose exec builder bash # in another shell, for now
./build.sh --help # acquaint yourself with the build.sh options
./build.sh --clean --check-updates --test
# now you have built all of the OBA artifacts:
ls build/org/onebusaway/onebusaway-application-modules
# Download GTFS data and build an OBA transit data bundle from it
docker compose up bundle_builder
# verify that the bundle built as expected
ls docker_app_server/bundle
# Start up the app server
docker compose up appserver
# enter the app server
docker compose exec appserver bash
# run the copy_resources.sh script (it's on your path)
# to copy the necessary WAR files into /usr/local/tomcat
copy_resources.sh
# wait a few seconds for everything to spin up...
Finally, verify that everything works as expected!
Status
Deployments
OneBusAway is used in a number of places:
Check out the full list on the OneBusAway Deployments page. Check out the main project page at http://onebusaway.org.
Download
Developer Information
Contact Info
There are lots of ways to get in touch with us.