You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Lifecycle Policy: This master tracking issue details all architectural, infrastructural, and feature differences between upstream galnir/Master-Bot and the PhantomNimbi/Master-Bot modernization fork.
📊 High-Level Comparison Matrix
Component / Dimension
Upstream (galnir/Master-Bot)
Modernization Fork (PhantomNimbi/Master-Bot)
Runtime Architecture
Multi-process: Bot (3000) & Dashboard (3001) run separately
Single Node.js Process: Bot gateway & Dashboard unified on single PORT (3000)
14-Page Comprehensive Wiki + complete architecture diagrams
🚀 Complete Breakdown of Differences
1. 🏗️ Consolidated Single-Process Architecture
Unified Port & Process: Merged the Discord Bot Gateway (Sapphire framework) and the Next.js 15 Web Dashboard (/dashboard) into a single Node.js process listening on PORT (default 3000).
Internal Web Server (apps/bot/src/lib/server/webServer.ts):
Serves landing root (/) and handles dashboard SSR routing.
Exposes /health endpoint for container health checks.
Houses a background keepAlive service pinging /health every 10 minutes to prevent free-tier cloud containers (e.g. Render) from spinning down due to inactivity.
Unified Dev & Start: Replaced separate multi-terminal launcher scripts with streamlined root pnpm dev and pnpm start commands.
Fly.io (fly.toml): MicroVM deployment targeting port 3000 with NVMe volume support.
Docker (Dockerfile & docker-compose.yml): Production multi-stage single-container build.
7. 🧹 Environment Schema & Monorepo Hardening
Corrected Typo: Fixed INTERNA_URL to INTERNAL_URL monorepo-wide across all schemas and configs.
Pruned Dead Variables: Stripped all obsolete PostgreSQL and Redis variables (POSTGRES_*, REDIS_*).
Clean Compiler Options: Removed obsolete "ignoreDeprecations" flags and made apps/bot/tsconfig.json self-contained.
Compiled Declarations: Configured @master-bot/db to emit compiled JS and .d.ts declaration files via tsc for clean workspace imports.
8. 📚 Comprehensive Documentation Wiki
Authored a complete 14-page Wiki: Home.md, Architecture.md, Getting-Started.md, Configuration.md, Deployment.md, Commands.md, Music.md, Dashboard.md, Moderation.md, Tickets.md, Reminders-and-Twitch.md, Welcome-and-Temp-Channels.md, FAQ.md, and _Sidebar.md.
📊 Verification Matrix
✓ pnpm test — 15 / 15 unit tests passing (100% pass rate)
✓ pnpm run type-check — 0 TypeScript errors across all 3 packages
✓ pnpm run build — Production build succeeded for bot and dashboard
This master tracking issue remains OPEN until Pull Request #829 is accepted and merged into main.
Note
PhantomNimbi/Master-Bot.galnir/Master-Botand thePhantomNimbi/Master-Botmodernization fork.📊 High-Level Comparison Matrix
galnir/Master-Bot)PhantomNimbi/Master-Bot)3000) & Dashboard (3001) run separatelyPORT(3000)postgresql://...)packages/db/prisma/db.sqliteauto-created & migratedredis://...)ioredis-mock: Zero external binaries or memory-hungry processesHELIX-Origin/Lavalink-Serverrender.yaml), Railway, Heroku, Fly.io/healthauto-pinged every 10 mins)🚀 Complete Breakdown of Differences
1. 🏗️ Consolidated Single-Process Architecture
/dashboard) into a single Node.js process listening onPORT(default3000).apps/bot/src/lib/server/webServer.ts):/) and handles dashboard SSR routing./healthendpoint for container health checks.keepAliveservice pinging/healthevery 10 minutes to prevent free-tier cloud containers (e.g. Render) from spinning down due to inactivity.pnpm devandpnpm startcommands.2. 🗄️ Zero-Ops Database Migration (PostgreSQL ➔ SQLite)
packages/db/prisma/db.sqlite): Auto-created and migrated on initial setup.StringJSON arrays with helper serialization forGuild.notifyList,Guild.disabledCommands, andGuild.logEvents.guildIdonReminderrecords for proper multi-tenant guild scoping.3. ⚡ Zero-Process In-Memory State Store (Redis ➔
ioredis-mock)redis-server.ioredis-mock: State caching, rate limiting, and session sharing operate entirely in-process with zero network overhead.4. 🎵 Next-Gen Audio Architecture (Lavalink v4)
dev.lavalink.youtube:youtube-plugin):YOUTUBE_CIPHER_URL).TV,MUSIC,ANDROID_VR,IOS,WEB)./youtube-authdevice flow storing OAuth2 refresh tokens to eliminate 429/IP blocks.com.github.topi314.lavasrc:lavasrc-plugin):apps/bot/src/lib/music).LAVA_EXTERNAL=trueandLAVA_ENABLED=falseconfigured on cloud blueprints to protect 512 MB containers from JVM Out-Of-Memory errors.HELIX-Origin/Lavalink-Serverfor 1-click external Lavalink hosting.5. 💻 Next.js 15 Web Dashboard Rewrite
apps/dashboard/src/server)..txttranscript archiving.6. ☁️ 1-Click Cloud Deployment Blueprints
render.yaml): Free-tier Docker/Node web service blueprint with automated keep-alive.railway.json): Nixpacks build specification with volume mount path for SQLite persistence (/packages/db/prisma).app.json&Procfile): Single-dyno Eco container manifest with environment variable defaults.fly.toml): MicroVM deployment targeting port 3000 with NVMe volume support.Dockerfile&docker-compose.yml): Production multi-stage single-container build.7. 🧹 Environment Schema & Monorepo Hardening
INTERNA_URLtoINTERNAL_URLmonorepo-wide across all schemas and configs.POSTGRES_*,REDIS_*)."ignoreDeprecations"flags and madeapps/bot/tsconfig.jsonself-contained.@master-bot/dbto emit compiled JS and.d.tsdeclaration files viatscfor clean workspace imports.8. 📚 Comprehensive Documentation Wiki
Home.md,Architecture.md,Getting-Started.md,Configuration.md,Deployment.md,Commands.md,Music.md,Dashboard.md,Moderation.md,Tickets.md,Reminders-and-Twitch.md,Welcome-and-Temp-Channels.md,FAQ.md, and_Sidebar.md.📊 Verification Matrix
This master tracking issue remains OPEN until Pull Request #829 is accepted and merged into
main.