{"id":30253185,"url":"https://github.com/notaussie/bustinel","last_synced_at":"2025-08-15T12:44:26.327Z","repository":{"id":307517521,"uuid":"1029785147","full_name":"NotAussie/bustinel","owner":"NotAussie","description":"A tool for generating historical vehicle trip data for analysation and statistical purposes.","archived":false,"fork":false,"pushed_at":"2025-07-31T15:50:41.000Z","size":25,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-07-31T19:14:49.637Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/NotAussie.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-31T15:10:38.000Z","updated_at":"2025-07-31T15:50:44.000Z","dependencies_parsed_at":"2025-07-31T19:27:23.668Z","dependency_job_id":null,"html_url":"https://github.com/NotAussie/bustinel","commit_stats":null,"previous_names":["notaussie/bustinel"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/NotAussie/bustinel","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NotAussie%2Fbustinel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NotAussie%2Fbustinel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NotAussie%2Fbustinel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NotAussie%2Fbustinel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/NotAussie","download_url":"https://codeload.github.com/NotAussie/bustinel/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/NotAussie%2Fbustinel/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270572646,"owners_count":24608830,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-15T02:00:12.559Z","response_time":110,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-08-15T12:44:24.454Z","updated_at":"2025-08-15T12:44:26.256Z","avatar_url":"https://github.com/NotAussie.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Adelaide Metro bus #1121 taken by NotAussie](https://github.com/user-attachments/assets/093e6940-72eb-40f7-ac73-30b50a46e0bc)](https://github.com/notaussie)\n\n# Bustinel\n\nA tool for generating historical vehicle trip data for analysation and statistical purposes.\n\n## Why create this?\n\nThe story that lead to Bustinel's creation is a weird and kinda goofy one. I'm a public transport photographer and enthusiast, my local transit has some pretty cool experimental vehicles and I've had them on my photography bucket list for awhile, annoyingly they aren't in service often and when they are they only service a select few routes, so I thought making an entire framework for generating historical trips would be a fun way to solve this problem. _(Yes I know I could of rang my agency, but what's the fun in that?)_\n\n## Usage\n\nI recommend hosting Bustinel via docker compose, especially if you're using multiple sources _(for example if you wanted to track multiple agencies or multiple agency sources)_. To use it with Docker compose you'll need a `compose.yml` file, we provide an example of what that'll look like inside `example.compose.yml`, I recommend using that as a base.\n\nAn example `compose.yml` file would look like this:\n\n```yaml\nservices:\n  analytics:\n    image: ghcr.io/notaussie/bustinel:latest\n    depends_on:\n      - mongo\n    environment:\n      MONGODB_URL: mongodb://mongo:27017/bustinel\n      GOOGLE_TRANSIT_FILE_URL: https://gtfs.adelaidemetro.com.au/v1/static/latest/google_transit.zip\n      FEED_URL: https://gtfs.adelaidemetro.com.au/v1/realtime/vehicle_positions\n      CONTACT_EMAIL: username@example.com\n    restart: always\n\n  mongo:\n    image: mongo:latest\n    restart: always\n    volumes:\n      - bustinel-mongo:/data/db\n\nvolumes:\n  bustinel-mongo:\n```\n\n## Environment Variables\n\nConfigurable environment variables for Bustinel. Values labelled with required must be set before running the application, if these aren't provided the program will early exit with an error.\n\n| Variable Name               | Description                                                                             | Default Value                                           | Required |\n| --------------------------- | --------------------------------------------------------------------------------------- | ------------------------------------------------------- | -------- |\n| `MONGODB_URL`               | The MongoDB connection URL for the Bustinel database.                                   | N/A                                                     | True     |\n| `FEED_URL`                  | The URL to the GTFS‑RT feed for vehicle positions.                                      | N/A                                                     | True     |\n| `GOOGLE_TRANSIT_FILE_URL`   | The URL to the Google Transit feed file.                                                | N/A                                                     | True     |\n| `FEED_UPDATE_INTERVAL`      | The interval in seconds to update the feed data.                                        | 60                                                      | False    |\n| `CONTACT_EMAIL`             | The host's contact email address for complaints or inquiries.                           | N/A                                                     | True     |\n| `LOG_LEVEL`                 | The logging level for the application.                                                  | info                                                    | False    |\n| `ENVIRONMENT`               | The environment the application is running in (e.g., production, development, testing). | production                                              | False    |\n| `ACCEPT`                    | The Accept header to be used for making requests to GTFS-RT feeds.                      | `application/x-google-protobuf, application/x-protobuf` | False    |\n| `SENTRY_DSN`                | The Sentry DSN for error reporting. (Recommended)                                       | N/A                                                     | False    |\n| `SENTRY_TRACES_SAMPLE_RATE` | The sample rate for traces sent to Sentry.                                              | 0.5                                                     | False    |\n\n## HTTP Headers\n\nEnforced HTTP headers for requests made by Bustinel.\n\n| Header Name  | Description                                                             |\n| ------------ | ----------------------------------------------------------------------- |\n| `User-Agent` | Bustinel \u003chttps://github.com/notaussie/bustinel\u003e; contact: _Your email_ |\n| `From`       | _Your email_                                                            |\n| `Accept`     | application/x-google-protobuf, application/x-protobuf                   |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnotaussie%2Fbustinel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnotaussie%2Fbustinel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnotaussie%2Fbustinel/lists"}