โน๏ธ NOTE: The Ghost configuration is designed to work with the Warcraft 1.26x client, but you can adjust it to work with 1.28x or higher. The default map is dota-6.83d-en.w3x, but any other is possible.
git clone https://github.com/acollazo25/pvpgn-ghost-docker.git
cd pvpgn-ghost-docker
mkdir "pvpgn"
docker run --rm -v $PWD/pvpgn/var:/tmp/var ender25/pvpgn-server:bnetd-d2cs-d2dbs-mysql cp -r /usr/local/var/pvpgn /tmp/var
docker run --rm -v $PWD/pvpgn/etc:/tmp/etc ender25/pvpgn-server:bnetd-d2cs-d2dbs-mysql cp -r /usr/local/etc/pvpgn /tmp/etc
mkdir "pvpgn"
docker run --rm -v %CD%/pvpgn/var:/tmp/var ender25/pvpgn-server:bnetd-d2cs-d2dbs-mysql cp -r /usr/local/var/pvpgn /tmp/var
docker run --rm -v %CD%/pvpgn/etc:/tmp/etc ender25/pvpgn-server:bnetd-d2cs-d2dbs-mysql cp -r /usr/local/etc/pvpgn /tmp/etc
- Copy
pvpgn/.env.example
topvpgn/.env
. Configure thepvpgn/.env
for the ssl termination of the statistics website, otherwise you can ignore it and continue with the next step.
Even if SSL termination is not configured the
pvpgn/.env
file must exist in the root of the directory.
cp pvpgn/.env.example pvpgn/.env
- Copy
ghostpp/.env.example
toghostpp/.env
. Configure theghostpp/.env
for the ssl termination of the statistics website, otherwise you can ignore it and continue with the next step.
Even if SSL termination is not configured the
ghostpp/.env
file must exist in the root of the directory.
cp ghostpp/.env.example ghostpp/.env
โ If SSL termination is not configured you must create a default proxy network.
docker network create proxy
- Edit the file
pvpgn/etc/pvpgn/bnetd.conf
and set the following settings.
storage_path = "sql:mode=mysql;host=pvpgn-db;name=bnetd;user=bnetd;pass=secret;default=0;prefix=pvpgn_"
- Up pvpgn database.
docker-compose up -d pvpgn-db
- Seed database.
docker-compose up -d ghostpp-db
docker exec -i ghostpp_databse mysql -ughost -psecret ghost < ghostpp/db-schema.sql
docker exec -i ghostpp_databse mysql -ughost -psecret ghost < ghostpp/db-populate.sql
docker-compose up -d pvpgn d2cs d2dbs ghostpp
- Get the IP assigned to your
ghostpp
service.
docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ghostpp_server
'192.168.224.3'
92.168.128.3
: ghostpp-service-ip
- In the first line of the
pvpgn/etc/pvpgn/address_translation.conf
file add the following.
<ghostpp-service-ip>:6320 <your-public-ip>:6320 NONE ANY
########################################################################################################
#------------------------------------------------------------------------------------------------------#
# Address Translation table #
#----------------------------------------------------------------------------
#
- Restart pvpgn service
docker-compose restart pvpgn
- Add the gateway to your battlenet servers
<your-public-ip>
. - Open your Warcraft client, go to battlenet and create a bot account, example user
bot
passwordsecret
. - Login and put any email.
- Copy the
ghostpp/config/default.cfg
toghostpp/config/ghost.cfg
.
cp ghostpp/config/default.cfg ghostpp/config/ghost.cfg
- Edit the file
ghostpp/config/ghost.cfg
and set the following settings. This is enough to start.
bnet_username = bot
bnet_password = secret
- Restart ghost service
docker-compose restart ghostpp
- You and your friends can now add this battlenet server, create an account, and join the self-created game.
- Edit the file
ghostpp/config/ghost.cfg
and set the following settings.
bnet_rootadmin = yourAccount friendAccount otherFriend
- Restart ghost service
docker-compose restart ghostpp
- To see the list of available commands visit Ghost++ Commands
- Copy
pvpgn-stats/config.inc.example.php
topvpgn-stats/config.inc.php
.
cp pvpgn-stats/config.inc.example.php pvpgn-stats/config.inc.php
server_URL = http://<your-public-ip>:8081/
- Edit
pvpgn-stats/config.inc.php
and set the following settings.
$homepage = "https://stats-domain.com/"; $ladderroot = "https://stats-domain.com/"; # include last / ...
3. Up pvpgn stats.
```shell
docker-compose up -d pvpgn-stats
- Run Seeders.
docker exec -i pvpgn_databse mysql -ubnetd -psecret bnetd < pvpgn-stats/migrations/d2ladder.sql
docker exec -i pvpgn_databse mysql -ubnetd -psecret bnetd < pvpgn-stats/migrations/stats.sql
- Open in browser [Pvpgn Stats](๐ http://127.0.0.1:9082/)
- Up service.
docker-compose up -d dota-stats
- Set stats page. Edit the file
pvpgn/etc/pvpgn/anongame_infos.conf
and set the following settings.
server_URL = http://<your-public-ip>:9081/
or
# SSL Configured
server_URL = https://dota-stats-domain.com
- Restart pvpgn server
docker-compose restart pvpgn
- Open in browser [Pvpgn Stats](๐ http://127.0.0.1:9081/)
docker-compose logs -f --tail 200 pvpgn
docker-compose logs -f --tail 200 ghostpp