{"id":18353589,"url":"https://github.com/felbinger/arma3server","last_synced_at":"2025-07-01T09:05:39.585Z","repository":{"id":109091112,"uuid":"323949616","full_name":"felbinger/arma3server","owner":"felbinger","description":"LGSM Arma 3 Server","archived":false,"fork":false,"pushed_at":"2022-10-09T16:25:35.000Z","size":51,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-01T09:05:29.036Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/felbinger.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-12-23T16:23:57.000Z","updated_at":"2023-03-09T09:18:20.000Z","dependencies_parsed_at":null,"dependency_job_id":"755e8966-53ef-4147-b51a-24608e2542fe","html_url":"https://github.com/felbinger/arma3server","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/felbinger/arma3server","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felbinger%2Farma3server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felbinger%2Farma3server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felbinger%2Farma3server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felbinger%2Farma3server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/felbinger","download_url":"https://codeload.github.com/felbinger/arma3server/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/felbinger%2Farma3server/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262933261,"owners_count":23386778,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-05T21:42:16.917Z","updated_at":"2025-07-01T09:05:39.542Z","avatar_url":"https://github.com/felbinger.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Arma 3 Server\nBased on Linux Game Server Manager, with the required packages for extdb2 / extdb3...\n\n## Setup Instructions\n1. Install docker \n2. Add `/home/admin/arma3/docker-compose.yml` for the Arma 3 server\n    ```yaml\n    version: '3.9'\n\n    services:\n      arma3:\n        image: ghcr.io/felbinger/arma3server\n        restart: always\n        env_file: .arma3.env\n        environment:\n          # will be stored on filesystem (/srv/aram3/lgsm/config-lgsm/arma3server/arma3server.cfg) during installation\n          - \"\"\n          - \"\"\n        ports:\n          - '2302:2302/udp'    # Arma 3 + voice over network\n          - '2303:2303/udp'    # Steam Query\n          - '2304:2304/udp'    # Steam Master\n          - '2305:2305/udp'    # old Voice over Network\n          - '2306:2306/udp'    # BattleEye\n        volumes:\n          - '/srv/arma3:/home/linuxgsm'\n    ```\n\n3. Add `/home/admin/arma3/.arma3.env`:\n    ```\n    STEAM_USER=steam_username\n    STEAM_PASS=steam_password\n    ```\n\n4. Adjust permission for `/srv/arma3`:\n    ```shell\n    mkdir /srv/arma3\n    chown 1000:1000 /srv/arma3\n    ```\n\n5. Start the arma3 container (`docker compose up -d arma3`) to perform the installation.\n\n6. Customize the server, the importent configurations are:\n   - `/srv/arma3/serverfiles/cfg/arma3server.server.cfg`: Server configuration, e.g. name of the server\n   - `/srv/arma3/serverfiles/mpmissions`: multiplayer mission files\n   - `/srv/arma3/lgsm/config-lgsm/arma3server/arma3server.cfg`: server startup parameters (e.g. which mods you'd like to load)\n\n   If you'd like to setup an Arma 3 Exile server, checkout the instructions below.\n\n## MySQL Setup Instructions (for extDB2 / extDB3)\n1. Add `/home/admin/mysql/docker-compose.yml` for the database server:\n    ```yaml\n    version: '3.9'\n\n    services:\n      mysql:\n        image: mysql:5.7\n        restart: always\n        env_file: .mysql.env\n        volumes:\n          - \"/srv/mysql:/var/lib/mysql\"\n    ```\n\n2. Add `/home/admin/arma3/.mysql.env`:\n    ```\n    MYSQL_ROOT_PASSWORD=S3cr3T\n    MYSQL_USER=arma3\n    MYSQL_PASSWORD=S3cr3T\n    MYSQL_DATABASE=exile\n    ```\n\n3. Start the arma3 container (`docker compose up -d mysql`) to perform the installation.\n\n## Arma 3 ExileMod Setup Instructions\n\n1. Setup MySQL (see last chapter)\n\n2. Create seperate user and database for exile:\n    You don't have to do this, if you already created the `arma3` user and the `exile` database using the mysql environment variables!\n    ```shell\n    docker-compose -f /home/admin/mysql/docker-compose.yml exec mysql mysql -uroot -pS3cr3T\n    ```\n    ```sql\n    CREATE DATABASE IF NOT EXISTS exile;\n    CREATE USER IF NOT EXSITS arma3 IDENTIFIED BY 'S3cr3T'; \n    GRANT ALL ON exile.* TO arma3;\n    ```\n\n3. Download `@ExileServer`:\n    ```shell\n    apt install -y unzip\n    wget -O /tmp/ExileServer-1.0.4a.zip http://exilemod.com/ExileServer-1.0.4a.zip\n    mkdir -p /tmp/ExileServer\n    unzip /tmp/ExileServer-1.0.4a.zip -d /tmp/ExileServer\n    rm /tmp/ExileServer-1.0.4a.zip\n\n    cp -r /tmp/ExileServer/Arma\\ 3\\ Server/* /srv/arma3/serverfiles/\n    ```\n\n4. Create required database structure\n    ```shell\n    docker compose -f /home/admin/mysql/docker-compose.yml exec -T mysql mysql -uarma3 -pS3cr3T exile \u003c /tmp/ExileServer/MySQL/exile.sql\n    ```\n\n5. Remove old artifacts\n    ```shell\n    rm -r /tmp/ExileServer\n    ```\n\n6. Adjust extDB2 configuration\n    ```shell\n    # adjust extdb2 configuration\n    sed -i 's/^IP = 127.0.0.1/IP = mysql/' /srv/arma3/serverfiles/@ExileServer/extdb-conf.ini\n    sed -i 's/^Username = changeme/Username = arma3/' /srv/arma3/serverfiles/@ExileServer/extdb-conf.ini\n    sed -i 's/^Password = /Password = S3cr3T/' /srv/arma3/serverfiles/@ExileServer/extdb-conf.ini\n    ```\n\n7. Move `@ExileServer` configurations to the arma 3 server config folder:\n    ```shell\n    mv /srv/arma3/serverfiles/@ExileServer/basic.cfg /srv/arma3/serverfiles/cfg/arma3server.network.cfg\n    mv /srv/arma3/serverfiles/@ExileServer/config.cfg /srv/arma3/serverfiles/cfg/arma3server.server.cfg \n    ```\n\n8. Upload `@ExileMod` from your client (latest version can only be obtained from Steam workshop)\n\n9. Add mods to arma 3 server startup configuration:\n    ```shell\n    # add mods to server startup configuration\n    cat \u003c\u003c_EOF \u003e\u003e /srv/arma3/lgsm/config-lgsm/arma3server/arma3server.cfg\n\n    # mods=\"@Exile;@Extended_Base_Mod;@AdminToolkitServer\"\n    mods=\"@Exile\"\n    servermods=\"@ExileServer\"\n    \n    # extDB2 is only for 32-bit - think about changing to extDB3 which supports 64-bit!\n    executable=\"./arma3server\"\n    _EOF\n    ```\n\n10. Adjust permissions\n    ```\n    chown -R 1000:1000 /srv/arma3\n    ```\n\n11. Restart the arma3 container to start the server\n    ```shell\n    docker compose -f /home/admin/arma3/docker-compose.yml down\n    docker compose -f /home/admin/arma3/docker-compose.yml up -d\n    ```\n\n### [Mod: Extended Base Mod](https://steamcommunity.com/sharedfiles/filedetails/?id=647753401)\nVideo walkthrough from freakboy: [youtube.com/watch?v=dhT6C4PrCrQ](https://www.youtube.com/watch?v=dhT6C4PrCrQ)\n\n* checkout readme.html file in workshop content for installation instructions\n\n### [Mod: AdminToolkit](https://github.com/ole1986/a3-admintoolkit)\nVideo walkthrough from freakboy: [youtube.com/watch?v=YN7w0j-4V-4](https://www.youtube.com/watch?v=YN7w0j-4V-4)\n\n1. Download the git repository\n2. Extract the contents of the zip archive.\n3. Unpack `/a3-admintoolkit-master/@AdminToolkitServer/addons/admintoolkit_servercfg.pbo` using PBO Manager ([[1]](https://github.com/SteezCram/Armaholic-Archive/tree/main/PBO_Manager), [[2]](https://native-network.net/downloads/file/6-pbo-manager-v1-4-beta/))\n4. Adjust the variables in the file `config.cpp` (all vairables are in the `AdminToolkit` class which is in the `CfgSettings` class):\n   - `ServerCommandPassword`\n   - `AdminList`\n   - `ModeratorList`\n5. Repack the unpacked folder into a pbo and upload the `@AdminToolkitServer` to the `serverfiles` directory on the server..\n6. Adjust mission and upload to the mpmissions directory on the server:\n   - Unpack your mpmission\n   - Put `/a3-admintoolkit-master/source/mission_file/atk` into the mission root folder\n   - Before class `CfgExileCustomCode` paste `CfgAdminToolkitCustomMod` class with the following content:\n     ```c\n     class CfgAdminToolkitCustomMod {\n       /* Exclude some main menu items\n       * To only show the menus loaded from an extension, use:\n       * \n       * ExcludeMenu[] = {\"Players\", \"Vehicles\", \"Weapons\" , \"Other\"};\n       */\n       ExcludeMenu[] = {};\n       \n       /* Load an additional sqf file as MOD */\n       Extensions[] = {\n         /**\n         * Usage: {\"\u003cYour Mod Title\u003e\", \"\u003cYourModFile\u003e\"}\n         * add a new menu entry called My Extension into main menu */\n         {\"My Extension\", \"MyExtension\"}\n       };\n\n       /* 4 Quick buttons allowing to add any action you want - See example below*/\n       QuickButtons[] = {\n         /* send a message to everyone using the parameter text field */\n         {\"Restart Msg\", \"['messageperm', ['Server Restart in X minutes']] call AdminToolkit_doAction\"},\n         /* Quickly get a Helicopter */\n         {\"Heli\", \"['getvehicle', ['B_Heli_Light_01_armed_F']] call AdminToolkit_doAction\"},\n         /*4 button*/\n         {\"Empty\", \"['Command', ['Variable #1', 'Variable #2']] call AdminToolkit_doAction\"}\n       };\n     };\n     ```\n    - Adjust description.ext:\n      Add to class `CfgRemoteExec.Functions`:\n      ```c\n      class AdminToolkit_network_receiveRequest {\n        allowedTargets = 2;\n      };\n      ```\n    - Repack mission file and upload it to the server\n7. Add `@AdminToolkitServer` as **client mod** in server startup configuration file (`/srv/arma3/lgsm/config-lgsm/arma3server/arma3server.cfg`):\n    ```shell\n    ...\n    mods=\"@Exile;@AdminToolkitServer\"\n    servermods=\"@ExileServer\"\n    ...\n    ```\n\n8. Disable verifySignatures in `serverfiles/cfg/arma3server.server.cfg`, because this mod has no signatur.\n9. Restart the arma 3 server:\n    ```shell\n    docker compose -f /home/admin/arma3/docker-compose.yml down\n    docker compose -f /home/admin/arma3/docker-compose.yml up -d\n    ```\n9. Add the `@AdminToolkit` mod in the Arma 3 launcher to the mods.\n10. Start you game, connect to the server and verify that it's working by pressing F2 and spawning yourself a helicoper or something like this.\n\n### Mod: DMS with \"Capture point\" missions\n* [youtube.com/watch?v=4syLDu9lIrM](https://www.youtube.com/watch?v=4syLDu9lIrM)\n* [youtube.com/watch?v=z24natBw37c](https://www.youtube.com/watch?v=z24natBw37c)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffelbinger%2Farma3server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffelbinger%2Farma3server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffelbinger%2Farma3server/lists"}