Skip to content

Kyworn/azeroth-admin-panel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Azeroth Admin Panel

A web-based administration panel for AzerothCore World of Warcraft private servers. Manage accounts, characters, server status, and more through an intuitive web interface.

Features

  • Account Management

    • Create and manage WoW accounts
    • SRP6 password hashing (AzerothCore compatible)
    • Set account access levels (Player, GM, Admin)
    • Account locking/unlocking
    • View last login information
  • Server Control

    • Start/stop/restart server processes
    • Real-time server status monitoring
    • View server logs
    • Monitor CPU and memory usage
  • Character Management

    • View character information
    • Character database queries
    • Manage character data
  • Security

    • Secure authentication system
    • Session management
    • Environment-based configuration
    • No hardcoded credentials

Prerequisites

  • Python 3.8+
  • AzerothCore server installation
  • MySQL/MariaDB with AzerothCore databases:
    • acore_auth - Authentication database
    • acore_characters - Character database
    • acore_world - World database

Installation

1. Clone the Repository

git clone https://github.com/Kyworn/azeroth-admin-panel.git
cd azeroth-admin-panel

2. Install Dependencies

pip install -r requirements.txt

3. Configure Environment

Copy the example environment file and configure it:

cp .env.example .env
nano .env

Edit the .env file with your configuration:

# Flask Configuration
SECRET_KEY=your_generated_secret_key_here
FLASK_ENV=production

# MySQL Configuration
MYSQL_HOST=127.0.0.1
MYSQL_PORT=3306
MYSQL_USER=acore
MYSQL_PASSWORD=your_secure_password
MYSQL_AUTH_DB=acore_auth
MYSQL_CHARACTERS_DB=acore_characters
MYSQL_WORLD_DB=acore_world

# Server Configuration
SERVER_PATH=/path/to/azerothcore
LOG_PATH=/var/log/wow-admin-panel

Generate a secure SECRET_KEY:

python3 -c "import secrets; print(secrets.token_hex(32))"

4. Initialize Database

python3 -c "from app import db; db.create_all()"

5. Run the Application

Development:

python3 app.py

Production (with Gunicorn):

pip install gunicorn
gunicorn -w 4 -b 0.0.0.0:5000 app:app

The panel will be accessible at http://localhost:5000

Configuration

Environment Variables

Variable Description Default
SECRET_KEY Flask secret key for sessions Generated randomly
FLASK_ENV Flask environment (development/production) production
DATABASE_URL SQLite database for admin panel sqlite:///admin_panel.db
MYSQL_HOST MySQL server host 127.0.0.1
MYSQL_PORT MySQL server port 3306
MYSQL_USER MySQL username acore
MYSQL_PASSWORD MySQL password acore
MYSQL_AUTH_DB AzerothCore auth database acore_auth
MYSQL_CHARACTERS_DB AzerothCore characters database acore_characters
MYSQL_WORLD_DB AzerothCore world database acore_world
SERVER_PATH Path to AzerothCore installation /path/to/azerothcore
LOG_PATH Path for admin panel logs /var/log/wow-admin-panel

Usage

Creating an Account

  1. Navigate to the admin panel
  2. Click "Create Account"
  3. Enter username and password
  4. Set account access level:
    • 0 = Player
    • 1 = GM
    • 2 = Admin
  5. Account will be created with SRP6 password hashing

Managing the Server

  • View Status: Dashboard shows real-time server status
  • Start Server: Click "Start" button
  • Stop Server: Click "Stop" button
  • View Logs: Access server logs from the Logs tab

Monitoring

The dashboard displays:

  • Server uptime
  • CPU usage
  • Memory usage
  • Active players
  • Recent server events

Security Best Practices

Production Deployment

  1. Use a strong SECRET_KEY

    python3 -c "import secrets; print(secrets.token_hex(32))"
  2. Secure MySQL credentials

    • Use strong passwords
    • Limit MySQL user permissions
    • Create a dedicated user for the admin panel
  3. Use HTTPS

    • Configure reverse proxy (Nginx/Apache)
    • Use SSL certificates (Let's Encrypt)
  4. Restrict access

    • Use firewall rules
    • Implement IP whitelisting
    • Use VPN for remote access
  5. Regular updates

    • Keep dependencies updated
    • Monitor security advisories

Example Nginx Configuration

server {
    listen 80;
    server_name your-domain.com;
    return 301 https://$server_name$request_uri;
}

server {
    listen 443 ssl;
    server_name your-domain.com;

    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;

    location / {
        proxy_pass http://127.0.0.1:5000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

Systemd Service

Create /etc/systemd/system/azeroth-panel.service:

[Unit]
Description=Azeroth Admin Panel
After=network.target mysql.service

[Service]
Type=simple
User=www-data
WorkingDirectory=/path/to/azeroth-admin-panel
Environment="PATH=/usr/bin"
ExecStart=/usr/bin/gunicorn -w 4 -b 127.0.0.1:5000 app:app
Restart=always

[Install]
WantedBy=multi-user.target

Enable and start:

sudo systemctl daemon-reload
sudo systemctl enable azeroth-panel
sudo systemctl start azeroth-panel

Troubleshooting

MySQL Connection Errors

# Check MySQL service
systemctl status mysql

# Verify credentials
mysql -u acore -p -h 127.0.0.1

# Check database permissions
SHOW GRANTS FOR 'acore'@'localhost';

Permission Issues

# Ensure log directory exists and is writable
sudo mkdir -p /var/log/wow-admin-panel
sudo chown $USER:$USER /var/log/wow-admin-panel

Import Errors

# Reinstall dependencies
pip install -r requirements.txt --force-reinstall

AzerothCore Compatibility

This panel is designed for AzerothCore (WotLK 3.3.5a) and uses:

  • SRP6 password hashing for account creation
  • AzerothCore database schema
  • Compatible with AC-Web and similar panels

Tested with:

  • AzerothCore master branch
  • MySQL 8.0 / MariaDB 10.6+
  • Python 3.8 - 3.11

Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/improvement)
  3. Test thoroughly with AzerothCore
  4. Commit changes (git commit -m 'Add feature')
  5. Push to branch (git push origin feature/improvement)
  6. Open a Pull Request

License

This project is provided as-is for managing AzerothCore private servers.

Disclaimer

This tool is for managing private World of Warcraft servers using AzerothCore. It is not affiliated with or endorsed by Blizzard Entertainment. Use only for educational or development purposes on legally obtained server software.

Related Projects

Support

For issues or questions:

Author

Created by Kyworn

About

Web-based administration panel for AzerothCore WoW private servers - Account management, server control, and monitoring

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors