A Discord bot that monitors Courspora for new content updates and automatically sends notifications to designated channels in Discord servers. Built with Docker for simple deployment and management.
demo.mov
- Automatically checks for new content updates on Courspora
- Sends notifications to specified Discord channels
- Supports multiple servers (one notification channel per server)
- Easy deployment using Docker and Google Kubernetes Engine (GKE)
- Simple command interface for channel management
Command | Description |
---|---|
!set |
Sets the current channel to receive notifications. Limited to one channel per server. |
!clear |
Removes the current notification channel setting. |
- Docker and Docker Compose
- Google Cloud account with GKE enabled
- Discord Bot Token and ID
- Clone the repository:
git clone https://github.com/Thiraput01/Courspora-notifier
cd Courspora-notifier
- Configure environment variables:
cp .env.example .env
Edit the .env
file with your credentials:
TOKEN=your_discord_bot_token
BOT_ID=your_discord_bot_ID
- Build and run with Docker:
docker-compose up -d
- Set up your GKE cluster: Ensure you have a GKE cluster created and configured. Refer to the GKE documentation for guidance.
- Deploy the application: Use the provided Kubernetes configuration files to deploy the bot and the web scraper on GKE. Make sure to apply the necessary configurations for your environment by adding
env-config.yaml
file. - Access the bot: After deploying, use the external IP assigned to your Discord bot service to test the functionality.
-
Invite the bot to your Discord server using the OAuth2 URL generated from the Discord Developer Portal.
-
Choose the channel where you want to receive notifications.
-
In the desired channel, type:
!set
To change the notification channel:
- Go to the current notification channel
- Type
!clear
- Go to the new desired channel
- Type
!set
The bot comes with a pre-configured Docker setup for easy deployment:
version: "3"
services:
web-scraper:
build: ./scrape
container_name: web_scraper
restart: unless-stopped
volumes:
- ./scrape:/app
env_file:
- .env
networks:
- app-network
discord-bot:
build: ./bot
container_name: discord_bot
restart: unless-stopped
ports:
- "5000:5000"
volumes:
- ./bot:/app
env_file:
- .env
networks:
- app-network
networks:
app-network:
driver: bridge
For support, please open an issue in the GitHub repository or contact the maintainers.
- Discord.js library for Discord bot functionality
- Docker for containerization
- Google Cloud Platform for hosting the application using GKE.
- Courspora for providing the course content .