A modular Discord bot for community servers with GitHub notifications, reminders, polls, and server management features.
QuadstroNot is a Python Discord bot built on discord.py with a cog-based plugin architecture. It integrates with GitHub to track and notify on repository activity, manages server welcome messages and reminders, runs interactive polls, and provides audit logging to moderation channels. All configuration is environment-variable driven, with SQLite persistence via aiosqlite.
- Language: Python 3.12
- Framework: discord.py >= 2.3
- Database: SQLite (aiosqlite)
- Deployment: Docker + Docker Compose
- Intents: Message content, members, voice states, presences
-
Environment Setup: Copy
.env.exampleto.envand populate required variables:DISCORD_TOKEN— Bot token from Discord Developer PortalGITHUB_USERNAME— GitHub account to track for notificationsMOD_LOG_CHANNEL_ID,WELCOME_CHANNEL_ID,GITHUB_NOTIFY_CHANNEL_ID— Discord channel IDs for respective features- Optional:
WELCOME_MESSAGE,GITHUB_POLL_INTERVAL
-
Run:
docker-compose up
Or directly:
pip install -r requirements.txt && python bot.py -
Commands (prefix
!):!poll "Question" "Option 1" "Option 2" ...— Create reaction-based polls!remind <duration> <message>— Set a reminder!reminders/!cancelremind— Manage reminders!lastpush— Query last GitHub push!serverinfo/!userinfo— Server/user details- Auto-responses and welcome messages configured via environment
QuadstroNot/
├── bot.py # Entry point, cog loader, global error handling
├── cogs/ # Plugin modules (github, polls, reminders, welcome, etc.)
├── db/ # SQLite abstraction layer
├── docker-compose.yml # Multi-container setup
├── Dockerfile # Python 3.12 slim build
└── requirements.txt # Dependencies (discord.py, aiosqlite)