Discord desktop client patched to talk to a self-hosted backend. The Electron shell and UI stay original — only the API endpoints redirect to loopback.
- Windows with Discord, Discord PTB or Discord Canary installed
The panel installs Node.js, PostgreSQL and Go when they are missing. It generates localhost TLS through Windows and never requires OpenSSL. Discord itself is intentionally not installed by REvengeCord.
Double-click REvengeCord.cmd.
First run: choose Install / repair REvengeCord. The setup panel installs the required tools, prepares PostgreSQL, installs the locked npm tree, builds the backend and SFU, and creates the local TLS certificate. Then patch an installed Discord channel and choose Start REvengeCord and open Discord.
PostgreSQL is configured automatically. The panel does not ask for a database password.
Register from the client's own signup screen.
Menu controls: arrow keys to move, Enter to select, Escape to go back. The installer is resumable and skips healthy components.
Choose Admin console (advanced) in the menu, or run directly:
node scripts\admin\cli.mjs <command>
| Command | Description |
|---|---|
users [limit] |
list accounts |
show <user> |
everything about one account |
badge <user> <name>... |
toggle badges on/off |
badge <user> clear |
remove all badges |
ban <user> / unban <user> |
disable or re-enable an account |
operator <user> |
toggle full server rights |
rename <user> <username> |
change a username |
guilds [limit] |
list servers |
boost <guild> <boosts> |
set boost count (level follows: 2→1, 7→2, 14→3) |
tag <guild> <TAG> [badge] [#primary] [#secondary] |
set server tag and badge |
tag <guild> none |
remove server tag |
serverbadge <guild> <name> |
toggle partner or verified badge |
delguild <id> |
delete a server |
<user> accepts an id, username or email.
Badges toggle — naming a badge that is already on turns it off. Nitro tiers are badge names: naming one enables Nitro and backdates the subscription, naming a different tier switches, naming the same tier again removes it.
| Nitro tier | Subscription age |
|---|---|
nitro |
today |
bronze |
1 month |
silver |
3 months |
gold |
6 months |
platinum |
1 year |
diamond |
2 years |
emerald |
3 years |
ruby |
5 years |
opal |
6 years |
| Port | Service |
|---|---|
| 8090 | proxy (main) |
| 8091 | proxy (voice gateway TLS) |
| 3011 | backend server |
| 3004 | backend voice gateway |
| 5005 | pion SFU, UDP |
All logs are in logs/.
| File | Content |
|---|---|
proxy.log |
one line per request: status, route, duration, size |
server.log |
backend output |
client.log, client.err.log |
Electron shell and renderer |
sfu.log |
voice SFU |
Choose View logs to tail all files live, colour-coded by source. Or use the script directly:
.\scripts\logs.ps1 proxy # only the proxy
.\scripts\logs.ps1 client # only the Discord shell
.\scripts\logs.ps1 all "404|500" # filter by patternSet PROXY_VERBOSE=1 to print every proxy request to the console (errors only by default).
The default file storage, local image resizing and SMTP provider are ready from the base install. S3 storage, the PNG widget renderer (canvas) and external mail providers are optional capabilities; the server reports the missing provider clearly instead of failing during startup.
$repositoryTests = @(
Get-ChildItem scripts -Filter *.test.mjs -File
Get-ChildItem proxy\test -Filter *.test.js -File
Get-ChildItem scripts\patcher -Filter *.test.mjs -File
Get-ChildItem scripts\admin -Filter *.test.mjs -File
)
node --test $repositoryTests.FullName
Set-Location server
npm run lint
npm run build
npm run node:tests
Set-Location ..\webrtc\pion-sfu
go test ./...The commands cover repository scripts and proxy tests, backend tests and the Go SFU package.
The project does not redistribute Discord. The patcher modifies an installation already on the machine and backs up the original app.asar with a SHA-256 check before touching anything.
See docs/architecture.md, docs/operations.md, docs/backend-coverage.md, and THIRD-PARTY-NOTICES.md for the service boundaries, recovery procedures, verified feature coverage, and attribution boundaries.