{"id":49503496,"url":"https://github.com/dorasto/discordbot","last_synced_at":"2026-05-01T13:06:28.905Z","repository":{"id":249770976,"uuid":"832251642","full_name":"dorasto/discordbot","owner":"dorasto","description":"Discord bot for live twitch stream embeds","archived":false,"fork":false,"pushed_at":"2026-02-05T06:17:40.000Z","size":275,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-19T11:55:26.292Z","etag":null,"topics":["discord","discord-bot","discord-js","docker","docker-compose","docker-image","embed","twitch","typescript"],"latest_commit_sha":null,"homepage":"https://doras.to/posts/discordbot","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dorasto.png","metadata":{"files":{"readme":"README.md","changelog":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-07-22T16:17:35.000Z","updated_at":"2026-02-05T06:17:37.000Z","dependencies_parsed_at":"2025-07-26T16:06:42.400Z","dependency_job_id":"9bd7ff3a-d81d-44be-9b66-8d40e0caab29","html_url":"https://github.com/dorasto/discordbot","commit_stats":null,"previous_names":["dorasto/discordbot"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dorasto/discordbot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dorasto%2Fdiscordbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dorasto%2Fdiscordbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dorasto%2Fdiscordbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dorasto%2Fdiscordbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dorasto","download_url":"https://codeload.github.com/dorasto/discordbot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dorasto%2Fdiscordbot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32497899,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"online","status_checked_at":"2026-05-01T02:00:05.856Z","response_time":64,"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":["discord","discord-bot","discord-js","docker","docker-compose","docker-image","embed","twitch","typescript"],"created_at":"2026-05-01T13:06:28.834Z","updated_at":"2026-05-01T13:06:28.889Z","avatar_url":"https://github.com/dorasto.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Doras Discord Bot\n\n![Typescript][typescript] ![docker][docker] ![discordjs][discordjs]\n\nA simple livestream notification Discord bot, built by the team who brought you [Doras.to](https://doras.to).\n\n[![Contributors][contributors-shield]][contributors-url]\n[![Forks][forks-shield]][forks-url]\n[![Stargazers][stars-shield]][stars-url]\n[![Issues][issues-shield]][issues-url]\n[![GPL License][license-shield]][license-url]\n[![Deployments](https://github.com/dorasto/discordbot/actions/workflows/docker-build.yml/badge.svg)](https://github.com/dorasto/discordbot/actions/workflows/docker-build.yml)\n\n---\n\n## Table of Contents\n\n-   [About The Project](#about-the-project)\n    -   [Features](#features)\n    -   [Built With](#built-with)\n-   [Getting Started](#getting-started)\n    -   [Prerequisites](#prerequisites)\n    -   [Installation](#installation)\n-   [Usage](#usage)\n-   [Roadmap](#roadmap)\n-   [Contributing](#contributing)\n-   [License](#license)\n-   [Contact](#contact)\n\n---\n\n## About The Project\n\n![Screenshot](https://cdn.doras.to/doras/dorasbot/Screenshot%202024-07-23%20065736.png)\n\nDoras Discord Bot is an open source GPLv3 bot to post live stream notifications \u0026 VODs to your Discord servers. It's primarily designed for [Doras] users, but anyone can use it.\n\n### Features\n\n-   **Multi-platform support:** Twitch, Kick, YouTube Live, YouTube Latest, YouTube Shorts\n-   **Live notifications:** Get notified when your favorite streamers go live\n-   **VOD support:** Post VODs automatically\n-   **Easy setup:** Slash commands for adding/removing/listing notifications\n-   **Web dashboard \u0026 API**\n-   **Open source:** Host it yourself or contribute!\n\n---\n\n### Built With\n\n-   [TypeScript](https://www.typescriptlang.org/)\n-   [Docker](https://www.docker.com/)\n-   [discord.js](https://discord.js.org/)\n-   [Hono](https://hono.dev/) (API server)\n-   [Drizzle ORM](https://orm.drizzle.team/)\n-   [PostgreSQL](https://www.postgresql.org/)\n\n---\n\n## Getting Started\n\nFollow these steps to set up the project locally.\n\n### Prerequisites\n\n-   [pnpm](https://pnpm.io/)\n-   [Docker](https://www.docker.com/)\n-   Discord bot token ([guide](https://discord.com/developers/applications))\n-   Twitch API credentials (for event subscriptions)\n-   **Kick API credentials** (for Kick support):\n    -   You must set up a Kick application and get your credentials at [https://kick.com/settings/developer](https://kick.com/settings/developer)\n-   PostgreSQL database (Docker Compose included)\n\n\u003e **Note:** You only need to set `TWITCH_EVENTSUB` and `TWITCH_EVENTSUB_SECRET` if you have a lot of Twitch streams being checked. This enables Twitch EventSub for better scaling and efficiency.\n\n### Installation\n\n1. **Clone the repo**\n    ```sh\n    git clone https://github.com/dorasto/discordbot.git\n    cd discordbot\n    ```\n2. **Install dependencies**\n    ```sh\n    pnpm install\n    ```\n3. **Configure environment**\n    - Copy `.example.env` to `.env` and fill in the required fields.\n4. **Start the database**\n    ```sh\n    docker-compose up -d postgres\n    ```\n\n---\n\n## Dockerfile vs Dockerfile.Shard\n\nThis project provides two Dockerfiles:\n\n-   **Dockerfile**: Standard deployment. Use this for running a single instance of the bot (suitable for most servers and small/medium Discord bots).\n-   **Dockerfile.Shard**: For sharded deployments. Use this if you want to run the bot in sharding mode, which is recommended for large bots or when your bot is in many servers. Sharding is a Discord feature that splits your bot across multiple processes to handle more servers efficiently. See the [Discord.js Sharding Guide](https://discordjs.guide/sharding/) for more info.\n\nChoose the Dockerfile that matches your scale and needs. For most users, the regular `Dockerfile` is sufficient.\n\n---\n\n## Usage\n\n-   Use `/add` to add a notification for a streamer/channel\n-   Use `/remove` to remove a notification\n-   Use `/list` to see all configured notifications\n-   Use `/authenticate` to link your Doras account (if needed)\n-   Use `/uptime` to check bot status\n\n\u003e **Note:** There is no web UI for self-hosted users. If you use the hosted version at [doras.to](https://doras.to), you can access the web dashboard. For self-hosted, use Discord slash commands and the API only.\n\nYou can also use the web API (see `server.ts` for endpoints) for advanced integrations.\n\nSee [open issues](https://github.com/dorasto/discordbot/issues) for a full list of proposed features and known issues.\n\n---\n\n## Contributing\n\nContributions are what make the open source community amazing! Any contributions you make are **greatly appreciated**.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the branch (`git push origin feature/AmazingFeature`)\n5. Open a pull request\n\n---\n\n## License\n\nDistributed under the GPLv3 License. See [`LICENSE`](LICENSE) for more information.\n\n---\n\n## Contact\n\nThe Doras Team  \n[@doras_to](https://twitter.com/doras_to)  \nhi@doras.to\n\nProject Link: [https://github.com/dorasto/discordbot](https://github.com/dorasto/discordbot)\n\n---\n\n\u003c!-- MARKDOWN LINKS \u0026 IMAGES --\u003e\n\n[typescript]: https://img.shields.io/badge/typescript-3178c6?style=for-the-badge\u0026logo=typescript\u0026logoColor=white\n[docker]: https://img.shields.io/badge/docker-2496ec?style=for-the-badge\u0026logo=docker\u0026logoColor=white\n[discordjs]: https://img.shields.io/badge/discord.js-2496ec?style=for-the-badge\u0026logo=discord\u0026logoColor=white\n[Doras]: https://doras.to\n[contributors-shield]: https://img.shields.io/github/contributors/dorasto/discordbot.svg?style=for-the-badge\n[contributors-url]: https://github.com/dorasto/discordbot/graphs/contributors\n[forks-shield]: https://img.shields.io/github/forks/dorasto/discordbot.svg?style=for-the-badge\n[forks-url]: https://github.com/dorasto/discordbot/network/members\n[stars-shield]: https://img.shields.io/github/stars/dorasto/discordbot.svg?style=for-the-badge\n[stars-url]: https://github.com/dorasto/discordbot/stargazers\n[issues-shield]: https://img.shields.io/github/issues/dorasto/discordbot.svg?style=for-the-badge\n[issues-url]: https://github.com/dorasto/discordbot/issues\n[license-shield]: https://img.shields.io/github/license/dorasto/discordbot.svg?style=for-the-badge\n[license-url]: https://github.com/dorasto/discordbot/blob/main/LICENSE\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdorasto%2Fdiscordbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdorasto%2Fdiscordbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdorasto%2Fdiscordbot/lists"}