Sign inSign up

silentmecha/arma-3-server

By silentmecha

•Updated over 1 year ago

Arma 3 server on linux inside of Docker

Image
0

10K+

silentmecha/arma-3-server repository overview

Docker Pulls Image Size Buy Me a Coffee

⁠silentmecha/arma-3-server

This repository contains the files needed to build and run a Docker image for an Arma 3 dedicated server. This image is built on Ubuntu and is specifically designed for quickly setting up an Arma 3 server. It uses a customized version of steamcmd/steamcmd:ubuntu-24, which includes additional programs, environment variables, and a dedicated USER account to ensure easy server creation and consistent configuration across instances. The image is optimized for streamlined deployment and management of Arma 3 servers with all necessary dependencies and settings pre-configured.

Warning: Due to the choice of the developers of Arma 3, we can only download the server files for the game server if we set the environment variable $STEAM_LOGIN to <username> <password> <guardcode> of an account that owns the game. As a result, the latest tag is exactly the same as base.

Note: This image does not yet set all the settings for the server according to the ENV values. This is still a work in progress.

⁠Usage

This stack uses an image from atmoz⁠. To see more on the image used visit their GitHub https://github.com/atmoz/sftp⁠.

For more info on environment variables and what they do see Environment Variables⁠

⁠Available Tags
  • base: Contains only the environment setup, excluding the game files.
  • latest: This is exactly the same as base, No game files included
⁠Simplest Method

The simplest usage for this is using the docker-compose method to pull the base image and run it. Note that you will need a Steam account that owns the game and set the $STEAM_LOGIN environment variable correctly.

git clone https://github.com/silentmecha/arma-3-server.git arma-3-server
cd arma-3-server
cp .env.example .env
nano .env
# Set the STEAM_LOGIN variable in the .env file to "<username> <password> <guardcode>"
docker-compose pull
docker-compose build
docker-compose up -d
⁠Using the base tag

If you don't want to pull the entire image and don't need to keep multiple instances up to date, you can use the base tag. Note that base is equivalent to latest but does not hold any game files.

git clone https://github.com/silentmecha/arma-3-server.git arma-3-server
cd arma-3-server
cp .env.example .env
nano .env
# Set the STEAM_LOGIN variable in the .env file to "<username> <password> <guardcode>"
docker-compose -f docker-compose.base.yml up -d
⁠Building Locally

If you prefer to build everything locally, you can start by building the base image.

git clone https://github.com/silentmecha/arma-3-server.git arma-3-server
cd arma-3-server
cp .env.example .env
nano .env
# Set the STEAM_LOGIN variable in the .env file to "<username> <password> <guardcode>"
docker build -f base.Dockerfile -t silentmecha/arma-3-server:base .
docker-compose up -d
⁠Updating

Updating is now as simple as running a build on the Dockerfile or using docker-compose build. This will update the image without downloading all the game files again.

docker-compose build
docker-compose up -d
⁠Environment Variables
Variable NameDefault ValueDescription
SERVER_NAMEArma 3 DockerName of your server as seen in server browser (accepts spaces)
PORT2302Port used to connect to the server
QUERYPORT2303Port used to query the server
MASTERPORT2304Port used for the master server
VONPORT2305Port used for VON
BEPORT2306Port used for BattlEye
SERVER_PASSWORDsecretPassword to enter your server
ADMIN_PASSWORDChangeMePassword for admin access
ADDITIONAL_ARGSAdditional arguments for the server
SFT_USERfooUsername for SFTP access to edit save data
SFT_PASSpassPassword for SFTP access to edit save data
SFT_PORT2222Port for SFTP access (should not be 22 )
STEAM_LOGINSteam login credentials in the format <username> <password> <guardcode>

For more info on the usage of SFTP see here⁠. If you do not want to use a plain text password see encrypted-password⁠

⁠Ports

Currently the following ports are used.

PortTypeDefault
PORTTCP2302
PORTUDP2302
QUERYPORTTCP2303
QUERYPORTUDP2303
MASTERPORTTCP2304
MASTERPORTUDP2304
VONPORTTCP2305
VONPORTUDP2305
BEPORTTCP2306
BEPORTUDP2306
SFT_PORTTCP2222

All these ports must be forwarded through your router, except for SFT_PORT, unless you wish to remotely edit the save data.

⁠License

This project is licensed under the MIT License⁠.

If you enjoy this project and would like to support my work, consider buying me a coffee⁠. Your support is greatly appreciated!

Tag summary

Content type

Image

Digest

sha256:596aad49c…

Size

308.5 MB

Last updated

over 1 year ago

docker pull silentmecha/arma-3-server