{"id":15691675,"url":"https://github.com/grantbirki/errbot","last_synced_at":"2025-03-11T15:33:04.107Z","repository":{"id":37000771,"uuid":"394513744","full_name":"GrantBirki/errbot","owner":"GrantBirki","description":"A dockerized version of errbot for quickly deploying chatbots - it can do literally anything 🤖","archived":true,"fork":false,"pushed_at":"2023-08-02T01:18:13.000Z","size":20530,"stargazers_count":10,"open_issues_count":5,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-07T17:45:33.205Z","etag":null,"topics":["chatbot","chatbots","discord","docker","docker-compose","framework","python"],"latest_commit_sha":null,"homepage":"https://errbot.birki.io","language":"Python","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/GrantBirki.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-08-10T03:31:04.000Z","updated_at":"2025-02-28T07:06:17.000Z","dependencies_parsed_at":"2024-10-23T23:09:22.465Z","dependency_job_id":"83cb3e31-51f9-4fc6-870d-4b1ed004514d","html_url":"https://github.com/GrantBirki/errbot","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GrantBirki%2Ferrbot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GrantBirki%2Ferrbot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GrantBirki%2Ferrbot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GrantBirki%2Ferrbot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GrantBirki","download_url":"https://codeload.github.com/GrantBirki/errbot/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243059889,"owners_count":20229667,"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":["chatbot","chatbots","discord","docker","docker-compose","framework","python"],"created_at":"2024-10-03T18:22:59.904Z","updated_at":"2025-03-11T15:33:03.052Z","avatar_url":"https://github.com/GrantBirki.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch2 align=\"center\"\u003e\u003cimg src=\"docs/assets/errbot.png\" alt=\"errbot\" align=\"center\" width=\"200px\" /\u003e\u003c/h1\u003e\n\n\u003c!--\n\u003cdiv\u003eIcons made by \u003ca href=\"https://www.freepik.com\" title=\"Freepik\"\u003eFreepik\u003c/a\u003e from \u003ca href=\"https://www.flaticon.com/\" title=\"Flaticon\"\u003ewww.flaticon.com\u003c/a\u003e\u003c/div\u003e\n--\u003e\n\n\u003ch2 align=\"center\"\u003eerrbot\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\n  A chatbot that is easy to deploy and build upon - It can do literally anything\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/GrantBirki/errbot/actions/workflows/ci.yml\"\u003e\u003cimg src=\"https://github.com/GrantBirki/errbot/actions/workflows/ci.yml/badge.svg?event=push\" alt=\"ci\" height=\"18\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/GrantBirki/errbot/actions/workflows/review.yml\"\u003e\u003cimg src=\"https://github.com/GrantBirki/errbot/actions/workflows/review.yml/badge.svg?event=push\" alt=\"review\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/GrantBirki/errbot/actions/workflows/tfsec.yml\"\u003e\u003cimg src=\"https://github.com/GrantBirki/errbot/actions/workflows/tfsec.yml/badge.svg?event=push\" alt=\"tfsec\"/\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/assets/code-style-black.svg\" alt=\"code style black\"/\u003e\n  \u003cimg src=\"docs/assets/language-python-blue.svg\" alt=\"language python\"/\u003e\n  \u003cimg src=\"docs/assets/framework-errbot-blue.svg\" alt=\"framework errbot\"/\u003e\n  \u003cimg src=\"docs/assets/backend-discord-blue.svg\" alt=\"backend discord\"/\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/assets/terraform.svg\" alt=\"terraform\"/\u003e\n  \u003cimg src=\"docs/assets/aws.svg\" alt=\"aws\"/\u003e\n  \u003cimg src=\"docs/assets/azure.svg\" alt=\"azure\"/\u003e\n\u003c/p\u003e\n\n\u003chr\u003e\n\n## Bot Invite Link 🔗\n\n[**Click here**](https://discord.com/api/oauth2/authorize?client_id=943402285680189511\u0026permissions=36734976\u0026scope=bot) to invite errbot to your Discord server!\n\n\u003e ⚠️ Note: The public version of errbot is no longer available. If you wish to use errbot, you must self host it on your own\n\n## About 💡\n\nThis project uses [errbot](https://github.com/errbotio/errbot) (hence the name) and [Docker](https://www.docker.com/) to quickly launch your own chatbot in a container which is highly extensible! Use this dockerized version of Errbot to self-host your very own chatbot for popular services like Slack / Discord. Anything you can write Python 🐍 code to do, you can do with Errbot!\n\nThere are two ways you can use this bot:\n\n1. Invite the bot to your own Discord server - You can even contribute to this repo to add your own commands!\n2. Self-host the bot yourself to build upon it\n\n\u003e Check out [errbot-launchpad](https://github.com/GrantBirki/errbot-launchpad) if you don't want all the bells and whistles of this project.\n\n## Quickstart ⭐\n\nWant to get going quick? Run the following commands to bring up a CLI to interact with `errbot` locally:\n\n1. `git clone git@github.com:GrantBirki/errbot.git`\n2. `cd errbot`\n3. `make local`\n\nDidn't work quite right? Want to actually connect to a chat service? Check out the [docs](https://errbot.birki.io)\n\n\u003e Want to jump to the `Turbo Quickstart` for Discord guide? Check it out [here](https://errbot.birki.io/discord-turbo-quickstart/)\n\n## Demo 📹\n\nCheck out the video below to see a simple example of errbot in action!\n\nhttps://user-images.githubusercontent.com/23362539/154757128-82c3d546-2195-42ab-83ed-bcec63739f5e.mp4\n\n## Writing Plugins 🧰\n\nWriting and creating your own plugins is extremely easy! The snippet below shows you how to create your own chatbot function in just a few lines of code:\n\n```python\n\nfrom errbot import BotPlugin, botcmd\n\nclass Hello(BotPlugin):\n    \"\"\"Example 'Hello, world!' plugin for Errbot\"\"\"\n\n    @botcmd\n    def hello(self, msg, args):\n        \"\"\"Return the phrase \"Hello, world!\" in chat\"\"\"\n        return \"Hello, world!\"\n```\n\n\u003e Tip: Running `make command` from the root of this repo will give you some prompts to follow and will drop the above snippet in the correct folder\n\nThe result of the plugin code above is a new chatop command:\n\n![Hello, World Example](docs/assets/hello-world-example.png)\n\nTo learn more about plugin development, please check out the [development guide](https://errbot.birki.io/development)!\n\n### Deployment and Hosting 🚀\n\nIf you do not wish to use this public version of errbot, you can clone this repo and self-host it anywhere you wish (yay opensource!).\n\nThis project builds a Docker container which you can deploy anywhere to bring your chatbot to life. Below are just a few example of all the many places you could deploy your chatbot container:\n\n- Raspberry Pi\n- Your own desktop\n- Any virtual machine running Docker\n- Public cloud container instances: ECS / Cloud Run / ACI\n- Public cloud Kubernetes services: EKS / GKE / **AKS** ⭐\n\nYou may have noticed a \"star\" next to the **AKS** option. This is because it is the method I use to host my own instance of this project.\n\nI have committed all my Terraform files which create and deploy my Azure Kubernetes Service (AKS) to this repo for reference. You will even notice GitHub actions running my pipeline publically for deployments. Feel free to use what I do as a guide, adapt it, and even improve upon it!\n\n\u003e Note: It is entirely up to you how you build, host, and deploy your container. There are tons of options and everyone has their own preferences.\n\nFor more details on deployment, you can check out my notes in the [deployment guide](https://errbot.birki.io/deployment)\n\n### Community Discord 💬\n\nIf you need help with development, have a question, new feature, or just want to test out the bot, you can join the [errbot community Discord](https://discord.gg/qvnxqyuVpM)\n\n### Documentation 📖\n\nAll the documentation for this project is available at [errbot.birki.io](https://errbot.birki.io).\n\nYou can also view the docs by browsing to the `docs/` directory in the root of this repository.\n\n- [About](https://errbot.birki.io)\n- [Setup](https://errbot.birki.io/setup)\n- [Development](https://errbot.birki.io/development)\n- [Commands](https://errbot.birki.io/commands)\n\n---\n\n### FAQ 📚\n\nExpand the sections below to view commonly asked questions and their answers:\n\n\u003cdetails\u003e\n\u003csummary\u003eHow can I contribute to the bot?\u003c/summary\u003e\n\nCheck out the [contributing guide](CONTRIBUTING.md)!\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eHow can I add my own command to the bot?\u003c/summary\u003e\n\nCheck out the [contributing guide](CONTRIBUTING.md)!\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eHow can I get real time help?\u003c/summary\u003e\n\nCheck out the community Discord server link mentioned above in this document\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eIs this bot opensource?\u003c/summary\u003e\n\nYes! If you are reading this text that means you have landed on the errbot repo where all the code and project files are located.\n\nEverything and I mean _everything_ is open source about this bot.\n\nFeel free to open pull requests to make your own changes and they will be live anywhere and everywhere where the bot lives in Discord.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eHow do I self-host my own version of this bot?\u003c/summary\u003e\n\nThis is covered in the public documentation: [errbot.birki.io](https://errbot.birki.io)\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eHow is this bot different from errbotio/errbot?\u003c/summary\u003e\n\n[errbotio/errbot](https://github.com/errbotio/errbot) is a fantastic chatbot framework written in Python and it is the foundation of this project.\n\nThis project uses [errbotio/errbot](https://github.com/errbotio/errbot) for all of its chatbot related function calls, communicating with the Discord backend, and the majority of its configuration.\n\nThere are some differences between the two, however:\n\n- This project adapts some custom code that errbotio/errbot does not currently support. This includes things like custom logging, banning users/servers, locking certain commands, etc\n- The original framework of [errbotio/errbot](https://github.com/errbotio/errbot) has been Dockerized in this project\n\nI kept the same name for this project and provided many links to the original framework as inspiration\n\n\u003c/details\u003e\n\n---\n\n### Open Source 🌎\n\nThis project is **100% open source**, here is what that means...\n\nThis project is _slightly_ different from other open source projects in the sense that it is not just open source code but also infrastructure and configuration.\n\nErrbot is a public bot made for and by the community. It is not a commercial product and is not a paid service and as such, all of the code and project files are open source.\n\nHere are all the components of this project that are open source and can be edited by the public (hint: its basically everything):\n\n- Source code\n- CI/CD pipeline\n- Infrastructure (k8s)\n- Terraform IaC files\n- Documentation\n- Basic configuration\n\n\u003e The only thing that is **not** open source is what cannot be, such as secrets, credentials, and API keys that are stored as k8s secrets or used in the CI/CD pipeline\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrantbirki%2Ferrbot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgrantbirki%2Ferrbot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrantbirki%2Ferrbot/lists"}