A desktop application for managing CMAnGOS Classic WoW servers. This application combines an ASP.NET Core backend with a React frontend, packaged as an Electron desktop app.
- Account and character management
- Marketplace for character trading
- Bidding system
- Trade history tracking
- Auto-detection of CMAnGOS expansion (Classic, TBC, WotLK)
- .NET 8.0 SDK
- Node.js 20.x or later
- MySQL server with CMAnGOS databases
The backend API runs on http://localhost:5023 and provides access to CMAnGOS databases.
cd CMAnGOS-CMS-API.Server
dotnet restore
dotnet buildcd cmangos-cms-api.client
npm installTo run the application in development mode with hot-reload:
cd cmangos-cms-api.client
npm run electron:devThis will:
- Start the Vite dev server for the React frontend
- Launch Electron which will start the ASP.NET Core backend automatically
- Open DevTools for debugging
First, publish the backend for your target platform:
cd CMAnGOS-CMS-API.Server
dotnet publish -c Release -o bin/Release/net8.0/publishcd cmangos-cms-api.client
npm run electron:buildThis will create distributable packages in the release folder for your platform:
- Windows:
.exeinstaller and portable version - macOS:
.dmgand.zip - Linux:
.AppImageand.deb
Configure your MySQL connection strings in CMAnGOS-CMS-API.Server/appsettings.json:
{
"ConnectionStrings": {
"RealmdDatabase": "Server=localhost;Port=3306;Database={prefix}realmd;Uid=root;Pwd=;",
"CharactersDatabase": "Server=localhost;Port=3306;Database={prefix}characters;Uid=root;Pwd=;",
"MangosDatabase": "Server=localhost;Port=3306;Database={prefix}mangos;Uid=root;Pwd=;"
},
"CMAnGOS": {
"ExpansionPrefix": "classic",
"AutoDetectExpansion": true
}
}The {prefix} placeholder will be automatically replaced with the detected expansion prefix (classic, tbc, or wotlk).
.
├── CMAnGOS-CMS-API.Server/ # ASP.NET Core backend
│ ├── Controllers/ # API controllers
│ ├── Data/ # Database contexts
│ ├── Models/ # Data models
│ └── Services/ # Business logic
└── cmangos-cms-api.client/ # React + Electron frontend
├── src/ # React source code
├── electron/ # Electron main and preload scripts
├── dist/ # Built React app
└── dist-electron/ # Compiled Electron scripts
- Frontend: React 19 with TypeScript and Vite
- Backend: ASP.NET Core 8.0 Web API
- Desktop: Electron 35
- Database: MySQL with Pomelo.EntityFrameworkCore
- Packaging: electron-builder
The Electron main process manages the ASP.NET Core backend as a child process, ensuring proper startup and graceful shutdown.
This project is licensed under the terms specified in the LICENSE file.