Pepe44DEV c2cb0c139a
All checks were successful
Deploy Discord Bot / deploy (push) Successful in -56s
SonarQube / sonar (push) Successful in 1m37s
updated README.md
2026-07-01 16:48:27 +02:00
2026-07-01 16:48:27 +02:00

🚀 Papo Discord Bot

A modern, feature-rich Discord bot built with discord.js v14, TypeScript, Prisma, and PostgreSQL, featuring a powerful web dashboard and modular architecture.


Features

🎫 Ticket System

  • Interactive ticket panels
  • Ticket claiming
  • Ticket transcripts
  • Support login sessions
  • Slash commands (/ticket, /claim, /close, ...)

🛡️ Moderation

  • Link whitelist
  • Anti-Spam
  • Anti-Caps
  • Bad word filtering
  • Comprehensive server logging

🎵 Music

  • Play music from multiple sources
  • Queue support
  • Pause / Resume
  • Skip
  • Stop
  • Loop
  • Enable/Disable per server

👋 Community Features

  • Welcome messages
  • Leveling system
  • Birthday reminders
  • Reaction Roles
  • Dynamic Voice Channels
  • Event system with reminders

📊 Dashboard

  • Discord OAuth2 Login
  • Guild management
  • Modular settings
  • Status Page integration
  • Rich Presence management
  • Modern responsive interface

🛠️ Tech Stack

Technology Version
Node.js 20+
TypeScript Latest
discord.js v14
Express Latest
Prisma ORM Latest
PostgreSQL 15+
Docker Supported

📦 Installation

Local Development

Clone the repository

git clone https://github.com/yourname/papo-discord-bot.git
cd papo-discord-bot

Create your environment file

cp .env.example .env

Install dependencies

npm install

Generate Prisma Client

npx prisma generate --schema=src/database/schema.prisma

Run database migrations

npx prisma migrate dev --name init

Start the development server

npm run dev

The bot and dashboard will start on the configured PORT (default: 3000).

Slash commands are automatically registered for the guilds defined in:

  • DISCORD_GUILD_IDS
  • or DISCORD_GUILD_ID

🐳 Docker

Start the complete development stack

docker-compose up --build

Build the Docker image manually

docker build -t papo-discord-bot .

The Docker image automatically generates the Prisma Client during the build process.


⚙️ Environment Variables

Variable Description
DISCORD_TOKEN Discord Bot Token
DISCORD_CLIENT_ID Discord OAuth Client ID
DISCORD_CLIENT_SECRET Discord OAuth Secret
DATABASE_URL PostgreSQL Connection String
PORT Dashboard Port (default: 3000)
SESSION_SECRET Express Session Secret
DASHBOARD_BASE_URL Public Dashboard URL
WEB_BASE_PATH Base path (default: /ucp)
OWNER_IDS Comma-separated Bot Owners
SUPPORT_ROLE_ID Support Role ID
DISCORD_GUILD_ID(S) Guild(s) for command registration

🗄️ Database

Main Prisma schema

src/database/schema.prisma

Generate Prisma Client

npx prisma generate --schema=src/database/schema.prisma

Create a migration

npx prisma migrate dev --name your-migration

Core Models

  • GuildSettings
  • Ticket
  • TicketSupportSession
  • Event
  • EventSignup
  • RegisterForm
  • RegisterApplication
  • Birthday
  • ReactionRoleSet
  • Level

📜 Available Scripts

Command Description
npm run dev Development Mode
npm run build Compile TypeScript
npm start Run Production Build
npx prisma ... Prisma CLI

🌐 Dashboard API

Authentication

/auth/discord
/auth/callback
/auth/logout

Protected API

/api/*

Main Endpoints

  • /api/guilds
  • /api/settings
  • /api/modules
  • /api/tickets
  • /api/events
  • /api/reactionroles
  • /api/birthday
  • /api/statuspage

Only guilds where the authenticated user has Manage Server permissions and where the bot is present are accessible.


🚀 Deployment

Production build

npm run build
npm start

or simply use Docker.

Ticket transcripts are stored in

./transcripts

When running inside Docker, mount this directory as a volume to persist transcripts.


❤️ Contributing

Contributions, feature requests, and bug reports are always welcome!

Feel free to open an Issue or submit a Pull Request.


📄 License

No license has been specified yet.

Please add an appropriate open-source license before publishing this project.


Built with ❤️ using TypeScript, Discord.js, Prisma & PostgreSQL

Description
A Discord bot as Alternative to MEE6 and Galaxy bot Fully free and OpenSource
Readme 34 MiB
Languages
TypeScript 96.6%
CSS 1.7%
Shell 1.6%