An Arma 3 Dedicated Server. Updates to the latest version every time it is restarted.
docker create \
--name=arma-server \
-p 2302:2302/udp \
-p 2303:2303/udp \
-p 2304:2304/udp \
-p 2305:2305/udp \
-p 2306:2306/udp \
-v path/to/missions:/arma3/mpmissions \
-v path/to/configs:/arma3/configs \
-v path/to/mods:/arma3/mods \
-v path/to/servermods:/arma3/servermods \
-e ARMA_CONFIG=main.cfg \
-e STEAM_USER=myusername \
-e STEAM_PASSWORD=mypassword \
ghcr.io/brettmayson/arma3server/arma3server:latest
Use the docker-compose.yml file inside a folder. It will automatically create 4 folders in which the missions, configs, mods and servermods can be loaded.
Copy the .env.example
file to .env
, containing at least STEAM_USER
and STEAM_PASSWORD
.
Use docker-compose start
to start the server.
Use docker-compose logs
to see server logs.
Use docker-compose down
to shutdown the server.
The network_mode: host
can be changed to explicit ports if needed.
Use docker-compose up -d
to start the server, detached.
See Docker-compose for an installation guide.
Profiles are saved in /arma3/configs/profiles
Parameter | Function | Default |
---|---|---|
-p 2302-2306 |
Ports required by Arma 3 | |
-v /arma3/mpmission |
Folder with MP Missions | |
-v /arma3/configs |
Folder containing config files | |
-v /arma3/mods |
Mods that will be loaded by clients | |
-v /arma3/servermods |
Mods that will only be loaded by the server | |
-e PORT |
Port used by the server, (uses PORT to PORT+3) | 2302 |
-e ARMA_BINARY |
Arma 3 server binary to use, ./arma3server_x64 for x64 |
./arma3server |
-e ARMA_CONFIG |
Config file to load from /arma3/configs |
main.cfg |
-e ARMA_PARAMS |
Additional Arma CLI parameters | |
-e ARMA_PROFILE |
Profile name, stored in /arma3/configs/profiles |
main |
-e ARMA_WORLD |
World to load on startup | empty |
-e ARMA_LIMITFPS |
Maximum FPS | 1000 |
-e ARMA_CDLC |
cDLCs to load | |
-e STEAM_BRANCH |
Steam branch used by steamcmd | public |
-e STEAM_BRANCH_PASSWORD |
Steam branch password used by steamcmd | |
-e STEAM_USER |
Steam username used to login to steamcmd | |
-e STEAM_PASSWORD |
Steam password | |
-e HEADLESS_CLIENTS |
Launch n number of headless clients | 0 |
-e HEADLESS_CLIENTS_PROFILE |
Headless client profile name (supports placeholders) | $profile-hc-$i |
-e MODS_LOCAL |
Should the mods folder be loaded | true |
-e MODS_PRESET |
An Arma 3 Launcher preset to load | |
-e SKIP_INSTALL |
Skip Arma 3 installation | false |
The Steam account does not need to own Arma 3, but must have Steam Guard disabled.
List of Steam branches can be found on the Community Wiki, Arma 3: Steam Branches
To use a Creator DLC the STEAM_BRANCH
must be set to creatordlc
Name | Flag |
---|---|
CSLA Iron Curtain | CSLA |
Global Mobilization - Cold War Germany | GM |
S.O.G. Prairie Fire | vn |
Western Sahara | WS |
Spearhead 1944 | spe |
-e ARMA_CDLC="csla;gm;vn;ws;spe"
- Place the mods inside
/mods
or/servermods
. - Be sure that the mod folder is all lowercase and does not show up with quotation marks around it when listing the directory eg
'@ACE(v2)'
- Run the following command from the mods and/or servermods directory to confirm that all the files are lowercase.
find . -depth -exec rename 's/(.*)\/([^\/]*)/$1\/\L$2/' {} \;
If this is NOT the case, the mods will prevent the server from booting. - Make sure that each mod contains a lowercase
/addons
folder. This folder also needs to be lowercase in order for the server to load the required PBO files inside. - Start the server.
Set the environment variable MODS_PRESET
to the HTML preset file exported from the Arma 3 Launcher. The path can be local file or a URL. A volume can be created at /arma3/steamapps/workshop/content/107410
to preserve the mods between containers.
-e MODS_PRESET="my_mods.html"
-e MODS_PRESET="http://example.com/my_mods.html"