Creating a WoW Private Server Using Docker

World of Warcraft (WoW) private servers offer a unique playground for nostalgia, customization, and game mechanics exploration. While the setup process can be daunting, Docker simplifies it significantly by providing isolated environments and streamlined management. Let’s delve into how you can leverage this powerful tool to bring your Azeroth dreams to life.


Before we embark on this journey, ensure you have the following:

  • Linux Environment: A Linux server or a virtual machine is ideal. Docker’s native compatibility with Linux ensures optimal performance.
  • Docker and Docker Compose: Install Docker and Docker Compose on your system. Detailed instructions can be found in the official Docker documentation.
  • WoW Server Emulator: We’ll use AzerothCore, a renowned open-source emulator known for its stability and community support. Choose the version matching your desired WoW expansion.
  • WoW Client: Obtain the WoW client files corresponding to the expansion you’ll be emulating.

Blueprint: Crafting Your docker-compose.yml File

The docker-compose.yml file acts as the architectural blueprint for your server. It orchestrates the various services required, including the database and the world server. Let’s construct this file:


version: '3.8'

    image: mysql:8
    restart: always
      - MYSQL_ROOT_PASSWORD=<your_root_password>
      - MYSQL_DATABASE=acore_world
      - MYSQL_USER=acore_user
      - MYSQL_PASSWORD=<your_user_password>
      - ./data/mysql:/var/lib/mysql

    image: azerothcore/azerothcore-wotlk:latest
    restart: always
      - 8085:8085
      - ./conf:/azerothcore-wotlk/conf
      - ./data:/azerothcore-wotlk/data
      - database

In this configuration:

  • database: We use a MySQL 8 image for data persistence. Environment variables set the root and user credentials. The volume mapping (./data/mysql) ensures data durability.
  • worldserver: This uses the official AzerothCore Docker image for the Wrath of the Lich King expansion. The port mapping exposes the server on port 8085. The volumes map your local configuration (./conf) and data (./data) directories to the container’s directories, allowing you to modify settings and access logs easily. The depends_on directive makes sure the database starts before the worldserver.

Configuration: Tailoring Your Azeroth Experience

  1. Create Directories:
    mkdir conf data data/mysql
  2. Obtain Configuration Files: Download the appropriate configuration files from the AzerothCore repository. Place them within the conf directory.
  3. Customization: Modify these files to adjust gameplay settings, server rates, and content. Refer to AzerothCore’s extensive documentation for guidance. I may create a tutorial on that in the future.

Launching Your Server: Bringing Azeroth to Life

With your configuration in place, it’s time to boot up your server, open your terminal:

  1. Build Images:
    docker-compose build
  2. Start Server:
    docker-compose up -d

Accessing Your Realm: The Final Step

If your server is running locally, you can directly access it at For external access, configure port forwarding on your router and update your WoW client’s file accordingly. You can use a dynamic DNS provider like No-ip or DuckDNS to get a domain for free and hand out to your friends, or alternatively, buy a domain at a registrar like Spaceship

Other Things to Think About

  • Database Management: Utilize tools like phpMyAdmin or Adminer(my favorite) for database administration.
  • Backups: Implement regular backups of both your database and data directory for disaster recovery.
  • Scaling: As your server grows, consider scaling vertically by adding resources to the containers or horizontally by deploying multiple containers.
  • Monitoring: Use Docker monitoring tools to track resource usage and detect potential issues.

Remember, running a WoW private server demands technical expertise and dedication. Embrace the challenges, learn from the community, and enjoy the boundless possibilities of your custom Azeroth!

By Zeekz

Leave a Reply

Your email address will not be published. Required fields are marked *