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
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.
β οΈ Active Development β two ways to run it:
- Tagged release (recommended / production) β what the one-click installer & updater install. Stable.
developbranch β finished, tested features that aren't in a release yet.git clone -b develop β¦(orgit pullondevelop), then run the idempotentsql/setup.sql. See What's ondevelopfor 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.
- Features
- Preview
- Quick Start
- One-Click Installer
- What's on
develop - Documentation
- Support the Project
- License
- π 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_customizationpage: 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.phpstays 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
/newslist //news/{slug}detail pages and the homepage "Latest Updates" section. A starter "Welcome!" post is seeded bysql/setup.sqlon 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
/forumin 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
βΆ 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.
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.
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.
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.
"You died." β your players will never feel less lost. With a hidden murloc easter egg.
# 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.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" | iexBefore 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:
- Checks that it is running as Administrator.
- Shows the prerequisites and asks whether to continue before making any changes.
- Checks whether XAMPP already exists and lets you choose whether to reuse it or stop.
- Installs XAMPP 8.2 with
wingetwhen needed. - Downloads the latest prepared release ZIP and deploys it into
C:\xampp\htdocs\. - Enables the required PHP extensions in XAMPP's
php.ini. - Creates
config.phpfromconfig.sample.phpwith safe defaults. - 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. - 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:
recaptcharecover_passwordtickets
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/.
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 pullThen 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.
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.
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. π
βΉοΈ 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.
This project is licensed under the MIT License.








