| 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 |
About · Features · Requirements · Getting started · Dashboard access · Configuration · Addons · Development · Upstream & credits · License
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.
| 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 |
- 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 (
SecretKeyinapi.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
| 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).
git clone https://github.com/C-h-a-r/SupportBot-Dashboard.git
cd SupportBot-Dashboard
npm installEdit Configs/supportbot.yml:
- Set
General.Tokento your bot token - Set
General.GuildIdto 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.
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
- Create an application at discord.com/developers/applications
- 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/callbackandhttps://bot.example.com/api/auth/discord/callback. - Use the same app’s Client ID and Client Secret in
api.yml - Put your Discord user ID in
OwnerUserIdsfor 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.
npm startWhen 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.GuildIdto that server’s ID so channel/role pickers and guild health checks work.
| 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.
| 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.
- Open Addons in the dashboard (or install manually into
Addons/as in the upstream docs) - Click Install on an addon from the marketplace — files are copied into
Addons/andAddons/Configs/, then the bot restarts - Edit the addon’s config from the Addons section in the left sidebar (same editor as core configs)
- Ensure
General.Addons.Enabledistruein bot config
Official addon list: github.com/Emerald-Services/Addons
- Original project: Emerald-Services/SupportBot — MIT license, ticket bot for Discord
- Official addons: Emerald-Services/Addons
- Community: Emerald Discord · Wiki
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.
Released under the MIT License, same as upstream SupportBot.
