Jump to content

Search the Community

Showing results for tags 'installation'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


  • Mangos Zero
    • Enhancement Requests (Zero)
    • Tasks (Zero)
  • Mangos One
    • Enhancement Requests (One)
    • Tasks (One)
  • Mangos Two
    • Enhancement Requests (Two)
    • Tasks (Two)
  • Mangos Three
    • Enhancement Requests (Three}
    • Tasks (Three)
  • Mangos Four
    • Enhancement Requests (Four)
    • Tasks (Four)
  • Mangos Five
    • Enhancement Requests (Five)
    • Tasks (Five)
  • Cross-Core
    • Bugs
    • Enhancement Requests
    • Tasks
    • Sub-Modules
    • Eluna
    • Linux
    • Windows
    • Archived Cross-Core/Other Reports
  • Others
    • Mangos VB
    • Mangos Sharp
    • Third Party Software
    • Website
  • Bug Tracker Archives (Resolved issues)
    • Archived Reports (Zero)(Resolved issues)
    • Archived Tasks (Zero)(Resolved issues)
    • Archived Reports (One)(Resolved issues)
    • Archived Tasks (One)(Resolved issues)
    • Archived Reports (Two)(Resolved issues)
    • Archived Tasks (Two)(Resolved issues)
    • Archived Reports (Three)(Resolved issues)
    • Archived Reports (Five)(Resolved issues)


  • Development Roadmap
  • Documentation
    • Installation Guides
    • Playerbot AI
    • Standards And Practices
  • Tutorials
    • Advanced
    • Contributing to Mangos
    • Debugging
  • Reference Information
    • ClientFiles
    • Database Info
    • DBC Files
    • Other
    • Packet Info
    • Server Files
    • Server Components


  • MaNGOS Information
    • Announcements & Releases
    • Covenant-WoW.com Website - Official Mangos Test Servers
  • Community Discussion Areas
    • Introduce Yourself
    • Community Cafe
    • Community Input
    • Community Projects
    • MaNGOS University
  • Community Help and Support
    • Peer to Peer Technical Support
    • Frequently Asked Questions
    • Resources
  • Development & Patch Submissions
    • Development
    • Patch Submissions
  • Eluna LUA Engine
    • Eluna Central
  • International Help & Support
    • International Boards
  • Archived
    • Main Archives
    • Archive of Pre-2012 Forum


  • Mangos Zero
  • Mangos One
  • Mangos Two
  • Mangos Three
  • Addons
    • Classic Addons
  • World Of Warcraft Patches
    • WoW Patches
    • The Burning Crusade Patches
    • Wrath of the Lich King
    • Client Tools Patchers


  • getMaNGOS
  • DBC handling for mangos
  • The Road to Zero Release 21
  • Necrovoice's development blog.
  • What the Heck happened to Antz and MaNGOS in 2018 !!
  • Other Wow Emu Projects

Find results in...

Find results that contain...

Date Created

  • Start


Last Updated

  • Start


Filter by number of...


  • Start






Website URL





About Me




Found 6 results

  1. [Last procedure check : 2020-07-13 ] Hi everyone, I re-write the procedure since there are many questions about linux install procedure. Many of them are no more applicable today and the getmangos.sh script needs rework as I write this article. PREREQUISITES I am assuming you are running your server on a Linux Operating system with Ubuntu Server 18.04 flavor. Your OS should be up to date. If not, log in as root and run : apt update && apt upgrade PART 1 : Configuring the environment This tuto will use the MaNGOS zero repo URL but it is replicable with all of our cores repos. Just change the git repo URL and you will be fine. > Creating system user Be sure you have created a Linux user for your server, since it is not a good idea to run it as root for obvious security reasons. We will then assume you have created a mangos linux user using the command : adduser mangos To be more handy you can add this user to the sudoers in order to be able to run administrative commands. usermod -aG sudo mangos After this point, be sure to be logged-in as mangos Linux user. We do not need root account anymore (or perhaps once or twice.. but..never mind ! do not use root when not needed) > Installing useful programs MaNGOS requires some libraries to be built and to run properly. We also need some programs to run further commands or simply to handle some scripts which are in the repo (e.g : python scripts O_o) apt install git make cmake libssl-dev libbz2-dev build-essential default-libmysqlclient-dev libace-6.4.5 libace-dev python > Preparing your system folders A good practice is to separate locations for the needs : sources, db sql files and build folder under the mangos system user : /home/mangos/ binaries, confs, logs, gamedata in /opt/ Thus you can create the folders when logged-in as mangos system user : mkdir /home/mangos/sources mkdir /home/mangos/build mkdir /home/mangos/db Then the /opt/ folder is only accessible to root so you need to use sudo and impersonate root to make things there. The aim to to create a fodler using the root account then giving the good rights to be able to use it with the mangos system user. The opt folder will a have a wow subfolder in which the mangos folder will be. It would let you install other cores if you want to (Trinitycore, Cmangos etc..) all should be installed in /opt. sudo su cd /opt/ mkdir wow chown -R mangos:root wow chmod g+s wow exit Now you will have a wow folder in /opt/ that will be writable by the mangos system user. Create all necessary useful folders to handle future files using mangos system user : cd /opt mkdir wow/install && mkdir wow/install/mangos && mkdir wow/install/mangos/bin && mkdir wow/install/mangos/bin/logs && mkdir wow/install/mangos/conf cd /opt/wow && mkdir gamedata && mkdir gamedata/1.12 && mkdir gamedata/1.12/mangos > Getting Game data Since MaNGOS is an educationnal project we will not redistribute exctracted game data. In order to be able to run your server, you will need to extract these data from your game folder using the extractor programs that are built when you build the project. To run the server the best way, you will have to extract : dbc maps vmaps (takes a long time) mmaps (takes a long time) Please remind to put all extracted data on the folders you pre-created on previous steps. If you work with a VM you can use Linux extractors against a shared game folder betwwen your PC and the Linux VM, or if you have the Game folder on your server, you will have to use extractors in this folder. More information on this topic : PART 2 : Getting the sources & Compiling the core Note that we always use the mangos system user. Get into your source folder : cd /home/mangos/sources Retrieve the sources (WARNING do not forget to get them recusrsively !!) : git clone https://github.com/mangoszero/server.git . --recursive --depth=1 Well, that good now we are going to build the solution. /!\ WARNING ABOUT ACE DEPENDENCIES /!\ It is possible that the build fails due to he ACE linked sources in the "dep" folder. It is related to a bug between Linux build and Windows build. The main "server" repository is set to refer to a speficif commit that allows by default a correct build on Windows. If you are on Linux you will probably have to manuall pull & checkout the "dep" folder (wich is a git submodule) : cd /home/mangos/sources/dep git pull git checkout master Keep in mind that this example show a default build. You can tweak teh buidl option in cmake to build or not some parts of the software. cd /home/mangos/build cmake ../sources/ -DCMAKE_INSTALL_PREFIX=/opt/wow/install/mangos -DCONF_INSTALL_DIR=/opt/wow/install/mangos/conf When it's finished, depending on the number of your cores you will adapt the following make command : make -j<NbCores> (e.g : for an intel i7 octocore you can tupe 'make -j8') The build process should begin, and when it's finished, you will have to install the built binaries : make install After that, all binaries and default conf files woudl have been copied to their destination folders which you have set in the previous cmake command. PART 3 : Installing MySQL First things first : you have to install MySQL server. With Ubuntu Server 18.04 the reference MySQL version is 5.7.30 (this statement is valid at the date when this guide is written, it can evolve in the future). To install mysql-server : sudo apt install mysql-server After installation, you may wonder : "Why the program did not ask me for a root password ?". Well, on new MySQL versions, the default auth protocol is set to "auth_socket" but all our software will use a password to connect to the database. Don(t worry, we are going to create a user that would be able to authenticate with standard credentials : sudo su mysql Now you are logged-in to mysql command prompt with the root account. you will notice no password was asked to you because roto user uses auth_socket protocol to authenticate. Now you are going to create the MySQL mangos user : CREATE USER 'mangos'@'localhost' IDENTIFIED BY 'mangos'; GRANT ALL PRIVILEGES ON *.* TO 'mangos'@'localhost' WITH GRANT OPTION; The "WITH GRANT OPTION" is not mandatory but can be useful for future use if you want to administer other users with this mangos account. Then leave MySQL command prompt and root shell : exit; exit PART 4 : Database Setup > Main databases (auth, characters, world) You first have to clone the database repo in the db folder : cd /home/mangos/db/ git clone https://github.com/mangoszero/database.git . --recursive --depth=1 ./InstallDatabases.sh You will be prooted a screen with several questions : You will also be prompted to determine your dabases names. A good practice is to set the realm db name to : mangos_auth, and also to suffix all others db names with the core versions you are running (e.g characters db for mangos zero : mangos_characters0 , world db : mangos_world0 ) Note : you need only 1 realm database if you run several cores (mangos zero, mangos one etc..) on teh same server, BUt you will need 2 db (characters and world) for each core you run. > Apply database updates On a fresh install, World updates should also be applied. In order to see if it is Ok, check on the World db (the process is the same for other databases) : connect to mysql using mangos user : mysql -u mangos -pmangos mangos_world0 SELECT * FROM db_version ORDER BY VERSION DESC, structure DESC, content DESC LIMIT 0,1; exit; If the return show you the same version that the most recent file in the World/Updates/Rel21 folder. You are OK. The version number alwas increase so it will be easy to determien if your version/structure/content is ok or not. If not, then go to the World update folder (World/Updates/Rel21) and apply missing updates to the databases. mysql -u mangos -pmangos mangos_world0 < nameOfUpdateSQlFile.sql > Translations In case you run a non english speaking server, you can apply translation fiels to the world database. You will find the correct sql files to apply in the Translations folder : cd /home/mangos/overload/db/Translations Since I cannot ensure the Linux scripts are working, here is how to do manually : Apply the 3 first .sql files in teh folder : mysql -u mangos -pmangos mangos_world0 < 1_LocaleTablePrepare.sql mysql -u mangos -pmangos mangos_world0 < 2_Add_NewLocalisationFields.sql mysql -u mangos -pmangos mangos_world0 < 3_InitialSaveEnglish.sql Of course you will have to replace the db name "mangos_world0" with your db name etc... if you have changed default db names and user and password You will need to go to the translation folder of the desired language (e.g for French language ) : cd /home/mangos/db/Translations/Translations/French The more easy solution would be to compile all files in one and import it cat *.sql > full.sql mysql -u mangos -pmangos mangos_world0 < full.sql rm full.sql There, your translations should be applied. PART 5 : Configuring *.conf files for executables Go to the conf folder an create a copy of each .dist file : cd /opt/wow/install/mangos/conf/ cp realmd.conf.dist realmd.conf && cp mangosd.conf.dist mangosd.conf Change database connection information in each file in order to allow your binaries to connect to the database. Update your game data path in mangosd.conf too. Update the logs folder to "logs" value (relative to binary) A lot of behaviours can be configured in these files. Please consider studying it carefully. PART 6 : Auto-restarting When operating a game server it is nice to use an auto-restarter. Otherwise, you will have to keep up 2 terminals for realmd and mangosd. ./opt/wow/install/mangos/bin/realmd and ./opt/wow/install/mangos/bin/mangosd That can be really annoying because daemons would be killed after terminal exit. Read this article to know how to use a restarter on Linux operating systems : PART 7 : Final comments > Nice to have When your system is running, you could perhaps check : Do you have a DB backup system ? You can easily put one in place with a CRON job Do you have a backup system for your conf files ? Do you have a flushing system for the server log files if you keep them timestamped ? > About errors at core start-up You can have some DB errors at startup like this one : It means you have applied DB updates beyond core expectation but since it is only content related, it is not a big issue. The core would not start id the version or structure is different, but the core can start with a content mismatch. > How to first connect whith default accounts ? If you have any questions - please ak on the forum on on Discord when anybody is connected Cheers !
  2. With LXD you can easy take snapshots and move your server to another physical machine. Guide is fully tested on MaNGOS Zero with bots module enabled. Check the video with installation process: https://asciinema.org/a/299001 If you do not want to use LXD, simple pass LXD instruction and go further. Let's start LXD installation & configuration: sudo apt install lxd && reboot Reboot is needed for reloading groups that will be assigned to your account. sudo lxd init with above command anserw defaults to all questions. Create container for our server: lxc launch ubuntu:bionic mangos-zero check if your container is running: lxc list +-------------+---------+-----------------------+-----------------------------------------------+------------+-----------+ | NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | +-------------+---------+-----------------------+-----------------------------------------------+------------+-----------+ | mangos-zero | RUNNING | *.*.*.* (eth1) | | PERSISTENT | 3 | +-------------+---------+-----------------------+-----------------------------------------------+------------+-----------+ now we will connect to our container: lxc exec mangos-zero bash Please verify that you are on your contierner, you should have promt like this [email protected]:~# if not you must try again with previous command providing your container name. MaNGOS server installation Install necessary packages: apt install git make cmake libssl-dev libbz2-dev build-essential default-libmysqlclient-dev libace-6.4.5 libace-dev mysql-server We need also install additional mysql package. I've attached file in this post so you don't need to search it. Download this file and send to your container. Open another terminal window and type: lxc file push /DOWNLOADED_DIRECTORY/mysql-apt-config_0.8.14-1_all.deb mangos-zero/root/ Go back to first terminal where you are logged to your container and type: dpkg -i /root/mysql-apt-config_0.8.14-1_all.deb on installation window check mysql 5.7 is selected and hit Enter, when window will close type: apt update && apt full-upgrade -y When all packages are installed, secure your mysql installation. Please type and anserw to few questions to secure your mysql server. mysql_secure_installation Create new username and password to access our mysql server: mysql GRANT ALL ON *.* to 'mangos'@'localhost' IDENTIFIED BY 'set_database_password'; Getting MaNGOS source code, compile and configuration. We will create new folder for sources: mkdir /opt/mangos && cd /opt/mangos Now we will download server and database sources to created folder. MaNGOS zero source (if you want different mangos version please change mangoszero to different repo name): git clone https://github.com/mangoszero/server.git --recursive --depth 1 Database files: git clone https://github.com/mangoszero/database.git --recursive --depth 1 Compiling MaNGOS (if your CPU have less than 4cores change -j4 to -j2 for two core CPU): cd server && mkdir build && cd build && cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/bin/mangos && make -j4 && make install above command will create build folder, compile and install compiled server. Database installation: cd /opt/mangos/database && chmod -R +x *.sh && ./InstallDatabases.sh above command will fix script permissions and install your database. GameData files extraction: This can me done inside or outside the container, choice is yours how you do it. Remember that extraction take some time, so go take a cup of tea/coffe and cookie and wait. (ETA 1-2h) We need proper files for exctraction, go to your mangos installation and copy those files to yor game client: cd /usr/local/bin/mangos/bin/ && chmod -R +x *.sh && cp -av tools/* ExtractResources.sh MoveMapGen.sh mmap_excluded.txt offmesh.txt /GAME_CLIENT_DESTINATION now go to your game client and run: ./ExtractResources.sh Server configuration: First we have to fix path to MaNGOS configruation. We can do this in config files or simply creating a symlink. In this tutorial we will create symlink to keep defaults. cd /usr/local/bin/mangos/ && ln -s ../etc Now we have to copy config files: cd etc/ && cp -av mangosd.conf.dist mangosd.conf && cp -av realmd.conf.dist realmd.conf In realmd.conf find "LoginDatabaseInfo" and change database username and password to credentials we created before. In mangosd.conf find "LoginDatabaseInfo", "WorldDatabaseInfo", "CharacterDatabaseInfo" and change database username and password to credentials we created before. Systemd configuration: Create systemd configuration to autostart your realmd and mangosd. In LXD I recommend to run mangosd in screen, we prepare such a configuration in this tutorial. Realmd service: cat > /etc/systemd/system/realmd.service <<EOF [Unit] Description=MangosZ server After=network.target mysql.service [Service] Type=simple User=root ExecStart=/usr/local/bin/mangos/bin/realmd -c /usr/local/bin/mangos/etc/realmd.conf WorkingDirectory=/usr/local/bin/mangos/bin/ Restart=on-abort [Install] WantedBy=multi-user.target EOF Mangosd service: cat > /etc/systemd/system/mangosd.service <<EOF [Unit] Description=MangosZ server After=network.target mysql.service [Service] Type=simple User=root #ExecStart=/usr/local/bin/mangos/bin/mangosd -c /usr/local/bin/mangos/etc/mangosd.conf ExecStart=/usr/bin/screen -mdS mangosd /usr/local/bin/mangos/bin/mangosd -c /usr/local/bin/mangos/etc/mangosd.conf WorkingDirectory=/usr/local/bin/mangos/bin/ PIDFile=/usr/local/bin/mangos/etc/mzero.pid RemainAfterExit=true Restart=on-abort [Install] WantedBy=multi-user.target EOF Reload systemd with: systemctl daemon-reload Enable services for autostart: systemctl enable realmd systemctl enable mangosd Start services: systemctl start realmd systemctl start mangosd Checking status of running services: systemctl status realmd systemctl status mangosd If you want to attach to mangosd console, simply type: screen -r mangosd to detach mangosd screen press keyboard combination: CTRL+A+D Update IP address in database, so you can connect to your server: mysql realmd -h localhost -u mangos -p check your values in realmlist table select address,localAddress from realmlist; +---------------+---------------+ | address | localAddress | +---------------+---------------+ | | | +---------------+---------------+ then update address and localAddress values with two query (replace IP_ADDRESS with yours) update realmlist set address='IP_ADDRESS'; update realmlist set localAddress='IP_ADDRESS'; Last thing is to restart both services and try to connect. At the end I wan't to share with you LXD container image, I made this tutorial based on it. Container do not include GameData so you have to extract it by yourself. MaNGOS-Zero LXD container based on Ubuntu 18.04 How to use it? Download the file and type in terminal (you must have LXD) lxc image import mangoszero-serv.tar.gz --alias mangosz-img lxc launch mangosz-img mangos-zero mysql-apt-config_0.8.16-1_all.deb
  3. I followed the installation guide for ubuntu: All is good and playable. Many thanks to Elmsroth!!! But it seems the build does not include the bot module because I can't find aiplayerbot.conf.dist being added to my conf/ directory. Based on the following code, it should be installed. # Install config files configure_file(${CMAKE_CURRENT_SOURCE_DIR}/playerbot/aiplayerbot.conf.dist.in ${CMAKE_CURRENT_BINARY_DIR}/aiplayerbot.conf.dist) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/aiplayerbot.conf.dist DESTINATION ${CONF_INSTALL_DIR}) Can anybody show some pointers or fill-in the gap of the installation guide? Btw, myself is a C++ developer but not very good at CMake. So please feel free point me to source code or feel free to use jargon. Any help/comment is much apprecaited. Thanks again.
  4. As reported by some users, the Linux guides to setup Mangos are not detailed enough for "newcomers" in the Linux world. The documentation must be enhanced.
  5. This bug tracker request is created to make sure that Fedora is supported as Mangos distribution.
  6. Currently, the user has to clone twice the full repository to setup its mangos installation while the download of the getmangos.sh script only is required. Update the documentation to only download this file instead of cloning the full repository.
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use