YueBot is designed to be operated with a web admin panel instead of relying only on chat commands. In practice, the bot and the panel share a single PostgreSQL database and a shared Prisma client. https://yuebot.yuricunha.com/
  • TypeScript 98.4%
  • CSS 0.7%
  • JavaScript 0.7%
  • Dockerfile 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Yuri Cunha 84520ac5cf
Some checks failed
CI / checks (push) Has been cancelled
CI / docker/release-metadata (push) Has been cancelled
CI / docker/build-amd64 (push) Has been cancelled
CI / docker/build-arm64 (push) Has been cancelled
CI / docker/release (push) Has been cancelled
docs: translate the shared Nobre document to English
Keep every identifier, path, migration name, systemd unit, endpoint and
value verbatim; fix the escaped backticks the Portuguese version carried,
and normalize section dates to the ISO format already used by the final
section. The traducao.yuricunha.com hostname stays untouched.

Co-authored-by: Ella Mizuki <[email protected]>
2026-10-24 12:57:59 -03:00
.github/workflows ci: annotate multi-arch manifests with the image description 2026-10-24 12:25:48 -03:00
.woodpecker ci: add Woodpecker ARM64/AMD64 routing test workflows 2026-09-14 18:14:29 +00:00
apps fix(ci): align Nobre schema and stabilize panel AI settings save 2026-10-22 14:32:41 +00:00
deploy/systemd feat(nobre): promote Yue with protected native expiry and precise deadlines 2026-10-18 21:07:51 +00:00
docs docs: translate the shared Nobre document to English 2026-10-24 12:57:59 -03:00
packages fix(ci): align Nobre schema and stabilize panel AI settings save 2026-10-22 14:32:41 +00:00
prompts feat(panel-ai): usability and capability upgrades (8 items) (#44) 2026-09-10 17:41:10 -03:00
.dockerignore allow pnpm builds and add dockerignore 2025-12-26 00:57:05 +00:00
.env.docker.example fix: resolve all 15 audit findings (2 high, 6 medium, 7 low) (#42) 2026-09-10 13:29:10 -03:00
.env.example feat: add privileged intents kill switch 2026-09-03 16:56:46 -03:00
.env.local.example feat: add privileged intents kill switch 2026-09-03 16:56:46 -03:00
.eslintrc.cjs publish project 2025-12-25 21:18:12 -03:00
.gitattributes Initial commit 2025-12-25 21:08:35 -03:00
.gitignore feat(web): add YuTheme visual regression suite (test:visual) 2026-10-05 16:15:15 -03:00
.node-version publish project 2025-12-25 21:18:12 -03:00
.npmrc Revert "feat(security): implement comprehensive security monitoring and CI/CD integration" 2026-03-19 00:12:31 -03:00
.nvmrc publish project 2025-12-25 21:18:12 -03:00
.releaserc.cjs ci: migrate the main pipeline from GitHub Actions to GitLab CI 2026-09-14 03:41:07 +00:00
docker-compose.dockerhub.external-db.yml fix: resolve all 15 audit findings (2 high, 6 medium, 7 low) (#42) 2026-09-10 13:29:10 -03:00
docker-compose.dockerhub.internal-db.yml fix: resolve all 15 audit findings (2 high, 6 medium, 7 low) (#42) 2026-09-10 13:29:10 -03:00
docker-compose.example.yml fix: resolve all 15 audit findings (2 high, 6 medium, 7 low) (#42) 2026-09-10 13:29:10 -03:00
docker-compose.ghcr.external-db.yml fix: resolve all 15 audit findings (2 high, 6 medium, 7 low) (#42) 2026-09-10 13:29:10 -03:00
docker-compose.ghcr.internal-db.yml fix: resolve all 15 audit findings (2 high, 6 medium, 7 low) (#42) 2026-09-10 13:29:10 -03:00
docker-entrypoint.sh fix(docker): retry prisma migrations on startup 2026-01-27 09:46:46 +00:00
Dockerfile fix: resolve all 15 audit findings (2 high, 6 medium, 7 low) (#42) 2026-09-10 13:29:10 -03:00
eslint.config.cjs publish project 2025-12-25 21:18:12 -03:00
icon.png feat add app icon 2025-12-30 14:27:30 +00:00
inject-env.sh docker: safely generate env.js 2025-12-26 13:05:50 +00:00
knip.json fix(ci): align Nobre schema and stabilize panel AI settings save 2026-10-22 14:32:41 +00:00
LICENSE Initial commit 2025-12-25 21:08:35 -03:00
nginx-security-headers.conf fix: resolve all 15 audit findings (2 high, 6 medium, 7 low) (#42) 2026-09-10 13:29:10 -03:00
nginx.conf deploy(nobre): promote lifetime role verification without bot restart 2026-10-20 02:43:42 +00:00
package.json chore: upgrade pnpm to 12.3.4 2026-09-06 23:03:15 +00:00
pnpm-lock.yaml feat(nobre): reconcile shared benefits on transactional database events 2026-10-18 20:38:56 +00:00
pnpm-workspace.yaml chore: upgrade pnpm to 12.3.4 2026-09-06 23:03:15 +00:00
README.md docs(readme): repair mangled License section and consolidate shared Nobre notes 2026-10-24 12:48:21 -03:00
supervisord.conf chore: prettify runtime logs 2026-08-27 17:53:45 -03:00
tsconfig.json build(ts): remove deprecated ts options and ignore flag 2026-04-22 09:46:04 -03:00

Yue Bot

Yue Discord Bot

A multifunctional Discord bot with a complete web dashboard for managing communities, moderation, entertainment and automation.

CI Node.js 24+ Docker License


About

Yue started as a Discord bot and grew into a full community management platform.

The bot handles everyday Discord interactions while the web dashboard gives server administrators a cleaner way to configure features, inspect activity and manage the community without relying only on commands.

The project is actively used in production and is built as a monorepo containing the Discord bot, API, web panel and shared packages.

Self-hosting note: the source is public, but I do not provide support for custom or third-party deployments.

Highlights

  • 🛡️ Moderation & security — bans, mutes, warnings, mod logs, AutoMod, AntiRaid, channel locks and audit tools.
  • 📊 XP & community — levels, leaderboards, profiles, badges, birthdays, autoroles and member management.
  • 🎉 Giveaways & events — giveaways, polls, events, suggestions, tickets and reaction roles.
  • 💰 Economy & fun — luazinhas, bank, shop, inventory, coinflip, anime, Pokédex, pets, trivia and waifu/husbando systems.
  • 🎵 Music — playback, queue, playlists, DJ controls and Lavalink support.
  • ⭐ Community tools — welcome messages, starboard, keyword triggers, custom commands, fan arts and free-game notifications.
  • ❤️ Support system — optional LivePix integration for support plans and automatic Discord role delivery after confirmed payments.
  • ✨ Optional smart features — Discord chat assistant, panel assistant and automated content moderation when the related providers are configured.

Web dashboard

The dashboard is one of Yue's main parts. After signing in with Discord, administrators can manage their servers through a modern interface instead of configuring everything through slash commands.

It currently includes areas for moderation, AutoMod, AntiRaid, audit logs, members, giveaways, XP, autoroles, tickets, suggestions, reaction roles, starboard, welcome messages, music, custom commands, keyword triggers, support plans and more.

Owner-only tools are also available for global administration and panel configuration.

Tech stack

Part Technology
Discord bot Node.js, TypeScript, Discord.js
API Fastify
Web panel React, Vite
Database PostgreSQL, Prisma
Cache / queues Redis
Music Lavalink
Package manager pnpm
Deployment Docker

Docker

Yue is published as a multi-architecture image for linux/amd64 and linux/arm64.

Docker Hub:

docker pull isyuricunha/yue-discord-bot:latest

GitHub Container Registry:

docker pull ghcr.io/isyuricunha/yue-discord-bot:latest

The repository includes Compose examples for both internal and external PostgreSQL setups, using either Docker Hub or GHCR images.

A simple starting point is:

cp .env.docker.example .env
# Fill in the required Discord, database and authentication values.

docker compose -f docker-compose.dockerhub.internal-db.yml up -d

Optional integrations such as Lavalink, LivePix, Mistral and OpenAI can be enabled through environment variables when needed.

Discord gateway recovery

Yue keeps the bot process alive when Discord temporarily rejects a gateway login. If Discord reports that the session-start limit is exhausted, Yue waits until the reset timestamp provided by Discord plus one second, then retries automatically. No container restart is required.

Other transient gateway login failures use exponential backoff capped at five minutes. To inspect the current gateway state in a Docker deployment:

docker logs --timestamps --tail 100 yuebot

Local development

Requirements

  • Node.js 24+
  • pnpm 10+
  • PostgreSQL
  • Redis
  • A Discord application

Then:

git clone https://github.com/isyuricunha/yue-discord-bot.git
cd yue-discord-bot

cp .env.example .env
pnpm install
pnpm db:generate
pnpm db:migrate
pnpm dev

The development command starts the workspace services together. You can also run them separately:

pnpm dev:bot
pnpm dev:api
pnpm dev:web

Default development URLs:

  • Web panel: http://localhost:5173
  • API: http://localhost:3000

Project structure

apps/
├── bot/        Discord bot
├── api/        HTTP API
└── web/        React dashboard

packages/
├── database/   Prisma and database package
├── livepix/    LivePix integration
└── shared/     Shared code and types

prompts/        Runtime prompt files

Everything lives in a single pnpm workspace so the bot, API, panel and shared packages can evolve together.

Useful commands

pnpm dev          # Run the development workspace
pnpm build        # Build all applications and packages
pnpm lint         # Run lint checks
pnpm type-check   # Run TypeScript checks
pnpm test         # Run tests
pnpm db:generate  # Generate the Prisma client
pnpm db:migrate   # Run database migrations

License

Yue Discord Bot is licensed under the GNU Affero General Public License v3.0.

See LICENSE for the full license text.

Shared Nobre with Vai Brasil!

Supporters who do not link accounts keep everything independent. The optional Vai Brasil! integration lets the bot and the translation portal share the same Nobre entitlement, preserving existing payments, roles and benefits.

Benefits and roles reconcile through an isolated REST worker, with no second Discord gateway and no restart of the main Yue runtime. Deployment steps and activation settings are documented in docs/SHARED-NOBRE-VAI-BRASIL.md. Synchronization stays disabled until the integration is validated.