Dedicated server administration made easy.
Arma Server Manager is a web administration tool for managing dedicated gaming servers mainly for games by Bohemia Interactive, such as Arma 3, DayZ and Arma Reforger. If you're tired of paying expensive game hosting providers and would prefer to host your own server but find the server configuration tedious, then this project is for you.
The manager allows you to set up, control and monitor multiple game servers with just a couple of clicks using a simple user interface. You can easily install workshop mods, upload scenarios, manage headless clients and more. For more comprehensive list of features, see Features.
Manage multiple Arma 3, DayZ, DayZ Experimental and Arma Reforger servers. With SteamCMD running in the background, server installation is fully automated and installing and updating the server takes just a single click.
You can create multiple servers for each supported game.
All of the following can be configured with a simple form:
- Basic server information (server.cfg)
- Difficulty settings (server.Arma3Profile)
- Advanced network settings (basic.cfg)
The manager allows you to download and automatically install mods from Steam workshop. Just copy the ID of the mod into the form field and click "Install", everything will be done for you. Then, you can easily enable the downloaded mods for your existing server instances.
Besides Steam Workshop mods, you can also use locally stored mod files. Place mod folders in the manager's storage directory and use the Local Mods tab to sync and enable them on your servers. Local mods can also be marked as server-only to exclude them from client mod lists.
Besides workshop mods, you can also select which community DLCs you want to run any of your Arma 3 servers.
Organize workshop mods into presets which you can simply activate on the server. To make things even easier, you can upload HTML preset files generated by the Arma launcher which will automatically install all the mods. This also works the other way - create a preset in the manager, export it and share with your comrades.
See basic info about the system resources, such as the current CPU, memory and disk usage.
When running Arma 3 servers, you can launch or stop preconfigured headless clients with a single click.
You can upload and manage .pbo scenarios which will be available to play on your Arma 3 servers.
Create and manage multiple user accounts with granular role-based permissions. Admins can define roles with specific permissions (e.g. read-only server view, mod management) and assign them to users.
Besides the main supported games, you can also use the manager for very basic control of any other server you wish. That's very useful in case you want to run other servers like Minecraft besides your primary Arma/DayZ servers. For setup, see Additional servers.
There are two ways to run the project.
- Docker installed
Download docker-compose.yml and .env from the root of this repository and place them in the same directory. Follow the comments inside .env to configure the required values (database credentials, storage path, Steam API key). The remaining settings are optional and have sensible defaults.
DATABASE_ENCRYPTION_SECRET in .env is optional — if omitted, the app auto-generates a secure value on first startup and persists it to config/secrets.properties inside the container volume so it survives restarts.
After you've set up the values, run docker compose up to start the database and the server manager. The app will be accessible at http://localhost:8080 by default.
If you did not set AUTH_USERNAME / AUTH_PASSWORD in .env, the app creates an admin account with a randomly generated password on first startup. The credentials are printed once to the container log:
INFO c.f.s.s.SecurityBootstrap: Initial admin credentials (shown only once):
INFO c.f.s.s.SecurityBootstrap: Username: admin
INFO c.f.s.s.SecurityBootstrap: Password: <generated-password>
Retrieve them with docker compose logs armaservermanager | grep -A2 "Initial admin credentials". Change the password after first login.
While the Docker approach is recommended because of the ease of setup, there might be reasons why you'd wish to run the manager natively.
You can find the .jar file in releases section of this repository. Follow the next steps to set it up manually.
JDK 25 + MySQL database
Follow this guide to install SteamCMD on your
server. After the installation is finished, set the full path to SteamCMD executable in application.properties. On
Linux,
the default path when installing with package manager is /usr/games/steamcmd.
There is a config directory bundled with the .jar executable file. In it, you will
find application.properties.EXAMPLE
file which contains sample configuration. Copy this file and name it application.properties.
Open the new file and set all the required properties as described.
database.encryption.secret in application.properties is optional — if omitted, the app auto-generates a secure random value on first startup and persists it to config/secrets.properties so it survives restarts. Do not commit this file.
In the project you can find docker-compose.yml file for the MySQL database Docker container. Edit the environment
variables to match application.properties, especially the database properties, comment out the armaservermanager
service and then start the container with docker-compose up -d.
You can also use your own MySQL database server instead if you prefer do to so.
Launch the application by running: java -jar arma-server-manager.jar. You should be able to access the GUI through
http://localhost:8080 by default.
If you have Steam Guard 2FA enabled on your Steam account, you're going to need to get a SteamAuth token. To do this, either manually launch SteamCMD with a command line and log in, or use the semi-automated approach through UI.
NOTE: Currently, there is no support for 2FA authentication with Steam mobile application.
Upon first startup, head to "App config" tab and fill out your Steam username and password. Then, head to "Dashboard" and try to download any available server.
After a short while, the installation will fail because of invalid credentials. However, at this time, you should have received an email with Steam Guard token, which you can now add in the "App Config" tab. Proceed to the next step to store this token in the app.
If you have access to the SteamCMD (when running the manager natively or by execing into the manager container with
docker exec -it <container_name> /bin/bash), you can also get the token directly.
Launch steamcmd command. Next, in the shell, type login <your_steam_name> and input password when prompted.
Then you'll be prompted to input Steam token which will be sent into your email. Enter it to successfully login and
then type quit to exit the SteamCMD interface.
In the GUI, navigate to "App config" tab. There, you need to enter your Steam account username, password and the token which you previously received through e-mail. This is needed to interact with SteamCMD to install/update the server and any workshop mods.
Note: The token has a limited lifetime. Sooner or later, some actions will start to fail because of invalid token. At the same time, you should get a fresh token to your email. After that, you just need to update the token in the manager.
After setting up the SteamAuth, navigate to "Dashboard" tab and just click the "Install/Update" button on the servers you want to install. The server will download its necessary files. This might take a few minutes or even a couple of hours depending on your network bandwidth, but eventually, the installation should finish.
Head to "Servers" tab and click the "Create new server" button. From the dropdown, select which server you want to create. After that, finish the configuration and press "Submit" to create the server.
Now, you should already see the server appear in the servers list. Now you're pretty much done - try running the server!
Supported for Arma 3 and DayZ only.
Local mods are mod folders you manage yourself — they are not downloaded from Steam Workshop.
-
Place the mod folder in the correct subdirectory of your mods storage path:
- Arma 3:
<mods dir>/local/ARMA3/<ModName> - DayZ:
<mods dir>/local/DAYZ/<ModName>
With Docker the mods dir lives inside your
STORAGE_PATHvolume (e.g.$STORAGE_PATH/mods/local/ARMA3/<ModName>). Without Docker it is the value ofdirectory.modsinapplication.properties(default/home/armaservermanager/mods). - Arma 3:
-
Sync — in the UI, open the Mods page and switch to the Local Mods tab, then click Sync local mods. Sync scans the directories, registers new mod folders, refreshes existing ones, removes entries for deleted folders, lowercases all file names (required by the game), copies
.bikeyfiles into each installed server'skeysdirectory, and creates the necessary symlinks. -
Enable on a server — edit your server and add the local mod to the active mod list, just like a workshop mod.
If you need to manage other servers than the ones natively supported, you can use the Additional servers feature. This allows you to start and stop any gaming servers you have previously installed on the machine.
Setup of an additional server requires you to access the database directly and import the settings manually.
- Install and configure the server you wish to control with the app.
- Create a shell script used to start the server executable with necessary parameters.
- Execute the following statement in the database (e.g. using Adminer which comes with the basic docker-compose file)
INSERT INTO `additional_server` (`id`, `name`, `command`, `server_dir`, `image_url`)
VALUES (0, 'Minecraft', '/path/to/minecraft.sh', '/path/to/minecraft/server/directory', 'https://optionalIconUrl.com/minecraft.png');The script might look like:
minecraft.sh
#!/bin/bash
cd /path/to/minecraft/server/directory
java --add-opens java.desktop/java.awt=ALL-UNNAMED -Xms2G -Xmx8G -XX:+UseG1GC -jar server.jar noguiAfter the setup, you should be able to see the server listed in Additional servers tab, and start it with a click of a button.
Have some feedback, need help or just want to chat? Join the Discord server.
Enjoy my work?
This app was inspired by Dahlgren's Arma Server Admin project. Feel free to check out his project too!

