- Always connected. Manage punishments from anywhere with seamless logins
- Cross platform. It doesn't matter what OS you use, it just works wherever Node.js runs
- Responsive interface. Manage your community from any device at any time
To learn more about configuration, usage and features of BanManager, take a look at the website or view the demo.
- Appeal punishments
- Ban, unban, mute, and warn players
- Review and manage reports on the go
- Custom roles and flexible permissions
- A single interface for multiple Minecraft servers
For deploying BanManager WebUI on your own server, see the full installation guide.
- Node.js LTS (v20 or v22)
- MySQL v5+ or MariaDB v10+
- Minecraft server with BanManager & BanManager-WebEnhancer plugins configured to use MySQL or MariaDB
git clone https://github.com/BanManagement/BanManager-WebUI.git
cd BanManager-WebUI
npm ci --production
npm run setupThe setup wizard will guide you through configuring your database connection and creating an admin account.
Want to contribute or run a local development environment? This section is for you.
# Clone the repository
git clone git@github.com:BanManagement/BanManager-WebUI.git
cd BanManager-WebUI
# Install dependencies
npm install
# Copy environment configuration
cp .env.example .env
# Start MySQL and seed the database (first time setup)
npm run dev:setup
# Start the development server
npm run devThe application will be available at http://localhost:3000
After seeding, the following accounts are available:
| Role | Password | |
|---|---|---|
| Guest | guest@banmanagement.com | testing |
| User | user@banmanagement.com | testing |
| Admin | admin@banmanagement.com | testing |
| Script | Description |
|---|---|
npm run dev:setup |
Start MySQL container and seed the database |
npm run dev |
Start development server with hot reloading |
npm run db:start |
Start the MySQL Docker container |
npm run db:stop |
Stop the MySQL Docker container |
npm run seed |
Run migrations and seed data (fails if DB exists) |
npm run seed:reset |
Drop existing database and re-seed |
npm run build |
Build for production |
npm run test |
Run linting and tests |
npm run lint |
Run linting only |
npm run cypress |
Open Cypress for E2E tests |
Copy .env.example to .env and adjust as needed. Key variables:
DB_HOST,DB_PORT,DB_USER,DB_PASSWORD,DB_NAME- Database connectionADMIN_USERNAME,ADMIN_PASSWORD- Admin account credentials (also used by Cypress)ENCRYPTION_KEY,SESSION_KEY- Security keys (generate unique values for production)
To reset the database with fresh seed data:
npm run seed:reset# Run all tests
npm run test
# Run Cypress E2E tests
npm run cypressIf you'd like to contribute, please fork the repository and use a feature branch. Pull requests are warmly welcome.
If you have found a bug please open an issue with as much detail as possible, including relevant logs and screenshots where applicable
Have an idea for a new feature? Feel free to open an issue or join us on Discord to chat
Free to use under the MIT
Click to view



