{"id":13455894,"url":"https://github.com/botlabs-gg/yagpdb","last_synced_at":"2026-01-05T17:16:26.377Z","repository":{"id":37004068,"uuid":"63559077","full_name":"botlabs-gg/yagpdb","owner":"botlabs-gg","description":"Yet another general purpose discord bot","archived":false,"fork":false,"pushed_at":"2025-05-09T08:35:49.000Z","size":24371,"stargazers_count":1300,"open_issues_count":152,"forks_count":956,"subscribers_count":34,"default_branch":"master","last_synced_at":"2025-05-09T09:34:22.223Z","etag":null,"topics":["bot","discord","discord-bot","discordgo"],"latest_commit_sha":null,"homepage":"https://yagpdb.xyz","language":"Go","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/botlabs-gg.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":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2016-07-18T00:40:33.000Z","updated_at":"2025-05-08T17:14:48.000Z","dependencies_parsed_at":"2023-01-17T13:01:45.956Z","dependency_job_id":"f6ddf1d5-dffa-4b79-a6ab-aa5931febbd9","html_url":"https://github.com/botlabs-gg/yagpdb","commit_stats":{"total_commits":3909,"total_committers":83,"mean_commits":"47.096385542168676","dds":0.3169608595548734,"last_synced_commit":"447a52732f5b901314397fe9079290e59d9f8d45"},"previous_names":["jonas747/yagpdb"],"tags_count":308,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/botlabs-gg%2Fyagpdb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/botlabs-gg%2Fyagpdb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/botlabs-gg%2Fyagpdb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/botlabs-gg%2Fyagpdb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/botlabs-gg","download_url":"https://codeload.github.com/botlabs-gg/yagpdb/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253820454,"owners_count":21969522,"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","discord-bot","discordgo"],"created_at":"2024-07-31T08:01:13.030Z","updated_at":"2026-01-05T17:16:26.371Z","avatar_url":"https://github.com/botlabs-gg.png","language":"Go","funding_links":[],"categories":["Go","Bots"],"sub_categories":[],"readme":"# YAGPDB - Yet Another General Purpose Discord Bot\n\nYAGPDB is a multifunctional, modular Discord bot. It is modular in the sense that for most things plugins exist -- However, some plugins may depend on other plugins.\n\n## Plugins\n\n* YouTube Feed\n* Stream Announcements\n* Server Stats\n* Soundboard\n* Reputation\n* Reminders\n* Reddit Feed\n* Notifications\n* Moderation\n* Logs\n* Custom Commands\n* And More!\n\n## Useful Links\n\n* [Homepage](https://yagpdb.xyz)\n* [Support Server](https://discord.gg/4udtcA5)\n* [Help Center](https://help.yagpdb.xyz)\n\n## Selfhosting\n\nThere are two ways of selfhosting this bot: [standalone](#Hosting-Standalone), or [dockerized](#Hosting-Dockerized).\n\n### General Bot Setup\n\nDirections on creating an app and getting credentials may be found\n[here](https://github.com/reactiflux/discord-irc/wiki/Creating-a-discord-bot-\u0026-getting-a-token).\n\nYAGPDB does not require you to authorize the bot: all of that will be handled\nvia the Control Panel.\n\nIn addition, you will need to add the following urls to the bot's \"REDIRECT URI(S)\" configuration:\n\n* \u003chttps://YourHostNameHere/confirm_login\u003e\n* \u003chttps://YourHostNameHere/manage\u003e\n\n### HTTPS Options\n\nYAGPDB supports two main HTTPS setups:\n\n#### 1. **YAGPDB Handles HTTPS (Built-in)**\n\nLet YAGPDB serve HTTPS directly (no reverse proxy):\n\n- Just run with https (Default is true; you may specify this flag explicitly if desired):\n  ```bash\n  ./yagpdb --https=true\n  ```\n- All HTTPS traffic is handled by YAGPDB.\n\n#### 2. **Reverse Proxy Handles HTTPS (Recommended for Production)**\n\nPut YAGPDB behind a reverse proxy (like Nginx, Caddy, etc.):\n\n- Disable YAGPDB's built-in HTTPS server:\n  - `--https=false`: YAGPDB uses plain HTTP internally.\n  - `--extHttps=true`: Tell YAGPDB that HTTPS is handled externally.\n  ```bash\n  ./yagpdb --https=false --extHttps=true\n  ```\n- Your proxy handles HTTPS, YAGPDB talks HTTP.\n\n### Hosting Dockerized\n\nIf you have docker-compose installed, that might be the fastest route of getting the bot up and running:\n\n```shell\ngit clone https://github.com/botlabs-gg/yagpdb\ncp yagpdb/yagpdb_docker/{app.example.env,app.env}\ncp yagpdb/yagpdb_docker/{db.example.env,db.env}\n```\n\nEdit both env files accordingly. Make sure ports 80 and 443 are accessible on your network and that you have a proper image in `docker-compose.yml`:\n\n```shell\ndocker-compose -f yagpdb/yagpdb_docker/docker-compose.yml up\n```\n\nAlternatively, you can run the bot behind a proxy:\n\n```shell\ndocker network create proxy-tier\ndocker-compose -p proxy yagpdb/yagpdb_docker/docker-compose.proxy.yml up\ndocker-compose -f yagpdb/yagpdb_docker/docker-compose.proxied.yml up\n```\n\nDuring development, use the `docker-compose.dev.yml` file:\n\n```shell\ndocker-compose -f yagpdb/yagpdb_docker/docker-compose.dev.yml up\n```\n\n### Hosting Standalone\n\n#### Requirements\n\n* Golang 1.23 or above\n* PostgreSQL 9.6 or later\n* Redis version 5.x or later\n\n#### Setting Up\n\nConfigure Redis and Postgres with your desired settings.\n\nIn postgres, create a new user `yagpdb` and database `yagpdb` and grant that user access to that database.\n\nSet up the environment variables with the credentials from the [general setup](#General-Bot-Setup). See the [sample env file](cmd/yagpdb/sampleenvfile) for a list of all enviroment variables.\n\nAfterwards, run the build script located at `/cmd/yagpdb/build.sh` and  start the bot using `./yagpdb`:\n\n```shell\ngit clone https://github.com/botlabs-gg/yagpdb\ncd yagpdb/cmd/yagpdb\nsh build.sh\n./yagpdb -all\n```\n\nSee `./yagpdb -help` for all usable run flags. The webserver listens by default on ports 5000 (HTTP) and 5001 (HTTPS).\n\n## Databases\n\nYAGPDB uses Redis for light data and caching, and postgresql for most configurations and heavy data, such as logs.\n\n### Updating\n\nUpdating with v1 and higher should migrate schemas automatically, but you should always make backups.\n\nBreaking changes can be found in breaking_changes.md, which should always be consulted before updating.\n\n## Contributing\n\nPlease view the [contributing guidelines](CONTRIBUTING.md) before submitting any contributions.\n\nSee bot/plugin for info about bot plugins, web/plugin for web plugins and feeds/plugin for feeds if you wanna make a new fully fledged plugin.\n\nExpect web, bot and feed instances to be run separately.\n\nFor basic utility/fun commands, you can just jam them in stdcommands. Use the existing commands there as an example of how to add one.\n\nPlease check CONTRIBUTING.md for further details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbotlabs-gg%2Fyagpdb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbotlabs-gg%2Fyagpdb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbotlabs-gg%2Fyagpdb/lists"}