Skip to content

Latest commit

Β 

History

143 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ‰ New from me β€” WOW Legends: a free WotLK 3.3.5a repack

Building a WoW server with this portal? You might like my latest project too β€” run your own living Wrath of the Lich King (3.3.5a) world in a few clicks, with hundreds of AI-driven bots, an AI companion that chats back, hardcore mode and a one-click installer.

β–Ά Check it out β†’ wow-legends.eu


WoW Mists of Pandaria Registration Portal

A complete, secure, and modern registration portal for World of Warcraft: Mists of Pandaria (5.4.8) private servers. Built for TrinityCore-based cores (including repacks).

🌐 Live demo: wow-legends.eu β€” every feature you see in this README is running there.

PHP 8.0+ Bootstrap 5 License: MIT Status: In Development GitHub Release Live Demo

⚠️ Active Development β€” two ways to run it:

  • Tagged release (recommended / production) β€” what the one-click installer & updater install. Stable.
  • develop branch β€” finished, tested features that aren't in a release yet. git clone -b develop … (or git pull on develop), then run the idempotent sql/setup.sql. See What's on develop for the current list.

πŸ’› Enjoying the portal? It's free and open-source, built and maintained in spare time. If it saved you hours of setup or you'd like to see it keep growing, a coffee genuinely helps β€” see Support the Project.

Support the project on Ko-fi

Table of Contents

Features

  • πŸ”’ Security β€” CSRF tokens, Google reCAPTCHA v2, PDO prepared statements, PHP-execution blocking on uploads
  • πŸ›‘οΈ Rate Limiting β€” Automatic lockout after failed login attempts (configurable)
  • πŸ—οΈ Auth β€” SHA-1 password hashing matching the TrinityCore format
  • πŸ“§ Email β€” SMTP password recovery and ticket notifications via PHPMailer
  • πŸ“Š Live Stats β€” Real-time server status, player counts, and animated counters
  • 🌍 Multilingual β€” English and Spanish included; adding a language is no-code (drop lang/<code>.php, enable it in the admin)
  • 🎨 Modern UI β€” Dark gaming theme, Bootstrap 5, responsive design; the accent recolours the whole site
  • πŸ› οΈ Site Customization (no-code, update-safe) β€” one GM-only /admin_customization page: Theme & branding (accent / preset palettes / logos / favicon / hero background, live preview), a drag-and-drop home-page designer (reorder & toggle built-ins, add card-grid / text / CTA / Q&A sections), an editable footer, languages, and the presentational site settings (titles, social links, Ko-fi/playtime/vote config). All DB-stored β€” config.php stays the untouched fallback, so changes survive updates.
  • βš™οΈ Feature Flags β€” Toggle tickets, password recovery, reCAPTCHA, and maintenance mode from config
  • πŸ§‘β€πŸ’Ό Admin Dashboard β€” Account management, ban/unban, ticket management, audit log, character lookup, IP bans, email broadcast
  • πŸ” Public Armory β€” Search any character on the realm; profile pages with equipped gear (Wowhead tooltips), stats, achievements, and account-mate links
  • πŸ† Leaderboards β€” Top players by level, playtime, gold, PvP kills, Arena rating (2v2 / 3v3 / Rated BG, current season), and achievements, plus top guilds β€” with faction filters and gold/silver/bronze top-3 styling
  • πŸ’Ž Playtime Reward β€” Auto-grants Battle Pay (DP) for time spent in-game; configurable hourly rate + daily cap. AFK still counts, login/logout farming doesn't.
  • πŸ’€ Custom 404 Page β€” Themed "You died." page with floating Spirit Healer art and a hidden murloc easter egg
  • πŸ”— OG / Twitter Cards β€” Rich previews when sharing armory and leaderboard links on Discord, Twitter, etc.
  • 🎫 Ticket System β€” Multi-turn conversation threads (user ↔ GM), Markdown formatting, image attachments with auth-gated serving, separate detail pages, and audit-logged status changes
  • πŸ“° News / Blog β€” Admin-managed posts with a GitHub-style EasyMDE editor (toolbar with bold/headings/lists/links/tables, drag-and-drop image upload, side-by-side preview, fullscreen mode). Posts are stored as Markdown in the DB, render server-side through Parsedown safe mode, have draft/published states with windowed pagination, and feed both the public /news list / /news/{slug} detail pages and the homepage "Latest Updates" section. A starter "Welcome!" post is seeded by sql/setup.sql on first install.
  • πŸ’¬ Forum β€” Lean community forum with categories, threads, replies, per-user approval workflow (auto-publish kicks in after N approved posts; configurable, 0 = auto-publish everyone), forum-only bans that don't affect game login, EasyMDE composer with image uploads, sticky/locked threads, inline GM moderation (approve / delete / lock / sticky on the thread itself), per-session view de-dupe, and a 30-second anti-spam cooldown. Disabled by default β€” admin flips one toggle to expose /forum in the navbar.
  • πŸ‘€ User Avatars β€” Each user can upload an avatar from the dashboard. When no avatar is uploaded, a deterministic colored-initials badge is rendered (no external service like Gravatar). Avatars appear on the dashboard, the navbar dropdown, and next to every forum post.
  • ❓ FAQ β€” Configurable FAQ accordion on the home page
  • πŸ—³οΈ Vote System β€” Vote site links on the user dashboard (configurable)
  • πŸ”— Social Links β€” Discord, YouTube, X (Twitter), Instagram β€” each individually toggleable

Preview

β–Ά See it running live β†’ wow-legends.eu β€” the live demo tracks the latest develop, so it's always the most accurate look (themed accent, custom home-page sections, current UI). The shots below are just a snapshot; admin tooling is covered in docs/ADMIN.md.

Home Page

Home Page

Customization β€” no-code, update-safe

One GM-only page (/admin_customization): Theme & branding (accent / preset palettes / logos / favicon / hero background + live preview), a section-based home-page designer (drag-reorder, toggle, add card-grid / text / CTA / Q&A), an editable footer, languages, and the presentational site settings β€” all DB-stored and survives updates.

Customization

User Dashboard

User Dashboard

Public Armory

Public Armory

Leaderboards

Leaderboards

Public Shop

The player-facing /shop β€” an in-game-shop-styled, read-only catalog of everything buyable with Battle Coins (left category rail, real item icons + hover tooltips via Wowhead), the logged-in user's balance, and the Ko-fi donate panel with a personal attribution code.

Public Shop

Community Forum

Threads on /forum/{category}/{thread} β€” categories, stickies/announcements, per-category posting policy, and (for GM 9+) inline Mod tools. Full forum admin lives in docs/ADMIN.md.

Community Forum

Custom 404 Page

"You died." β€” your players will never feel less lost. With a hidden murloc easter egg.

404 Page


Quick Start

# 1. Install XAMPP β€” https://www.apachefriends.org/
# 2. Serve this project from your Apache web root or a dedicated VirtualHost/Alias
#    Do not run it from a subfolder such as /wow-legends without remapping DocumentRoot

# 3. Copy the sample config
copy config.sample.php config.php

# 4. Edit config.php with your DB credentials, realm info, site base URL, reCAPTCHA keys, etc.

# 5. Run the SQL setup (see docs/INSTALL.md -> Database Setup)

# 6. Start Apache from the XAMPP Control Panel (your repack already runs its own MySQL)

# 7. Visit the URL configured in config.php, for example http://localhost/
#
# Note: vendor/ (PHPMailer, Parsedown) is committed to the repo, so no
# `composer install` step is needed for a normal install.

One-Click Installer

Windows users can bootstrap a guided installer with PowerShell:

Open PowerShell as Administrator, then run:

irm "https://raw.githubusercontent.com/timoinglin/wow-mop-registration/main/install.ps1" | iex

One-Click Installer Screenshot

Before running it, make sure your WoW repack is already installed and its database server is already running. The installer sets up the website and local web server; it does not install or start the repack itself.

If you do not already have a repack, you can get one from EmuCoach.

What the installer does:

  1. Checks that it is running as Administrator.
  2. Shows the prerequisites and asks whether to continue before making any changes.
  3. Checks whether XAMPP already exists and lets you choose whether to reuse it or stop.
  4. Installs XAMPP 8.2 with winget when needed.
  5. Downloads the latest prepared release ZIP and deploys it into C:\xampp\htdocs\.
  6. Enables the required PHP extensions in XAMPP's php.ini.
  7. Creates config.php from config.sample.php with safe defaults.
  8. Prompts for database credentials, validates the MySQL server connection, verifies that the entered auth/characters database names exist, and offers to import sql/setup.sql.
  9. Starts Apache and opens http://localhost/.

The installer intentionally disables advanced features in the generated config.php so the site can come up cleanly on first run:

  • recaptcha
  • recover_password
  • tickets

It also sets site.base_url to http://localhost and leaves social/client links empty.

After the installer finishes, open config.php and add your reCAPTCHA keys and SMTP settings before enabling those features.

Warning

The installer is designed for a fresh local XAMPP setup. If C:\xampp\htdocs\ already contains files, it offers to back them up and then replaces the web root contents so the app can run at http://localhost/.


What's on develop (not yet released)

These features are finished and tested but haven't been bundled into a tagged release yet. To run them now:

git clone -b develop https://github.com/timoinglin/wow-mop-registration.git
# already installed? from your install folder:
git checkout develop && git pull

Then run sql/setup.sql once (it's idempotent β€” safe to re-run). These fold into the next release automatically.

Nothing pending β€” the latest tagged release is fully current. Check back after the next development push.

Empty = the latest tagged release is fully current.


Documentation

Full guides live in the docs/ folder so this README stays focused on what the project is and how to get it running:

Guide What's inside
Installation Requirements, manual setup, database, the configuration steps, feature flags, mod_rewrite
Updating The one-click updater, Git & manual paths, and every version-specific upgrade guide
Admin & Customization Admin dashboard & GM ranks, managing News / Forum / In-Game Shop & Ko-fi donations, and the no-code Customization suite (theme & branding, home-page designer, footer, languages, site settings)
Security Notes What's protected out of the box and what you must configure
Troubleshooting Common issues and their fixes
Shop DB Schema Reverse-engineered battle_pay_* reference for debugging / hand-editing the in-game shop

New here? Use the One-Click Installer above, or follow the manual Installation guide.


Support the Project

This portal is free and MIT-licensed, and it always will be β€” no paywall, no locked features. But a lot of evenings and weekends go into building it, testing every release on a live realm, writing the docs, and helping people get their servers online.

If this saved you real development time, helped you launch your community, or you simply like where it's heading, a small tip keeps the momentum going β€” new features, fixes, and support. Every coffee is hugely appreciated and genuinely motivating. πŸ’›

Support the project on Ko-fi

ℹ️ This supports development of the open-source portal itself. It is separate from the in-app Ko-fi donations feature, which is something you configure to credit Battle Coins to your players.


License

This project is licensed under the MIT License.

About

A complete, secure, and modern registration portal and CMS for World of Warcraft: Mists of Pandaria (5.4.8) private servers. Built for TrinityCore repacks with PHP 8+ and Bootstrap 5.

Topics

Resources

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages