This repository contains the source code for the AWS Amplify Discord Server's bot!
- auto-threads "help" channels; if a channel follows the
<category>-helpnaming convention messages will automatically get converted into threads- thread data is tracked by title, original poster ID, and whether the thread is solved (
GET /api/questions)
- thread data is tracked by title, original poster ID, and whether the thread is solved (
- dashboard component to visualize questions and channel "health"
- support for GitHub to Discord webhooks (used for posting release notes)
- command:
/admin mirror <repository>accepts a REPOSITORY and posts the thread to GitHub Discussions - command:
/contribute- accepts an Amplify project argument and returns the GitHub contribution URL - command:
/github- accepts an Amplify project argument and returns the GitHub repository URL - command:
/giverole- accepts a ROLE and USER argument to grant a role (NOTE: this command is disabled by default for@everyone) - command:
/loginsends an ephemeral link to login to GitHub and link accounts - command:
/thread- command suite for thread owners/thread rename <title>- allows thread owners to rename their threads/thread archive- allows thread owners to optionally archive their thread/thread solved- allows thread owners to mark their question (thread) as "solved", which changes prepended?with ✅/thread reopen- allows thread owners to "reopen" their question (thread), which changes prepended ✅ with?
- supports multiple guilds
Pre-requisites:
- Node.js v18.x
- pnpm v7.13.1
gh repo fork aws-amplify/discord-botpnpm setup-dev- Using
.env.sampleas a template, create a.envfile and add necessary Discord environment values - Run the application with
pnpm dev - As the server owner navigate to
http://localhost:3000/, log in, and visit/adminto configure the instance
-
(optional) create a new Discord server or create from the AWS Amplify Discord server template
-
Make note of the App ID to add the bot to your Discord server using the following URL
https://discord.com/api/oauth2/authorize?client_id=<app-id>&permissions=335812774976&scope=bot%20applications.commands -
Enable OAuth and add
http://localhost:3000/api/auth/callback/discordas a redirect -
Make note of the OAuth secrets and populate
.env
The URL noted in step 2 above has the permissions integer of 335812774976 which includes the following bot permissions:
Learn how to get started with our contribution guide
