No description
  • Go 83.1%
  • Nix 7%
  • Shell 6.7%
  • Nushell 1.7%
  • Java 1.5%
Find a file
2026-03-01 15:50:57 +00:00
.github/workflows Remove create-manifests ci step 2026-02-12 19:56:38 -05:00
go-server Fix external occupancy predictions parsing + add some testing 2026-03-01 10:50:08 -05:00
otp chore(otp): update GTFS hashes 2026-03-01 15:50:57 +00:00
transitclock All: Replace tunnel name with cloudflared in docker compose 2025-12-19 11:27:02 -05:00
.gitignore Add direnv, devenv, and result folders to gitignore 2025-12-03 12:14:56 -05:00
LICENSE Update LICENSE to AGPL 2025-02-03 03:18:30 -05:00
README.md Update README to clarify backend monorepo description 2026-02-14 06:59:37 -08:00

bear-trak-backend

This is the backend monorepo for BearTrak!

It consists of:

  • go-server: The primary backend. Almost all requests go to this server.
  • otp: Configured instance of OpenTripPlanner. Serves directions requests only.
  • transitclock: Extended TheTransitClock, designed to consume responses from go-server.
    • Required to support otp for schools without available GTFS-Realtime files (umich).

Each service is packaged with nix, allowing uniform commands to build development shells and output builds & Docker containers:

nix develop ./<folder> --no-pure-eval # enter dev shell
nix build ./<folder>#<output> # build named output

Everything is individually deployed with Komodo on mostly Oracle infrastructure.

How to deploy

Each piece of the backend has its own nix flake and is built into its own image. See each subdirectory for more information.

Pushes to the main branch trigger a GitHub action that builds & pushes both images. Komodo pulls these images and updates automatically.