A feature-rich, modular Discord bot built with microservices architecture
CipiBot is an all-in-one Discord bot designed to combine the best features from various bots into a single, highly customizable solution. Built with a modern microservices architecture, it supports multiple servers with granular per-guild feature control.
- Modular Design - Enable or disable features per server
- Multi-Server Support - Scalable architecture for unlimited servers
- Microservices Architecture - Independent, maintainable services
- Customizable - Fine-grained control over bot behavior
| Technology | Purpose |
|---|---|
| TypeScript | Primary language with Node.js runtime |
| pnpm + Turbo | Monorepo management and build optimization |
| PostgreSQL | Primary database |
| Prisma | Type-safe ORM for database operations |
| Kafka | Event streaming between microservices |
| Fastify | High-performance HTTP API framework |
| Redis | In-memory caching for fast data access |
๐ง This project is in early development. Features and architecture may change significantly.
This is my first project using microservices architecture, and I'm learning as I go! If you have suggestions, improvements, or spot something that could be done better โ I'd love to hear from you.
Feel free to:
- ๐ Open an issue with feedback or questions
- ๐ก Submit a pull request with improvements
- ๐ฌ Reach out with advice or best practices
All contributions and constructive criticism are welcome! ๐
| Service | Description | Native Port (Local) |
|---|---|---|
| Web | User dashboard and landing page (Vue.js) | 3000 |
| Discord-WS | Receives Discord events and publishes to Kafka | 3001 |
| Leveling | Manages XP and level progression system | 3002 |
| Config | Handles guild-specific feature toggles and settings | 3003 |
| Discord-REST | Centralized Discord API interactions | 3004 |
| API | Public API for frontend | 3005 |
| Welcoming | Welcome and leave messages | 3006 |
| Ticketing | Support ticketing system | 3007 |
| More coming... |
Docker Note: Within the Docker environment, all microservices are configured to run on a uniform internal port (3000). Only the web service (Nginx) is exposed to the host. It acts as a reverse proxy, routing traffic to api service
- โจ Leveling System - XP progression with public web leaderboard
- ๐ก๏ธ Moderation Suite - Comprehensive moderation tools
- ๐ User Verification - CAPTCHA-based bot protection
- ๐ Logging System - Detailed server activity logs
- ๐ Multi-language Support - Localization for global communities
- ๐ฎ Fun Commands - Interactive entertainment features
- ๐ Giveaways - Automated giveaway management
- ๐ญ Reaction Roles - Self-assignable roles via reactions
- ๐ฌ Welcome Messages - Customizable greeting system
- ๐ค Custom Commands - User-defined command creation
- ๐ข Social Alerts - Notifications for YouTube, Twitter, Reddit
- ๐ฎ Minecraft Integration - Server status monitoring
- ๐ซ Ticketing System - Support ticket management
- โฐ Reminders - Scheduled messages and notifications
- ๐ฐ Economy System - Virtual currency, shop, and games
- ๐ต Music Player - Multi-source audio streaming
- ๐ง Web Panel - Browser-based bot configuration
- ๐จ Embed Builder - Visual embed creation tool