{"id":19134578,"url":"https://github.com/azerothcore/acore-docker","last_synced_at":"2025-04-09T20:14:07.252Z","repository":{"id":61913550,"uuid":"359954867","full_name":"azerothcore/acore-docker","owner":"azerothcore","description":"docker-compose example to run an azerothcore platform","archived":false,"fork":false,"pushed_at":"2025-03-16T14:55:00.000Z","size":78,"stargazers_count":231,"open_issues_count":4,"forks_count":82,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-09T20:14:01.871Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://www.azerothcore.org/acore-docker/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/azerothcore.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2021-04-20T21:24:42.000Z","updated_at":"2025-04-07T10:27:55.000Z","dependencies_parsed_at":"2023-12-15T22:42:13.996Z","dependency_job_id":"69cbe03b-7e2c-4158-a881-9cd5f8046646","html_url":"https://github.com/azerothcore/acore-docker","commit_stats":{"total_commits":88,"total_committers":3,"mean_commits":"29.333333333333332","dds":0.06818181818181823,"last_synced_commit":"6fce1afe7aa562628494eb78df70f94529202a16"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azerothcore%2Facore-docker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azerothcore%2Facore-docker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azerothcore%2Facore-docker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/azerothcore%2Facore-docker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/azerothcore","download_url":"https://codeload.github.com/azerothcore/acore-docker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248103872,"owners_count":21048245,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-09T06:27:11.548Z","updated_at":"2025-04-09T20:14:07.225Z","avatar_url":"https://github.com/azerothcore.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ACore docker compose\n\n\u003cimg src=\"https://www.azerothcore.org/images/logo.png\" alt=\"logo\" width=\"200\"/\u003e\n\n* Table of Contents\n{:toc}\n\nVideo Demo:\n\n[![ACore Docker Demonstration](https://img.youtube.com/vi/ldDkI2R431k/0.jpg)](https://www.youtube.com/watch?v=ldDkI2R431k)\n\nThe docker compose file included in this folder provides an easy way to use the azerothcore images available on [docker hub](https://hub.docker.com/u/acore) .\nIt means that you will be able to run a clean azerothcore server without installing anything but docker.\n\nNOTE: You can re-use this docker compose configuration inside another project to test AzerothCore together\nwith another application, for instance an API or a website based on docker compose.\n\nThe original repository with the sources and the workflows to generate the images used by this docker compose is available [here](https://github.com/azerothcore/azerothcore-wotlk)\n\nDo you have any questions? Open an [issue here](https://github.com/azerothcore/acore-docker/issues)\n\n## Requirements\n\n* [Docker](https://docs.docker.com/get-docker/)\n* [Git](https://git-scm.com/downloads) to clone our repo (suggested), otherwise you can manually [download it](https://github.com/azerothcore/acore-docker/archive/refs/heads/master.zip)\n\n## Getting started\n\nFirst of all, download or clone [this repository](https://github.com/azerothcore/acore-docker).\nIf you want to clone the repo you have to open a terminal and run this command: **git clone https://github.com/azerothcore/acore-docker**\n\nTo open a terminal inside a specific folder in your operating system check [this interesting article](https://www.groovypost.com/howto/open-command-window-terminal-window-specific-folder-windows-mac-linux/)\n\nNow run this magic command sequence inside the downloaded folder to have everything up and running (with an interactive worldserver terminal): \n\n```Bash\ndocker compose up\n```\n\n**Wait for few minutes and you have an up and running AzerothCore!**\n\n The first installation will take a while because it needs to download the images from the docker hub and create the entire database before running the server**\n \n ⚠️ WARNING ⚠️: if you encounter the error `ERROR: for ac-worldserver Container \"abcdefg12345\" exited with code 1.` or `ERROR: 'network_mode' and 'networks' cannot be combined` please update docker and docker-compose to the latest version.\n\n### How to run in background\n\nIf you need to run them in background instead you can use the following command:\n\n```Bash\ndocker compose up -d\n```\n\n**IMPORTANT:** \n\n* If the application crashes, docker will automatically restart the container for you\n\n## Access the worlserver console and create an account\n\nWith **docker compose up** we have an up and running worldserver as well, but you need to access its interactive shell to\nrun commands on the worldserver.\n\n\nOpen another terminal and use this command to access the worldserver console\n\n```Bash\ndocker attach acore-docker-ac-worldserver-1\n```\n\nNow you can use the worlserver console to run azerothcore commands.\n\nTo create an account you can use: `account create \u003cuser\u003e \u003cpassword\u003e \u003cconfirm password\u003e`\n\nNOTE: you can detach from a container and leave it running using the CTRL-p CTRL-q key sequence.\n\nThe list of GM commands is available [here](https://www.azerothcore.org/wiki/GM-Commands)\n\nDo you need a **game client**? check [this page](https://www.azerothcore.org/wiki/client-setup)! \n\n\n**IMPORTANT** to read the list of all the containers you can attach to, run the `docker ps` command.\n\n## Ask for support\n\nIf you need support about the docker installation, use one of the following channels:\n\n* Join our discord community: https://discord.gg/mMgdcx37bA \n* Report an issue on github: https://github.com/azerothcore/acore-docker/issues\n\nIf your issue is about the server or you want to report a bug, check our page on [How to ask for help](https://www.azerothcore.org/wiki/how-to-ask-for-help)\n\n\n## Stop or restart the services\n\nThere are several commands to stop or restart the services, depending on your needs:\n\n* **docker compose ps**: list all the running containers\n* **docker compose stop** : just stops the current running services\n* **docker compose restart** : restarts the current running services\n* **docker compose down --remove-orphans** : stops and removes the containers.\n* **docker compose down --rmi all -v --remove-orphans** : ⚠️ stops, removes, and deletes EVERYTHING. Including the volumes with the associated database ⚠️\n\n## Update your services with latest images\n\nYou just need to combine the following commands:\n\n```Bash\ndocker compose down\ndocker compose pull\ndocker compose rm -s -v -f ac-client-data\n```\n\n**NOTE:** `docker compose rm -s -v -f ac-client-data` is used to recreate the client data volume with the newest files. \nIf you're using your own maps, you should not use this command and regenerate the maps by your own instead (read the paragraph below)\n\n## Dev server\n\nThe ac-dev-server is a special container that provides a complete workspace that includes all the sources and dependencies to build your own server.\nThe container of the ac-dev-server is an isolated instance, it doesn't expose any file with the host and all the changes are stored into a docker volume.\nThis image is intended to be used together with the [VSCode Docker extension](https://code.visualstudio.com/docs/containers/overview).\n\nThe quickest way to access and work with the ac-dev-server is the following:\n\n1. Run this command to stop all the containers: `docker compose down`\n\n2. Install [visual studio code](https://code.visualstudio.com/) and the [Remote Development extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack)\n    \n\n3. Start VS Code in the acore-docker folder, run the `Dev Containers: Reopen in container...` command from the Command Palette (F1) or quick actions Status bar item (green button on the bottom left of your screen)\n\n    ![Screen](https://code.visualstudio.com/assets/docs/remote/common/remote-dev-status-bar.png)\n\n4. Once inside the container open a vscode terminal and run this command \n\n   ```bash\n      git config --global --add safe.directory '*' \u0026\u0026 git reset --hard \u0026\u0026 git pull origin master\n   ``` \n\n   You will notice that the file list available in VSCode is basically the [azerothcore-wotlk](https://github.com/azerothcore/azerothcore-wotlk) repository.\n5. Now you can start working with the azerothcore sources into a pre-configured ubuntu environment with all the dependencies pre-installed\n6. To build and run your server run `./acore.sh compiler build` command. You can refer to [this guide](https://www.azerothcore.org/wiki/ac-dashboard-core-installation) at the paragraph \"Build everything from scratch\".\n7. Once it's done you can download the client data by executing this command: `./acore.sh client data`\n8. Finally you should be ready to run the authserver and the worldserver available inside the `env/dist/bin` folder. You can also use the restarters\n   available in the `./acore.sh` dashboard\n\nIMPORTANT: \n\n* This container uses a different instance of the mysql database. It means that you won't have, by default, the same data available on the `ac-authserver` and `ac-worldserver` services\n\n* The dev-server docker compose exposes the following ports: 3724 (authserver), 8085 (worldserver), 7878 (soap service)\n\n* To share files between your host and the dev-server you can use the `var/shared` folder\n\n* This dev-container includes all the tools needed to build the AC without configure anything. Look around and play with the vscode workspace to discover all the features available.\n\n* if you have any file permission issues once inside the container, please run this command: \n`sudo chown acore:acore -R .`\n\n\n## Customize your server\n\n*NOTE: to unlock 100% power of AzerothCore, please use the [main repo](https://github.com/azerothcore/azerothcore-wotlk) and [compile it by your self](https://www.azerothcore.org/wiki/Installation)!*\n\nDespite using the [GM commands](https://www.azerothcore.org/wiki/GM-Commands) to operate within the CLI or in game, you have the flexibility to extend/configure\nyour server with the following techniques:\n\n\n### Change your docker configurations with the environment variables\n\nWithin the **/conf/dist** folder you can find a sample of the **.env** file which you can copy inside the root folder of this project to \nchange certain **docker compose** configurations, such as changing the ports of your docker services or the volumes path etc.\n\nCheck the comments inside that file to understand how to use those variables.\n### Extends the default docker compose\n\nWith the combination of the [docker compose.override](https://docs.docker.com/compose/extends/) and the environment variables available to configure\nthe AzerothCore project, you can extend this docker by adding external and shared volumes, change configurations and even add multiple realms.\n\n### How to create a second multirealm environment\n\nCheck the /conf/dist folder that contains an override file ready to be used to implement a secondary worldserver. Just copy-paste this file in the same folder of the `docker-compose.yml`\n\nYou also need to create a `worldserver2.conf` file under the `conf/` folder. You can do that by running this command:\n\n```docker compose cp ac-worldserver:/azerothcore/env/dist/etc/worldserver.conf conf/worldserver2.conf```\n\nCreate the following configurations inside the worldserver2.conf:\n\n```\nRealmID = 2\nLoginDatabaseInfo     = \"ac-database;3306;root;password;acore_auth\"\nWorldDatabaseInfo     = \"ac-database;3306;root;password;acore_world2\"\nCharacterDatabaseInfo = \"ac-database;3306;root;password;acore_characters2\"\n```\n\nFinally you need to access your database and change the ```acore_auth.realmlist``` table by adding a second realm with the port ```8086```\n\nNow you can restart your containers by running:\n\n```\ndocker compose down\ndocker compose up\n```\n\n### Changing your server configurations\n\nTo change the `*.conf` files of your server you need to extract them from the container and then create a volume to re-inject the modified file\ninto the container again.\n\nTo do this you can use these commands to copy the files from the container to your conf folder:\n\n```\ndocker compose cp ac-worldserver:/azerothcore/env/dist/etc/authserver.conf conf\ndocker compose cp ac-worldserver:/azerothcore/env/dist/etc/worldserver.conf conf\ndocker compose cp ac-worldserver:/azerothcore/env/dist/etc/dbimport.conf conf\n```\n\nthen create a `docker-compose.override.yml` file in the same folder of the `docker-compose.yml` file \nand add this configurations:\n\n```\nversion: '3.9'\n\nservices:\n  ac-worldserver:\n    volumes:\n      - ./conf/worldserver.conf:/azerothcore/env/dist/etc/worldserver.conf\n      - ./conf/authserver.conf:/azerothcore/env/dist/etc/authserver.conf\n      - ./conf/dbimport.conf:/azerothcore/env/dist/etc/dbimport.conf\n```\n\nIn this way you can inject the 3 extracted files from your host into the container\n\nNow you can change the configurations as you wish and restart the server.\n\nYou can find the list of all the configurations available in these files:\n\n1. [worldserver.conf](https://github.com/azerothcore/azerothcore-wotlk/blob/master/src/server/apps/worldserver/worldserver.conf.dist)\n2. [authserver.conf](https://github.com/azerothcore/azerothcore-wotlk/blob/master/src/server/apps/authserver/authserver.conf.dist)\n\n### Customize your server with the database\n\nThe database service available within the docker compose expose a mysql port that can be accessed by any mysql client\nHowever, our docker compose also provides a pre-configured phpmyadmin container that can be used to access the database.\n\nWhat you need to do is the following:\n\n1. **docker compose up phpmyadmin** to startup the phpmyadmin container\n2. connect to **https://127.0.0.1:8080** (unless you changed the port)\n3. insert the db credentials. By default:  ac-database (host), root (user), password (password)\n\nYou are ready to go! \n\nCheck the [AzerothCore wiki](https://www.azerothcore.org/wiki/documentation_index) to learn how to work with the AC database\n### Customize your server with Lua scripts\n\nThe worldserver container included in our docker compose integrates the Eluna module\n\nYou just need to install your lua scripts inside the /scripts/lua folder and you are ready to go!\n\nCheck the [Eluna documentation](https://github.com/ElunaLuaEngine/Eluna/blob/master/README.md) to learn how to work with this system\n\n### Customize your server with TypeScript\n\nThis project also integrates the [Eluna-TS](https://github.com/azerothcore/eluna-ts) system which allows you to create your custom scripts in Typescript! \n\nWhat you need is just create an \"index.ts\" within the **/scripts/typescript** folder and you can directly start by writing your scripts there or creating other files to import.\n\nInside our **docker compose.yml** there's the **ac-eluna-ts-dev** service which check changes on **/scripts/typescript** folder to automatically recompile your TS files into Lua.\n\n**Disclaimer:** Eluna-TS is based on [TypeScriptToLua](https://typescripttolua.github.io/) which is a Typescript limited environment. You cannot use all the Typescript features, check their page for more info.\n\n### Extract client data by your self with the ac-dev-tools container\n\nWithin your **.env** file set this variable: **DOCKER_CLIENT_DATA_FOLDER=** with the **absolute path** of the \"Data\" folder of your game client.\n\nNow run this command: **docker compose run --rm --no-deps ac-dev-tools bash** to access the shell of the **ac-dev-tools** container. Once inside you can run the following commands:\n\n* **./map_extractor** -\u003e to extract dbc, Cameras and maps\n* **./vmap4_extractor \u0026\u0026 ./vmap4_assembler** -\u003e to extract and assemble the vertical maps\n* **./mmaps_generator** -\u003e to extract and generate the movement maps\n\nAfter the extraction (it can take hours) the file will be available inside the `ac-client-data-*` volumes.\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fazerothcore%2Facore-docker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fazerothcore%2Facore-docker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fazerothcore%2Facore-docker/lists"}