Autoupdater, Launcher, and Alerts HOWTO

Description and Credit

This is a way to make patching modern WoW clients easy. It will allow a server operator to control the game client version, as well as control when it downloads updates. Other added bonuses include being able to have your own launcher page, as well as control the alerts section on the front page. This is done by redirecting the official URLs to your server IP address via the hosts file on the client side. You do not have to 'register' any of these domains... as it would be impossible to do so.

US Domains:

us.version.worldofwarcraft.com
launcher.worldofwarcraft.com

EU Domains:

eu.version.worldofwarcraft.com
launcher.wow-europe.com
status.wow-europe.com

This project was originally taken on by Trinity member Elegos, this write up would not be possible without his help. If you find this guide useful, make sure to visit the original thread here, and press the thanks button!

Installation and Configuration

Prerequisites

  • Apache (must know how to install and configure, no help will be given for this)
  • Knowledge of VirtualHosts
  • XML knowledge (if you want it to look nice!)
  • Static external or internal server IP address

Configuring Apache

First we'll need to configure a location to store our files. As an example, we're going to use /www/wowserver. We will need to create two directories:

/www/wowserver/update

/www/wowserver/2.0

Now that we have our base layout made, we're going to need to configure the apache virtualhost to listen for incoming connections via the official domains listed above. Here is an example virtualhost entry, including turning on name based virtual hosts.

  1. Use name-based virtual hosting.
    NameVirtualHost *:80
    <VirtualHost *:80>
    ServerName 192.168.1.1 #YOUR SERVER IP WILL GO HERE!!!! DON'T USE THIS ONE
    ServerAlias launcher.worldofwarcraft.com us.version.worldofwarcraft.com
    ServerAdmin webmaster@yourdomain.net
    DocumentRoot /www/wowserver/
    </VirtualHost>

If you want to add EU URL support, simply add them to the ServerAlias line.

Files, and what they are used for

Now that we have our virtualhosts configured, we can start creating the files necessary for the patching magic to happen. If you point your browser to http://us.version.worldofwarcraft.com/update/PatchSequenceFile.txt you will see the main file used for patching. Here is what I have been able to figure out about the different sections:

special Not sure what this is for
expansion-speech-{LANG}=WoW-2.0.0.6080-expansion-speech-{CPU}{OS}{LANG}

GAME I believe this is for updating older clients, such as 2.4.3 to current, then it passes it to the WoW section
CurrentBuild=9920
6080=WoW-installer-2.x.x.x-to-3.0.1.8874-{CPU}{OS}{LANG}
6546=WoW-installer-2.x.x.x-to-3.0.1.8874-{PLATFORM}{OS}{LANG}
6692=WoW-installer-2.x.x.x-to-3.0.1.8874-{CPU}{OS}{LANG}
6729=WoW-installer-2.x.x.x-to-3.0.1.8874-{CPU}{OS}{LANG}
6739=WoW-installer-2.x.x.x-to-3.0.1.8874-{CPU}{OS}{LANG}
6803=WoW-installer-2.x.x.x-to-3.0.1.8874-{CPU}{OS}{LANG}
6898=WoW-installer-2.x.x.x-to-3.0.1.8874-{CPU}{OS}{LANG}
7272=WoW-installer-2.x.x.x-to-3.0.1.8874-{CPU}{OS}{LANG}
7318=WoW-installer-2.x.x.x-to-3.0.1.8874-{CPU}{OS}{LANG}
7359=WoW-installer-2.x.x.x-to-3.0.1.8874-{CPU}{OS}{LANG}
7561=WoW-installer-2.x.x.x-to-3.0.1.8874-{CPU}{OS}{LANG}
7741=WoW-installer-2.x.x.x-to-3.0.1.8874-{CPU}{OS}{LANG}
7799=WoW-installer-2.x.x.x-to-3.0.1.8874-{CPU}{OS}{LANG}
8089=WoW-installer-2.x.x.x-to-3.0.1.8874-{CPU}{OS}{LANG}
8125=WoW-installer-2.x.x.x-to-3.0.1.8874-{CPU}{OS}{LANG}
8278=WoW-installer-2.x.x.x-to-3.0.1.8874-{CPU}{OS}{LANG}
8606=WoW-installer-2.x.x.x-to-3.0.1.8874-{CPU}{OS}{LANG}
8874=WoW-3.0.1.8874-3.0.2.9056-{CPU}{OS}{LANG}
9056=WoW-3.0.2.9056-3.0.3.9183-{CPU}{OS}{LANG}
9183=WoW-3.0.3.9183-3.0.8.9464-{CPU}{OS}{LANG}
9192=WoW-3.0.3.9192-3.0.8.9464-{CPU}{OS}{LANG}
9464=WoW-3.0.8.9464-3.0.9.9551-{CPU}{OS}{LANG}
9551=WoW-3.0.9.9551-3.1.0.9767-{CPU}{OS}{LANG}
9653=WoW-3.0.9.9653-3.1.0.9767-{CPU}{OS}{LANG}
9805=WoW-3.1.0.9805-3.1.2.9920-{CPU}{OS}{LANG}

WoWT Needed for the test realm, you can safely remove this section
CurrentBuild=9901
8874=WoW-0.x.x.x-0.1.2.9855-{CPU}{OS}{LANG}
9149=WoW-0.x.x.x-0.1.2.9855-{CPU}{OS}{LANG}
9167=WoW-0.x.x.x-0.1.2.9855-{CPU}{OS}{LANG}
9174=WoW-0.x.x.x-0.1.2.9855-{CPU}{OS}{LANG}
9355=WoW-0.x.x.x-0.1.2.9855-{CPU}{OS}{LANG}
9386=WoW-0.x.x.x-0.1.2.9855-{CPU}{OS}{LANG}
9438=WoW-0.x.x.x-0.1.2.9855-{CPU}{OS}{LANG}
9464=WoW-0.x.x.x-0.1.2.9855-{CPU}{OS}{LANG}
9614=WoW-0.x.x.x-0.1.2.9855-{CPU}{OS}{LANG}
9626=WoW-0.x.x.x-0.1.2.9855-{CPU}{OS}{LANG}
9637=WoW-0.x.x.x-0.1.2.9855-{CPU}{OS}{LANG}
9658=WoW-0.x.x.x-0.1.2.9855-{CPU}{OS}{LANG}
9684=WoW-0.x.x.x-0.1.2.9855-{CPU}{OS}{LANG}
9704=WoW-0.x.x.x-0.1.2.9855-{CPU}{OS}{LANG}
9722=WoW-0.x.x.x-0.1.2.9855-{CPU}{OS}{LANG}
9733=WoW-0.x.x.x-0.1.2.9855-{CPU}{OS}{LANG}
9742=WoW-0.x.x.x-0.1.2.9855-{CPU}{OS}{LANG}
9757=WoW-0.x.x.x-0.1.2.9855-{CPU}{OS}{LANG}
9855=WoW-0.1.2.9855-0.1.2.9868-{CPU}{OS}{LANG}
9868=WoW-0.1.2.9868-0.1.2.9889-{CPU}{OS}{LANG}
9889=WoW-0.1.2.9889-0.1.2.9901-{CPU}{OS}{LANG}

WoW Current version of WoW client, will control any 3.x patching
CurrentBuild=9947
8874=WoW-3.0.1.8874-3.0.2.9056-{CPU}{OS}{LANG}
9056=WoW-3.0.2.9056-3.0.3.9183-{CPU}{OS}{LANG}
9183=WoW-3.0.3.9183-3.0.8.9464-{CPU}{OS}{LANG}
9464=WoW-3.0.8.9464-3.0.8.9506-{CPU}{OS}{LANG}
9506=WoW-3.0.8.9506-3.0.9.9551-{CPU}{OS}{LANG}
9551=WoW-3.0.9.9551-3.1.0.9767-{CPU}{OS}{LANG}
9767=WoW-3.1.0.9767-3.1.1.9806-{CPU}{OS}{LANG}
9806=WoW-3.1.1.9806-3.1.1.9835-{CPU}{OS}{LANG}
9835=WoW-3.1.1.9835-3.1.2.9901-{CPU}{OS}{LANG}
9901=WoW-3.1.2.9901-3.1.3.9947-{CPU}{OS}{LANG}

GAME-STREAMING Not sure, but I keep the current build the same as the game section, haven't tested if it can be removed
CurrentBuild=9920
9192=WoW-3.0.3.9192-3.0.8.9464-{CPU}{OS}{LANG}
9464=WoW-3.0.8.9464-3.0.9.9551-{CPU}{OS}{LANG}
9551=WoW-3.0.9.9551-3.1.0.9767-{CPU}{OS}{LANG}
9551=WoW-3.0.9.9551-3.1.0.9767-{CPU}{OS}{LANG}
9653=WoW-3.0.9.9653-3.1.0.9767-{CPU}{OS}{LANG}
9805=WoW-3.1.0.9805-3.1.2.9920-{CPU}{OS}{LANG}

LAUNCHER This is the version of the launcher
CurrentBuild=491
213=Tools-1.6.0.213-{CPU}{OS}{LANG}-UPDATE
338=Tools-2.0.0.491-{CPU}{OS}{LANG}-UPDATE
347=Tools-2.0.0.491-{CPU}{OS}{LANG}-UPDATE
374=Tools-1.7.0.476-{CPU}{OS}{LANG}-UPDATE
380=Tools-2.0.0.482-{CPU}{OS}{LANG}-UPDATE
387=Tools-2.0.0.491-{CPU}{OS}{LANG}-UPDATE
420=Tools-2.0.0.482-{CPU}{OS}{LANG}-UPDATE
444=Tools-2.0.0.482-{CPU}{OS}{LANG}-UPDATE
446=Tools-2.0.0.491-{CPU}{OS}{LANG}-UPDATE
481=Tools-2.0.0.491-{CPU}{OS}{LANG}-UPDATE

To set which version your clients patch to, you always look at the last set of four numbers in the version in question, so setting CurrentBuild=9551 will update your clients to 3.0.9 9805=WoW-3.0.8.9506-3.0.9.<u><b>9551</b></u>{CPU}{OS}-{LANG}

Scripts

Hosts file changer for windows

This script can be used on the client side to add the hosts file changes automatically. If it's run a second time, it will remove the changes made to the hosts file. This will allow someone who wants to play on official to easily change back and forth.

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: ::
:: Braingoo trinity host file switcher ::
:: ::
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

@echo off

::::::::::::::::::::::::::::::::::
:: ::
:: Main Script ::
:: ::
::::::::::::::::::::::::::::::::::

call :verify_hosts_file
call :verify_hosts_backup
GOTO :EOF

::::::::::::::::::::::::::::::::::
:: ::
:: Sanity Checks ::
:: ::
::::::::::::::::::::::::::::::::::

:verify_hosts_file
echo Checking for hosts file...
IF EXIST "C:\WINDOWS\system32\drivers\etc\hosts" (echo hosts file found! & goto :EOF)
echo No hosts file found!!! Generating default windows hosts file.
echo # Copyright (c) 1993-1999 Microsoft Corp. >> c:\windows\system32\drivers\etc\hosts
echo # >> c:\windows\system32\drivers\etc\hosts
echo # This is a sample HOSTS file used by Microsoft TCP/IP for Windows. >> c:\windows\system32\drivers\etc\hosts
echo # >> c:\windows\system32\drivers\etc\hosts
echo # This file contains the mappings of IP addresses to host names. Each >> c:\windows\system32\drivers\etc\hosts
echo # entry should be kept on an individual line. The IP address should >> c:\windows\system32\drivers\etc\hosts
echo # be placed in the first column followed by the corresponding host name. >> c:\windows\system32\drivers\etc\hosts
echo # The IP address and the host name should be separated by at least one >> c:\windows\system32\drivers\etc\hosts
echo # space. >> c:\windows\system32\drivers\etc\hosts
echo # >> c:\windows\system32\drivers\etc\hosts
echo # Additionally, comments (such as these) may be inserted on individual >> c:\windows\system32\drivers\etc\hosts
echo # lines or following the machine name denoted by a '#' symbol. >> c:\windows\system32\drivers\etc\hosts
echo # >> c:\windows\system32\drivers\etc\hosts
echo # For example: >> c:\windows\system32\drivers\etc\hosts
echo # >> c:\windows\system32\drivers\etc\hosts
echo # 102.54.94.97 rhino.acme.com # source server >> c:\windows\system32\drivers\etc\hosts
echo # 38.25.63.10 x.acme.com # x client host >> c:\windows\system32\drivers\etc\hosts
echo. >> c:\windows\system32\drivers\etc\hosts
echo 127.0.0.1 localhost >> c:\windows\system32\drivers\etc\hosts
echo Generated default hosts file. Moving on...
goto :EOF

:verify_hosts_backup
echo Checking for hosts.bak...
IF EXIST "c:\windows\system32\drivers\etc\hosts.bak" (echo hosts file backup found... & goto :revert_hosts)
echo no backup found, adding in hosts file changes!
goto :change_hosts

::::::::::::::::::::::::::::::::::
:: ::
:: Hosts change subs ::
:: ::
::::::::::::::::::::::::::::::::::

:change_hosts
echo Backing up origional hosts file!
copy "c:\windows\system32\drivers\etc\hosts" "c:\windows\system32\drivers\etc\hosts.bak"
echo 208.94.241.197 us.version.worldofwarcraft.com >> c:\windows\system32\drivers\etc\hosts
echo 208.94.241.197 launcher.worldofwarcraft.com >> c:\windows\system32\drivers\etc\hosts
echo 208.94.241.197 us.logon.worldofwarcraft.com >> c:\windows\system32\drivers\etc\hosts
echo added in braingoo hosts redirects, ready to play! To play official WoW, just run this script again!
pause
goto :EOF

:revert_hosts
echo Removing old hosts file...
del "c:\windows\system32\drivers\etc\hosts"
echo copying backup to c:\windows\system32\drivers\etc\hosts
move "c:\windows\system32\drivers\etc\hosts.bak" "c:\windows\system32\drivers\etc\hosts"
echo restore complete, ready to play on official WoW servers again!
pause
goto :EOF

Linux Patch Torrent Grabber

Coming soon!