ageLANServer-BattleServer ghcr.io/indyone/agelanserver-battleserver:latest https://ghcr.io host sh false https://github.com/indyone/unraid-templates/issues https://github.com/luskaner/ageLANServer https://github.com/indyone/unraid-templates/blob/main/ageLANServer-BattleServer/README.md ageLANServer with a BattleServer included: LAN server emulator for Age of Empires: DE (AoE1), Age of Empires II: DE (AoE2), Age of Empires III: DE (AoE3), Age of Empires IV (AoE4), and Age of Mythology: Retold (AoM). It runs the game's own BattleServer.exe (which you provide) inside the container, which AoE4 and AoM require. It includes Wine, so the download is about 1.3 GB. If you only play AoE, AoE II or AoE III, the ageLANServer template is enough. Each container instance serves one game. [b]ageLANServer-BattleServer[/b] is ageLANServer with the game's BattleServer running inside the same container. It lets you play multiplayer over your local network without an internet connection or Xbox Live. [b]Do you need this one?[/b] Only for Age of Empires IV and Age of Mythology: Retold, or if you want a server-side BattleServer for AoE, AoE II or AoE III that does not depend on one player's PC. For plain AoE, AoE II and AoE III the [b]ageLANServer[/b] template is enough: host with [b]Use Local Lan Server[/b] in the game's Server list. [b]What is a BattleServer?[/b] ageLANServer handles accounts, profiles and the lobby list. The match itself runs on the game's own BattleServer.exe, which relays the game traffic between the players. With [b]Use Local Lan Server[/b] your own PC runs it; the BattleServer in this container (the entry named [b]Server[/b] in the Server list) runs matches without depending on one player's PC. [b]Supported games:[/b] [LIST] [*] Age of Empires: Definitive Edition (age1) [*] Age of Empires II: Definitive Edition (age2) [*] Age of Empires III: Definitive Edition (age3) [*] Age of Empires IV: Anniversary Edition (age4) — requires BattleServer.exe [*] Age of Mythology: Retold (athens) — requires BattleServer.exe [/LIST] [b]BattleServer.exe[/b] ships with the game and cannot be redistributed. Copy it from your game install into the BattleServer Folder, using the one from the game the container serves. The exceptions are Age of Empires IV (it ships none) and Age of Mythology: Retold (its own is buggy): for those two use the one from Age of Empires II: DE. It is started automatically with the container; do not also add a BattleServer for it in config.toml. The BattleServer listens on TCP 27012, 27112 and 27212. [b]Each container runs one game.[/b] Name each container after its game, for example agelanserver-battleserver-aoe4. To serve multiple titles at the same time, run one container per game. With host networking only one container can use port 443 and the BattleServer ports — for multi-game setups create an [b]ipvlan L2[/b] custom network (Settings > Docker > Docker custom networks) and give each container its own LAN IP. [b]First-run setup:[/b] [LIST] [*] SSL certificates are generated automatically on the first start and reused on every restart. [*] A fully commented [b]config.toml.example[/b] is placed in the config folder on first run — rename it to [b]config.toml[/b] to activate custom settings. [/LIST] [b]Support:[/b] I support anything to do with the Unraid setup (this template, the Docker image, volumes and networking) — use the support link above. The server software itself is developed and supported by its original author: https://github.com/luskaner/ageLANServer/issues GameServers: https://raw.githubusercontent.com/indyone/unraid-templates/main/templates/ageLANServer-BattleServer.xml https://raw.githubusercontent.com/indyone/unraid-templates/main/ageLANServer-BattleServer/icon.png --restart=unless-stopped BattleServer.exe from your own game install (see the BattleServer Folder setting). Required for age4 and athens. Port 443 and TCP ports 27012, 27112 and 27212 must be free on the host IP used by this container. For a single game: host networking is the simplest option (the ports must be free on the host). For multiple games: create an ipvlan L2 custom network (Settings > Docker > Docker custom networks) and assign each container a unique LAN IP — this avoids the port conflicts that occur when multiple containers share the same host network stack. ipvlan is preferred over macvlan as it does not require promiscuous mode on the host NIC. /mnt/user/appdata/agelanserver-battleserver/certificates /mnt/user/appdata/agelanserver-battleserver/config /mnt/user/appdata/agelanserver-battleserver/battleserver /mnt/user/appdata/agelanserver-battleserver/logs age2