{"id":23282106,"url":"https://github.com/bitpatty/race-announcer-bot","last_synced_at":"2025-04-06T14:15:13.785Z","repository":{"id":36976299,"uuid":"218407159","full_name":"BitPatty/race-announcer-bot","owner":"BitPatty","description":"A race announcer bot / notifier for racetime.gg / SpeedRunsLive / Discord","archived":false,"fork":false,"pushed_at":"2023-03-15T02:22:21.000Z","size":5940,"stargazers_count":3,"open_issues_count":8,"forks_count":1,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2025-04-02T23:42:38.695Z","etag":null,"topics":["bot","discord","racetime","speedrunslive"],"latest_commit_sha":null,"homepage":"https://github.com/BitPatty/RaceAnnouncerBot/wiki/Discord-User-Guide","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/BitPatty.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2019-10-30T00:06:24.000Z","updated_at":"2025-03-09T17:49:32.000Z","dependencies_parsed_at":"2024-12-02T08:17:20.560Z","dependency_job_id":null,"html_url":"https://github.com/BitPatty/race-announcer-bot","commit_stats":null,"previous_names":["bitpatty/race-announcer-bot"],"tags_count":27,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BitPatty%2Frace-announcer-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BitPatty%2Frace-announcer-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BitPatty%2Frace-announcer-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/BitPatty%2Frace-announcer-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/BitPatty","download_url":"https://codeload.github.com/BitPatty/race-announcer-bot/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247492544,"owners_count":20947545,"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","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":["bot","discord","racetime","speedrunslive"],"created_at":"2024-12-20T00:14:38.730Z","updated_at":"2025-04-06T14:15:13.755Z","avatar_url":"https://github.com/BitPatty.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Race Announcer Bot\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/BitPatty/RaceAnnouncerBot/raw/develop/docs/rab_preview.png\"\u003e\n\u003c/p\u003e\n\nA speedrun race announcer bot designed for multi-source and multi-destination usage. It currently supports the following data sources:\n\n- [RaceTimeGG](https://racetime.gg/)\n- [SpeedRunsLive](https://speedrunslive.com/)\n\nAs well as the following platforms for announcements:\n\n- [Discord](https://discord.com/) -\u003e User Guide: [Wiki](https://github.com/BitPatty/RaceAnnouncerBot/wiki/Discord-User-Guide)\n\n## Quickstart (Docker)\n\nTo use the prebuilt docker images head over to [Packages](https://github.com/BitPatty?tab=packages\u0026repo_name=RaceAnnouncerBot). The application can be scaled horizontally as long as they're connected to the same database/redis.\n\nDevelopment images with the latest updates can be pulled from the [race-announcer-bot-development](https://github.com/BitPatty/RaceAnnouncerBot/pkgs/container/race-announcer-bot-development) package.\n\n### Services\n\nThe bot follows a stateless design and and requires the following services to be available on your system:\n\n- A Maria or MySQL database\n- Redis \u003e= 5\n\n### Developer Setup\n\nThe repository is set up to utilize [VSCode Dev Containers](https://code.visualstudio.com/docs/remote/containers) as well as [GitHub Codespaces](https://github.com/features/codespaces). Set up your environment variables (see `/.devcontainer/workspace.env`) and build the dev container to start coding.\n\nYou can start the application in watch mode via `npm run dev`. If you change the database models, make sure to create a migration first via `npm run migration:generate`.\n\n### Environment variables\n\nThe following environment variables must be set in order to run the application:\n\n| Name              | Description                                                                                                                              |\n| ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |\n| DATABASE_TYPE     | `mariadb` or `mysql`, depending on your installation (defaults to `mysql`)                                                               |\n| DATABASE_USER     | The user used to connect to the database                                                                                                 |\n| DATABASE_PASSWORD | The password to the database                                                                                                             |\n| DATABASE_PORT     | The port of the database (defaults to `3306`)                                                                                            |\n| DATABASE_HOST     | The host address or host name of your database                                                                                           |\n| DATABASE_NAME     | The name of the database                                                                                                                 |\n| REDIS_HOST        | The host address of your Redis instance                                                                                                  |\n| REDIS_PORT        | The port on which Redis can be accessed                                                                                                  |\n| REDIS_PASSWORD    | The password of your Redis instance                                                                                                      |\n| DISCORD_BOT_TOKEN | The access token of your Discord bot (See [Discord Developer Portal](https://discord.com/developers/applications) in the `Bot` section)  |\n| DISCORD_CLIENT_ID | The client id of your Discord bot (See [Discord Developer Portal](https://discord.com/developers/applications) in the `OAuth 2` section) |\n\nThe following environment variables can be set optionally:\n\n| Name                         | Description                                                                          | Default                         |\n| ---------------------------- | ------------------------------------------------------------------------------------ | ------------------------------- |\n| RACETIME_BASE_URL            | The base url to racetime.gg                                                          | `https://racetime.gg`           |\n| SRL_BASE_URL                 | The base url to SpeedRunsLive                                                        | `https://speedrunslive.com`     |\n| SRL_API_BASE_URL             | The base url of the SpeedRunsLive API                                                | `https://api.speedrunslive.com` |\n| DISCORD_GLOBAL_ADMINS        | Comma-seperated list of user ids which should be considered bot admins on all guilds | -                               |\n| LOG_LEVEL                    | The max log level. Can be `info`, `debug` or `trace`                                 | `debug`                         |\n| ANNOUNCEMENT_SYNC_INTERVAL   | The interval for announcement updates in cron format                                 | `5/15 * * * * *`                |\n| GAME_SYNC_INTERVAL           | The interval for game database synchronization                                       | `0 0 * * * * `                  |\n| WORKER_HEALTH_CHECK_INTERVAL | The interval for worker health checks                                                | `*/10 * * * * *`                |\n| ELASTICSEARCH_URL            | The URL to your elasticsearch instance (if any) which logs will be streamed to       | -                               |\n| ELASTICSEARCH_INDEX          | The elasticsearch index name                                                         | `race-announcer-bot`            |\n| ELASTICSEARCH_USE_DATASTREAM | Set this to `true` if you use data streams for ES indexing                           | `false`                         |\n\n## License\n\n```\nCopyright 2022 Matteias Collet (https://github.com/BitPatty)\n\nThis project and all source files in this repository are\nlicensed under the GNU Affero General Public License v3\n(see LICENSE).\n```\n\n\u003c!--[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FBitPatty%2FRaceAnnouncerBot.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2FBitPatty%2FRaceAnnouncerBot?ref=badge_large)--\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitpatty%2Frace-announcer-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbitpatty%2Frace-announcer-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbitpatty%2Frace-announcer-bot/lists"}