All Projects → botlabs-gg → yagpdb

botlabs-gg / yagpdb

Licence: MIT license
Yet another general purpose discord bot

Programming Languages

go
31211 projects - #10 most used programming language
CSS
56736 projects
HTML
75241 projects
javascript
184084 projects - #8 most used programming language
shell
77523 projects
lua
6591 projects

Projects that are alternatives of or similar to yagpdb

shinpuru
シンプル - Discord Bot with backups, moderation, karma ranking, a starboard, code execution, raid alerting, a web interface, twitch notifications and more!
Stars: ✭ 141 (-84.61%)
Mutual labels:  discordgo
discord-key-bot
A bot for discord that accepts, announces, and gives out keys
Stars: ✭ 14 (-98.47%)
Mutual labels:  discordgo
shards
Configurable, scalable and automatic sharding library for `discordgo`, done right ✔️
Stars: ✭ 18 (-98.03%)
Mutual labels:  discordgo
discord-downloader-go
A Discord bot program to download and otherwise handle files sent in Discord channels with extensive configuration. Can be used as a genuine Discord Bot or user account / self-bot
Stars: ✭ 169 (-81.55%)
Mutual labels:  discordgo
Discordgo
(Golang) Go bindings for Discord
Stars: ✭ 2,582 (+181.88%)
Mutual labels:  discordgo
disgord
(golang) Google Go Discord Bot
Stars: ✭ 53 (-94.21%)
Mutual labels:  discordgo
iftar-bot
🕌 Iftar Bot, Plays adzan sound on iftar time (Ramadan special ✨)
Stars: ✭ 16 (-98.25%)
Mutual labels:  discordgo
ephemeral-roles
A Discord bot for managing ephemeral roles based upon voice channel member presence.
Stars: ✭ 57 (-93.78%)
Mutual labels:  discordgo
DiscordGo
Discord C2 for Redteam....Need a better name
Stars: ✭ 55 (-94%)
Mutual labels:  discordgo
starboard
A starboard dedicated Discord bot.
Stars: ✭ 18 (-98.03%)
Mutual labels:  discordgo
replbot
Slack/Discord bot for running interactive REPLs and shells from a chat.
Stars: ✭ 169 (-81.55%)
Mutual labels:  discordgo
dgrouter
router to help speed up bot development in discordgo
Stars: ✭ 55 (-94%)
Mutual labels:  discordgo
MusicBot
A multi-server music bot for Discord built in Go
Stars: ✭ 44 (-95.2%)
Mutual labels:  discordgo

YAGPDB - Yet Another General Purpose Discord Bot

YAGPDB 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.

Plugins

  • YouTube Feed
  • Stream Announcements
  • Server Stats
  • Soundboard
  • Reputation
  • Reminders
  • Reddit Feed
  • Notifications
  • Moderation
  • Logs
  • Custom Commands
  • And More!

Useful Links

Selfhosting

There are two ways of selfhosting this bot: standalone, or dockerized.

General Bot Setup

Directions on creating an app and getting credentials may be found here. @@ -37,129 +36,82 @@ via the Control Panel.

In addition, you will need to add the following urls to the bot's "REDIRECT URI(S)" configuration:

Hosting Dockerized

If you have docker-compose installed, that might be the fastest route of getting the bot up and running:

git clone https://github.com/botlabs-gg/yagpdb
cp yagpdb/yagpdb_docker/{app.example.env,app.env}
cp yagpdb/yagpdb_docker/{db.example.env,db.env}

Edit 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:

docker-compose -f yagpdb/yagpdb_docker/docker-compose.yml up

Alternatively, you can run the bot behind a proxy:

docker network create proxy-tier
docker-compose -p proxy yagpdb/yagpdb_docker/docker-compose.proxy.yml up
docker-compose -f yagpdb/yagpdb_docker/docker-compose.proxied.yml up

During development, use the docker-compose.dev.yml file:

docker-compose -f yagpdb/yagpdb_docker/docker-compose.dev.yml up

Hosting Standalone

Requirements

  • Golang 1.16 or above
  • PostgreSQL 9.6 or later
  • Redis version 5.x or later

Setting Up

Configure Redis and Postgres with your desired settings.

In postgres, create a new user yagpdb and database yagpdb and grant that user access to that database.

Set up the environment variables with the credentials from the general setup. See the sample env file for a list of all enviroment variables.

Afterwards, run the build script located at /cmd/yagpdb/build.sh and start the bot using ./yagpdb:

git clone https://github.com/botlabs-gg/yagpdb
cd yagpdb/cmd/yagpdb
sh build.sh
./yagpdb -all

See ./yagpdb -help for all usable run flags. The webserver listens by default on ports 5000 (HTTP) and 5001 (HTTPS).

Databases

YAGPDB uses Redis for light data and caching, and postgresql for most configurations and heavy data, such as logs.

Updating

Updating with v1 and higher should migrate schemas automatically, but you should always make backups.

Breaking changes can be found in breaking_changes.md, which should always be consulted before updating.

Contributing

Please view the contributing guidelines before submitting any contributions.

See 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.

Expect web, bot and feed instances to be run separately.

For basic utility/fun commands, you can just jam them in stdcommands. Use the existing commands there as an example of how to add one.

Please check CONTRIBUTING.md for further details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].