BetterBahn is a web app for finding the best train journeys in Germany. While split ticketing is supported to help save money, it is rather the exception. The app will be extended with many more features in the future.
This project uses the db-vendo-client for accessing Deutsche Bahn ticketing data, which is licensed under the ISC License.
This is not an official repository or project of Deutsche Bahn AG. It is an independent project and not affiliated with or endorsed by Deutsche Bahn. To use this code or the db-vendo-client permission from the Deutsche Bahn AG is necessary.
-
Clone the repository and navigate to the folder
git clone https://github.com/l2xu/betterbahn.git cd betterbahn -
Install dependencies with
pnpm installYou can install pnpm via corepack (included with Node.js):
corepack enable corepack prepare pnpm@latest --activateor via npm:
npm install -g pnpm@latest-10
then run
pnpm installin the project directory. -
Start the development server with
pnpm run devand navigate tohttp://localhost:3000in your browser.
You can also build and run BetterBahn as a Docker container. A Dockerfile is included in the repository.
You can run the app with docker compose:
docker compose -f docker-compose/docker-compose.yaml --project-directory=./ up -d
For detailed installation instructions on different platforms:
This project is licensed under the AGPL-3.0-only. See the LICENSE file for details.
Join the Discord community to ask questions, share feedback, and connect with other users and contributors.
Want to contribute? Please read the Code of Conduct and see the Contributing Guide for details on how to get started.
BetterBahn searches for train journeys and can use split ticketing to help you find cheaper options—though this is usually the exception, not the rule. For a detailed explanation and demonstration, check out the YouTube video.
Created by Lukas Weihrauch.
If you like what I do, consider supporting me: ko-fi.com/lukasweihrauch
Made with ❤️ for train travelers in Germany.