Unreal Engine Horde Setup: Part 2 — Dockerizing Your Horde Services
Here I provide instructions on how to run Horde in Docker.
Unreal Engine Horde Setup: Part 2 — Dockerizing Your Horde Services

Here I provide instructions on how to run Horde in Docker.
Firstly, you need the BuildGraph tool. How to use it can be found here: https://docs.unrealengine.com/5.0/en-US/how-to-use-buildgraph-for-unreal-engine/
The BuildGraph tool uses XML configuration to make any action that you write in the configuration. For all Horde services, the configuration is already done and located in the root folder of Horde:
“root\Engine\Source\Programs\Horde\BuildHorde.xml”
That’s the configuration to build Docker images for the server, dashboard, and installer for the agent.
BuildHorde.xml
Short info about components:
- Horde Server — it contains two nodes, and each one should be run separately. After that, you will have a server Docker image.
- Horde Installer Dashboard — it contains one step to build an image for the dashboard.
- Horde Installer — these steps will create an installer for your agent, which will be placed at this path: “root\Engine\Source\Programs\Horde\Installer\bin\Debug\Horde.msi.”
Steps to run the server:
Note: You should have installed Docker, and it should be started while building those scripts. (Link for Docker installation)
- Create a Docker network for all services:
docker network create horde-net
- Run Mongo and Redis services in Docker. Note that ports 6379 and 27017 could already be allocated with some other services on your machine, so you can use others to run these services, for example, 6380 (Redis) and 27018 (Mongo). Commands to run Docker images:
docker run --net horde-net -it -d -p 6379:6379/tcp redis:latest
docker run --net horde-net -it -d -p 27017:27017/tcp mongo:latest
- Open the Horde solution with the IDE and edit HordeRootFolder\Horde.Server\appsettings.json in the Horde.Server project. Here you should place a connection for Mongo and Redis; if you run them successfully in the previous step, they must be running by urls, which I used in the configuration below. If something goes wrong with port allocation, use ports that you set previously for services.
- Create a server Docker image. To build it with BuildGraph, you should execute it in the root engine folder:
Note: There are RunUAT.sh and RunUAT.bat; choose the right one, depending on your terminal.
Engine/Build/BatchFiles/RunUAT.sh BuildGraph -Script=Engine/Source/Programs/Horde/BuildHorde.xml -Target="HordeServer" -Clean -SingleNode="Check HordeServer Licenses"
Engine/Build/BatchFiles/RunUAT.sh BuildGraph -Script=Engine/Source/Programs/Horde/BuildHorde.xml -Target="HordeServer" -Clean -SingleNode="Build HordeServer"
When you execute these two commands, first check the console output; you should see that everything was built successfully. After that, you will have the Docker image:
- The final step to run the server:
docker run --net horde-net -d -p 5000:5000/tcp -p 5002:5002/tcp hordeserver-public
You should forward ports 5000 and 5002 (same, if something goes wrong with port allocation, change on others) to any local port. After that, you will have access to the Horde server UI:
Steps to run Dashboard:
- Open BuildHorde.xml and comment on these two lines because documentation is not present, and it will fail.
- Open the “root\Engine\Source\Programs\Horde\HordeDashboard” folder in some IDE and edit the package.json file and change the proxy, it should point to our running server.
- Open the “HordeDashboard.env” file, and you need to set the server url and token to use Dashboard. Tokens can be found on the server UI; there is a link for “Account Page”, It is possible to get different types of tokens; I use the bearer one.
- Create a Dashboard docker image. To build it with BuildGraph, you should execute it in the root engine folder:
Engine/Build/BatchFiles/RunUAT.sh BuildGraph -Script=Engine/Source/Programs/Horde/BuildHorde.xml -Target="HordeInstallerDashboard" -Clean -SingleNode="Stage Horde Installer Dashboard"
When you execute a command successfully, you will have the following Docker image:
Note: This Docker image is used like the bash command line; it can’t be run as a simple Docker image.
- Final step to run server:
docker run --net horde-net -it -p 3000:3000 hordedashboard:installer yarn --cwd ./Dashboard start
You should forward here ports 3000 (if something goes wrong with port allocation, change on others); after that, you will have access to Horde UI:
Build Horde Installer:
Commands to build it with BuildGraph should be executed in the root Engine folder:
Engine/Build/BatchFiles/RunUAT.sh BuildGraph -Script=Engine/Source/Programs/Horde/BuildHorde.xml -Target="HordeInstaller" -Clean -SingleNode="Stage Horde Installer"
Engine/Build/BatchFiles/RunUAT.sh BuildGraph -Script=Engine/Source/Programs/Horde/BuildHorde.xml -Target="HordeInstaller" -Clean -SingleNode="Build Horde Installer"
After that, you will get this tool:
Note: It’s not working properly on my side.
Useful links:
- Unreal Github: https://github.com/EpicGames/UnrealEngine/tree/5.3.0-release/Engine/Source/Programs/Horde
- Horde Presentaion: https://docs.google.com/presentation/d/1jwESZwJeXQq76ESNLO7zroQcFK1CpnO3/edit#slide=id.p1
- BuildGraph tool: https://docs.unrealengine.com/5.0/en-US/how-to-use-buildgraph-for-unreal-engine/
- BuildGraph tool usage: https://www.youtube.com/watch?v=A6eASbo_dHg
메타데이터
- post_id
- 3bf5be528e9b
- slug
- unreal-engine-horde-setup-part-2-dockerizing-your-horde-services-3bf5be528e9b
- url
- https://medium.com/@VmpKalin/unreal-engine-horde-setup-part-2-dockerizing-your-horde-services-3bf5be528e9b
- canonical_url
- https://medium.com/@VmpKalin/unreal-engine-horde-setup-part-2-dockerizing-your-horde-services-3bf5be528e9b
- author_url
- https://medium.com/@VmpKalin
- status
- ok
- fetched_at
- 2026-07-25 04:20:42