How to Run and Deploy Your First Arma Reforger Server
A first server needs only a clean install, a small config.json, reachable ports, and a repeatable launch command. This guide keeps the first deployment simple, then points you toward mods and hardening once the server is online.
config.json, then deploy that file with your server.What you need first
- A Windows or Linux host that can stay online while people play.
- Access to install the Arma Reforger dedicated server through Steam or SteamCMD.
- Permission to open UDP ports on the host firewall and, for home hosting, on the router.
- A folder where the server files, profiles, logs, and
config.jsoncan live together.
Install the dedicated server
Install the Arma Reforger Server application on the machine that will host the server. SteamCMD is common for VPS and dedicated machines because it can update the server without opening the Steam client.
steamcmd +force_install_dir ./reforger-server +login anonymous +app_update 1874900 validate +quit
After install, keep the server directory predictable. A simple layout makes updates and backups easier to reason about.
reforger-server/
ArmaReforgerServer
config.json
profiles/
logs/
Create the first config.json
Start with the smallest useful public server: bind to all interfaces, set the public game port, choose a server name, choose a scenario, and keep the player count modest while testing.
{
"bindAddress": "0.0.0.0",
"bindPort": 2001,
"publicAddress": "",
"publicPort": 2001,
"a2s": {
"address": "0.0.0.0",
"port": 17777
},
"game": {
"name": "My First Reforger Server",
"password": "",
"passwordAdmin": "change-this-admin-password",
"scenarioId": "{ECC61978EDCC2B5A}Missions/23_Campaign.conf",
"maxPlayers": 32,
"visible": true,
"crossPlatform": true,
"supportedPlatforms": [
"PLATFORM_PC"
],
"mods": []
}
}
Do not reuse the example admin password. Change it before the server is reachable from the internet.
Open the required ports
The game port and A2S query port must be reachable over UDP. If you host from home, forward the same ports from your router to the server machine.
2001/udp- Default game traffic port from
bindPortandpublicPort. 17777/udp- Default A2S query port used for server browser status.
Use publicAddress only when needed
Leave publicAddress empty for most normal deployments. Set it only when the server cannot advertise the address players should use, such as a NAT or routed hosting setup.
Keep bindAddress as 0.0.0.0 unless you deliberately want the process to listen on one network interface.
Launch the server
Run the server executable with a profile folder and the config file. Keep the command in a script once it works so updates and restarts use the same inputs every time.
./ArmaReforgerServer -config ./config.json -profile ./profiles
On Windows, use the same arguments with the Windows server executable. The important part is that the process receives the correct -config path and can write to the profile directory.
Verify the first deployment
- Watch the first startup log for JSON parsing errors, missing scenario messages, and port binding failures.
- Confirm the server appears in the in-game browser with the expected name and player limit.
- Join from a second machine or ask another player to test from outside your network.
- Restart once after a successful join to confirm the launch command and config survive a clean reboot.
Deploy it for real use
Once the basic server is reachable, move from a manual terminal session to a service manager such as systemd, Windows Task Scheduler, or your host panel. The goal is simple: start after reboot, keep logs, and make restarts intentional.
- Back up
config.jsonbefore every major change. - Keep server updates separate from mod list changes so problems are easier to isolate.
- Use a strong admin password, and do not publish it with example configs or screenshots.
- Validate the config before each deployment if you edit it by hand.