Skip to content

C-h-a-r/SupportBot-Dashboard

 
 

Repository files navigation



SupportBot

shield.png shield.png shield.png shield.png

Supported Versions

SupportBot Node.JS Discord.JS Supported
26.x 22.x 14.x. ✅ Yes
8.x 22.x 14.x. ✅ Yes
7.7.3 16.x 13.x. ❌ No
7.x 16.x 13.x. ❌ No
6.x 14.x 13.x. ❌ No
5.x 12.x 13.x. ❌ No
4.x 11.x 13.x. ❌ No
Older 10.x 13.x. ❌ No

MIT License discord.js v14 Node.js 22.x Upstream SupportBot

About · Features · Requirements · Getting started · Dashboard access · Configuration · Addons · Development · Upstream & credits · License


About

This repository is a community fork of SupportBot — the open-source Discord support/ticket bot by Emerald Services. It is not affiliated with or endorsed by Emerald Services.

What this fork adds is a self-hosted dashboard: a modern web UI and REST API that run in the same Node process as the bot. You configure tickets, messages, commands, AI settings, addons, and more from the browser instead of editing YAML by hand. The API starts immediately on launch, so the dashboard stays reachable even while the bot is connecting or restarting.

If you only need the original bot without the dashboard, use the official SupportBot repository.

Features

Self-hosted dashboard

Area What you get
Overview Live stats — servers, members, open/closed tickets, module setup status, RAM/CPU/uptime
Visual config editors Edit supportbot, ticket panel, commands, messages, and AI config with form fields instead of raw YAML
Discord pickers Choose channels, roles, and categories from dropdowns when configuring the bot (no copy-pasting IDs)
Guild health Warnings if the bot is in the wrong server or extra guilds; quick link to fix GuildId or leave stray servers
Logs Browse Output, Warn, and Error logs from the dashboard
Transcripts View saved ticket HTML transcripts
Notifications In-app alerts for bot restarts, update checks, and installs
Settings Check for dashboard updates and apply them from the UI
Users & roles Invite staff via Discord OAuth; assign owner, admin, editor, viewer, or custom per-page permissions
Addons Browse and install addons from the official Addons repo; edit addon configs in the sidebar like other config files

Bot & API (unchanged upstream behaviour, plus improvements)

  • Full SupportBot v26 ticket system, slash commands, AI assistant, and addon support
  • Discord OAuth login for the dashboard (no shared API secret in the browser)
  • API key (SecretKey in api.yml) still works for automation and scripts
  • Config saves can restart the Discord bot while keeping the dashboard and API online
  • Timeouts and caching so the UI does not hang when Discord or GitHub is slow

Requirements

Component Version
Node.js 22.x (matches SupportBot 8.x)
discord.js 14.x (installed via package.json)
Discord bot Application with bot token and required intents
Discord OAuth app For dashboard login (optional but recommended)

You need a machine or VPS that can run Node and reach Discord’s API (and GitHub, if you use in-dashboard updates or the addon marketplace).

Getting started

1. Clone and install

git clone https://github.com/C-h-a-r/SupportBot-Dashboard.git
cd SupportBot-Dashboard
npm install

2. Configure the bot

Edit Configs/supportbot.yml:

  • Set General.Token to your bot token
  • Set General.GuildId to your Discord server ID
  • Enable addons if you use them: General.Addons.Enabled: true

Other YAML files in Configs/ can stay at defaults until you open the dashboard.

3. Configure the API & dashboard

Edit Configs/api.yml:

API:
  Enabled: true
  Port: 3000
  SecretKey: "generate-a-long-random-string"
  OAuth:
    Enabled: true
    ClientId: "YOUR_DISCORD_APP_CLIENT_ID"
    ClientSecret: "YOUR_DISCORD_APP_CLIENT_SECRET"
    RedirectUri: "http://localhost:3000/api/auth/discord/callback"
    OwnerUserIds:
      - "YOUR_DISCORD_USER_ID"

Discord Developer Portal

  1. Create an application at discord.com/developers/applications
  2. Under OAuth2 → Redirects, add your callback URL(s). If users may sign in over both HTTP and HTTPS, register both (same host/path, different protocol), e.g. http://bot.example.com/api/auth/discord/callback and https://bot.example.com/api/auth/discord/callback.
  3. Use the same app’s Client ID and Client Secret in api.yml
  4. Put your Discord user ID in OwnerUserIds for full dashboard access

Set RedirectUri to your usual URL (host and path). By default, UseRequestOrigin keeps the same protocol as the page you opened (http vs https). Behind a reverse proxy, set TrustProxy: 1 so forwarded X-Forwarded-Proto is respected.

4. Start the bot

npm start

When startup succeeds you should see:

  • [Dashboard] API listening on http://localhost:3000
  • Discord bot login and slash command registration

Open http://localhost:3000 in your browser and sign in with Discord.

The web UI is shipped as static files in public/dashboard/ (included in this repository). You do not need a separate frontend build step.

Tip: On first run, invite the bot to your server with the permissions SupportBot needs. Set General.GuildId to that server’s ID so channel/role pickers and guild health checks work.

Dashboard access

Method Use case
Discord OAuth Normal use — open the site, click Continue with Discord, sign in as an owner or invited user
Bearer token Scripts and automation — Authorization: Bearer <SecretKey> on /api/* routes

Owners listed in api.yml (OwnerUserIds) always have full access. Additional users can be added under Users in the dashboard with granular permissions per config file and page.

Configuration

File Purpose
Configs/supportbot.yml Bot token, guild, staff roles, ticket channels, embed colours, etc.
Configs/ticket-panel.yml Ticket panel layout and buttons
Configs/commands.yml Enable/disable slash commands
Configs/messages.yml User-facing message strings
Configs/supportbot-ai.yml AI assistant settings
Configs/api.yml Dashboard port, session secret, OAuth
Addons/Configs/* Per-addon config (after installing from Addons page)

Most of these are editable from the sidebar under Tickets & support, Community, Server control, and Addons.

Addons

  1. Open Addons in the dashboard (or install manually into Addons/ as in the upstream docs)
  2. Click Install on an addon from the marketplace — files are copied into Addons/ and Addons/Configs/, then the bot restarts
  3. Edit the addon’s config from the Addons section in the left sidebar (same editor as core configs)
  4. Ensure General.Addons.Enabled is true in bot config

Official addon list: github.com/Emerald-Services/Addons

Upstream & credits

This fork is maintained independently. For bugs in core ticket/command behaviour that also exist upstream, consider reporting to the official repo. For dashboard-specific issues, use this repository’s issues.

License

Released under the MIT License, same as upstream SupportBot.

About

Dashboard for support bot

Resources

License

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 99.8%
  • Other 0.2%