Because it runs compose... get it? And it's for testing. Jeez these repo names are getting bad
Find a file
2026-03-12 03:58:51 +01:00
dev fix: support mqtt password file instead of http auth 2026-03-12 03:58:51 +01:00
.cz.toml refactor: move all docker compose here 2026-03-10 01:28:31 +01:00
.env.example refactor: rename api to cafe-car 2026-03-10 14:39:09 +01:00
.gitignore refactor: move all docker compose here 2026-03-10 01:28:31 +01:00
.pre-commit-config.yaml build: default pre-commit 2026-03-10 15:03:00 +01:00
CHANGELOG.md refactor: move all docker compose here 2026-03-10 01:28:31 +01:00
CLAUDE.md refactor: rename api to cafe-car 2026-03-10 14:39:09 +01:00
docker-compose.yml fix: support mqtt password file instead of http auth 2026-03-12 03:58:51 +01:00
LICENSE.txt docs: add agpl-3 2026-03-10 14:44:46 +01:00
README.md docs: update port mapping 2026-03-10 02:53:10 +01:00

music-student

Local development environment for the GTFS-RT project. Runs all services with a single command.

Quickstart

  1. Clone all repos as siblings:

    git clone <redis-gtfs-rt-api>
    git clone <schedule-foamer>
    git clone <trip-updogger>
    git clone <vehicle-poser>
    git clone <music-student>
    
  2. Copy the example env file:

    cd music-student
    cp .env.example .env
    
  3. Start everything:

    docker compose up --build
    

Port Map

Port Service
4180 Admin app via oauth2-proxy
8000 GTFS-RT public API
1883 MQTT broker (NanoMQ)
5432 PostgreSQL
6379 Redis
5555 Flower (Celery UI, no auth)
8001 Admin app (direct, no auth)
5556 Dex OIDC provider

Dev Credentials

Admin login (via http://localhost:4180):

  • alice@local / password
  • bob@local / password

PostgreSQL: postgres / mysecretpassword

MQTT: any Driver username/password configured in the admin app.