A self-hosted, real-time web dashboard for interacting with Discord channels through a bot.
Report Bug
·
Request Feature
Table of Contents
This project provides a web-based dashboard that acts as a proxy for a Discord bot. It allows a user to view guilds, browse channels, and interact with messages in real-time through a clean, Discord-like user interface. All interactions—sending messages, replying, reacting, editing, and deleting—are performed by the bot on the user's behalf.
The entire application is containerized with Docker for easy setup and deployment, featuring a multi-stage build process to create a lightweight and secure production image.
To get a local instance up and running, follow these steps.
You will need the following software and credentials before starting.
- Node.js (v18+)
- Docker and Docker Compose
- A Discord Bot Token. You can create an application and get a token from the Discord Developer Portal. Your bot will need the following intents enabled:
Guilds
GuildMessages
MessageContent
GuildMessageReactions
- Clone the repository:
git clone https://github.com/aditsuru-git/discord-message-proxy.git cd discord-message-proxy
- Create a
.env
file from the sample. This file will hold your secret token.cp .env.sample .env
- Edit the
.env
file and add your Discord bot token:# The Discord bot's authentication token DISCORD_BOT_TOKEN=YOUR_DISCORD_BOT_TOKEN_HERE
- Build and run the application using Docker Compose. The
-d
flag runs the container in detached mode (in the background).The web dashboard will be available atdocker compose up --build -d
http://localhost:3000
.
Once the application is running, open your web browser to http://localhost:3000
. The interface allows you to select a server (guild) from the left-most panel, choose a channel, and view/interact with messages in real-time.
- Real-Time Dashboard: A clean, responsive UI for interacting with Discord channels.
- Guild & Channel Navigation: Browse all servers and text channels your bot has access to.
- Full Message CRUD:
- Send and reply to messages.
- Edit and delete messages sent by the bot.
- Reaction Support: Add or remove reactions on any message as the bot.
- Event-Driven Backend: Uses Socket.IO for efficient, real-time communication between the frontend and the Discord bot.
- Containerized: Fully configured with Docker and Docker Compose for a simple, one-command setup.
The application's behavior can be modified through the .env
file. The primary variable you must set is the DISCORD_BOT_TOKEN
.
Variable | Description | Default |
---|---|---|
PORT |
The port the backend server will run on. | 3000 |
NODE_ENV |
The Node.js environment. | development |
FRONTEND_URL |
The URL of the frontend (for CORS in dev mode). | http://localhost:5173 |
DISCORD_BOT_TOKEN |
Required. Your Discord bot's secret token. | null |
Distributed under the MIT License. See LICENSE
for more information.
This project relies on these fantastic open-source libraries and services.