Skip to content

A modular, self-hosted Discord bot built with TypeScript, Discord.js, and PostgreSQL.

License

Notifications You must be signed in to change notification settings

McGeeLabs/moxie-bot

Moxie

Moxie

Calm. Reliable. Alive.
Disciplined automation tooling.


Moxie is a modular, self-hosted Discord bot built with TypeScript, Discord.js, and PostgreSQL.

The goal of Moxie is to provide a powerful, extensible alternative to bots like MEE6, while giving server owners full control over features, data, and customization.


✨ Planned Features

  • 🔧 Custom Commands (admin-defined, database-backed)
  • 🎭 Reaction Roles
  • 🛡️ Moderation Commands & Action Logs
  • 🎉 Community / Fun Commands
  • 📈 Leveling System (with future shop/economy support)
  • 🎫 Ticket System (button-based)
  • 🌐 Web Admin Dashboard (Discord OAuth)
  • 🗄️ PostgreSQL-backed persistence
  • 🔌 Future MCP / automation integrations

Why Moxie?

Moxie is built to be a self-hosted, modular alternative to all-in-one Discord bots like MEE6 — with full control over features, data, and customization.

  • Own your data (PostgreSQL-backed, no vendor lock-in)
  • Modular by design (enable features per guild)
  • Built for growth (clean architecture + future dashboard + automation/MCP hooks)

🧱 Tech Stack

  • Node.js
  • TypeScript
  • Discord.js v14
  • PostgreSQL (planned)
  • Prisma (planned ORM)
  • Docker (planned)
  • Next.js (planned admin dashboard)

📂 Project Structure

moxie-bot/
├── src/
│   ├── commands/              # Slash command implementations
│   │   └── ping.ts
│   ├── events/                # Discord event handlers
│   │   ├── interactionCreate.ts
│   │   └── ready.ts
│   ├── types.ts               # Shared bot typings
│   ├── config.ts              # Environment configuration
│   ├── deploy-commands.ts     # Slash command registration
│   └── index.ts               # Bot entry point
├── .env.example               # Environment variable template
├── .gitignore
├── LICENSE
├── package.json
├── package-lock.json
├── tsconfig.json
├── README.md
└── ROADMAP.md

🚀 Getting Started

1️⃣ Install dependencies

npm install

2️⃣ Configure environment variables

cp .env.example .env

Fill in the following values:

  • DISCORD_TOKEN — your bot token
  • DISCORD_CLIENT_ID — application client ID
  • DISCORD_GUILD_ID — test server ID (guild deploy for fast iteration)

3️⃣ Deploy slash commands

npm run deploy

4️⃣ Start the bot (development mode)

npm run dev

If successful, you should see:

✅ Logged in as Moxie#1234


🧪 Current Commands

  • /ping — verify the bot is online and responsive

🔐 Permissions

Moxie uses Discord’s built-in permission system and will later support:

  • Role-based access control per module
  • Admin-only command restrictions
  • Feature-level permissions configurable per guild

🗺️ Roadmap

See ROADMAP.md for detailed milestones and planned features.


🧠 Design Philosophy

Moxie is designed to be:

  • Self-hosted — no vendor lock-in
  • Modular — features enabled per guild
  • Multi-guild — built-in from day one
  • Extensible — clean architecture for future growth

💖 Supporting Moxie

Moxie is 100% open source and free to self-host.

If you find Moxie useful and want to support its continued development, you can:

  • ⭐ Star the repository
  • 🐛 Report bugs or contribute code
  • 💖 Sponsor the project on GitHub

👉 GitHub Sponsors: https://github.com/sponsors/McGeeLabs

There are no paid features and nothing locked behind a paywall — support is completely optional and deeply appreciated.


📄 License

MIT

About

A modular, self-hosted Discord bot built with TypeScript, Discord.js, and PostgreSQL.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published