Civita
Civita is a multifunctional and lightweight Discord bot built with TypeScript.
It’s designed to be fast, modular, and easy to maintain — providing essential utilities, moderation tools, and fun features for your Discord community.
✨ Features
- 🧹 Moderation — Kick, ban, mute and manage your server with ease.
- 🎉 Fun & Games — Engage users with AI, QOTD(questions of the day), and other fun commands.
- ⚙️ Customizable — Easily configurable settings via /setup command.
- 🚀 Lightweight & Fast — Optimized with TypeScript for performance and maintainability.
🧰 Tech Stack
📦 Installation
Prerequisites
- Node.js v18 or later
- Discord Bot Token (create one here)
- PnPm
- Google GenAI Key (create one here)
Setup
# Clone the repository
git clone https://git.optimihost.com/NaChlorid/civita.git
cd civita
# Install dependencies
pnpm install
# Configure environment variables
cp .env.example .env
# Edit .env and add your Discord bot token
# Build the project
pnpm run build
# Start the bot
npx dist/index.js
⚙️ Configuration
Your .env file should look like this:
DISCORD_TOKEN=(DISCORD TOKEN)
GEMINI_API_KEY=(GOOGLE GENAI KEY)
DISCORD_CLIENT_ID=(DISCORD APPLICATION ID)
DATABASE_HOST=127.0.0.1
DATABASE_PORT=3306
DATABASE_USER=(DATABASE USER)
DATABASE_PASSWORD=(DATABASE PASSWORD)
DATABASE_NAME=(DATABASE NAME)
You can also customize command prefixes, logging options, and more depending on your setup.
🧑💻 Development
To start a development environment:
pnpm run dev
🧱 Project Structure
civita
├── package.json
├── README.md
├── src
│ ├── ai
│ │ └── gemini.ts
│ ├── commands
│ │ ├── leaderboard.ts
│ │ ├── moderation.ts
│ │ ├── profile.ts
│ │ ├── resetmemory.ts
│ │ └── setup.ts
│ ├── config
│ │ └── env.ts
│ ├── db
│ │ ├── migrate.ts
│ │ └── pool.ts
│ ├── deploy-commands.ts
│ ├── events
│ │ ├── guildBanKickLog.ts
│ │ └── messageCreate.ts
│ ├── index.ts
│ ├── scheduler
│ │ └── qotd.ts
│ └── types
│ └── ambient.d.ts
└── tsconfig.json
🧩 Contributing
Contributions are welcome! Feel free to fork this repository and submit a pull request. Make sure your code follows the existing style and passes all lint checks before submitting.
🪪 License
This project is licensed under the MIT License. See the LICENSE file for details.
💬 Support
If you encounter issues or have suggestions, please open an issue on GitHub. You can also reach out via the Discord server (if available).
Civita — simple, modular, and made to elevate your Discord experience.