The OneBusAway Application Suite Join the OneBusAway chat
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:
- Wayfinder - A high-performance web application built with with the SvelteKit JavaScript web app framework
- 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 Watchdog - A module hosting webservices for monitoring realtime data
Watch the YouTube video for more information.
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.
There are two options for setting up your own OneBusAway instance:
- Configuration and Deployment Guide for v2.x - Designed to provide a comprehensive deployment method for users who wish to set up a simple OneBusAway application with minimal configurations.
- onebusaway-docker (Under development) - A community-supported Docker configuration for OneBusAway v2.x is currently under development.
docker compose up builder
docker compose exec builder bash # from another window or tab
./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!
- Check out the Tomcat Web App Manager at http://localhost:8080/manager/html (user/pass: admin/admin) to verify that your OBA WARs deployed correctly
- Check out the config.json API endpoint to verify that everything built correctly: http://localhost:8080/onebusaway-api-webapp/api/where/config.json?key=test
- Download pre-built JARs and WARs: https://developer.onebusaway.org/downloads
- Terraform/Open Tofu/Infrastructure as Code: https://github.com/onebusaway/onebusaway-deployment
- Docker
- Pre-built images: https://hub.docker.com/r/opentransitsoftwarefoundation/
- Instructions: https://github.com/onebusAway/onebusaway-docker
OneBusAway is used in a number of places:
- http://pugetsound.onebusaway.org - the original Seattle-area deployment that started it all
- http://tampa.onebusaway.org - a deployment in Tampa, Florida
- http://bustime.mta.info - real-time info for NYC MTA buses
Check out the full list on the OneBusAway Deployments page. Check out the main project page at http://onebusaway.org.
- Set up your environment, including GPG
- Run the command
mvn deploy -DskipTests
- Upload the Zip file at
./target/central-publishing/central-bundle.zip
to Maven Central's publishing page.- The Zip file is about 600MB in size. Be sure to have a fast, reliable connection.
Open questions and issues:
- I haven't figured out why I cannot get the
mvn deploy
command to upload to Maven Central automatically. - We need to automate deployment to Maven Central via GitHub Actions eventually, too.
- Installation Guide - How to set up your own OneBusAway instance using the code and Eclipse.
- Real-time Data Compatibility - Have a real-time transit data source (e.g., GTFS-realtime, SIRI)? Check out this page to see how you can make it work with OneBusAway.
- Troubleshooting tips - Having problems? Check out this guide.
- Mobile App Design Considerations - Want to create a mobile app for OneBusAway? Check out this page first.
- Multi-Region - OneBusAway is launching in new cities! Check out this page to learn how to launch the OneBusAway apps in your city.
- Contribution Guide - Information for developers on how to contribute code to OneBusAway, including general code conventions, how to submit patches, etc.
- Project Governance - Guide to OneBusAway project governance
- Maven Repository Info - Where the release and snapshot artifacts of OneBusAway libraries are found.
- Mailing lists:
There are lots of ways to get in touch with us.