diff --git a/Apps/ark-suac/README.md b/Apps/ark-suac/README.md index 5d7b3f4..2c4cd52 100644 --- a/Apps/ark-suac/README.md +++ b/Apps/ark-suac/README.md @@ -23,7 +23,7 @@ This app provides a dedicated server for ARK: Survival Ascended, allowing you to ### Volumes -All volumes are mounted under `/DATA/AppData/ark-survival-ascended/`: +All volumes are mounted under `/DATA/AppData/ark-suac/`: - `steam`: Steam runtime files - `steamcmd`: SteamCMD installation @@ -46,6 +46,12 @@ All volumes are mounted under `/DATA/AppData/ark-survival-ascended/`: - No privileged mode required - No Docker socket access +### Permission Bootstrap + +The compose includes a one-shot helper service `set-permissions` that runs as `root` +before the game server starts. It only performs `chown` on app-specific bind mounts so +the main `ark-asa-server` service can run as non-root `gameserver`. + ### Data Persistence All game data, including server files, save games, and configuration, is persisted in the bound volumes. The container will automatically download and update server files on startup. @@ -121,4 +127,4 @@ Set `ENABLE_DEBUG=1` to prevent server startup and investigate container issues. ## Support For issues specific to this ZimaOS integration, please contact the Zima Apps Team. -For game server issues, refer to the upstream repository or ARK official support. \ No newline at end of file +For game server issues, refer to the upstream repository or ARK official support. diff --git a/Apps/ark-suac/docker-compose.yaml b/Apps/ark-suac/docker-compose.yaml index cc2ce69..d0bf77b 100644 --- a/Apps/ark-suac/docker-compose.yaml +++ b/Apps/ark-suac/docker-compose.yaml @@ -1,26 +1,48 @@ -name: ark-survival-ascended +name: ark-suac services: - server: + ark-asa-server: image: mschnitzer/asa-linux-server:1.4.0 - container_name: ark-survival-ascended + container_name: ark-asa-server + hostname: ark-asa-server + entrypoint: /usr/bin/start_server + user: gameserver + tty: true restart: unless-stopped environment: TZ: Europe/Stockholm - PUID: "1000" - PGID: "1000" - WEBUI_PORT: "8080" + ASA_START_PARAMS: 'TheIsland_WP?listen?Port=7777?RCONPort=27020?RCONEnabled=True -WinLiveMaxPlayers=50 -clusterid=default -ClusterDirOverride="/home/gameserver/cluster-shared"' + ENABLE_DEBUG: "0" ports: - - target: 8080 - published: "8080" + - target: 7777 + published: "7777" + protocol: udp + - target: 27020 + published: "27020" protocol: tcp + depends_on: + - set-permissions + volumes: - type: bind - source: /DATA/AppData/$AppID/config - target: /config + source: /DATA/AppData/$AppID/steam + target: /home/gameserver/Steam + - type: bind + source: /DATA/AppData/$AppID/steamcmd + target: /home/gameserver/steamcmd + - type: bind + source: /DATA/AppData/$AppID/server-files + target: /home/gameserver/server-files + - type: bind + source: /DATA/AppData/$AppID/cluster-shared + target: /home/gameserver/cluster-shared + - type: bind + source: /etc/localtime + target: /etc/localtime + read_only: true # Secure-by-default baseline. Relax only if appen kräver det. security_opt: @@ -32,27 +54,62 @@ services: envs: - container: TZ description: - en_US: Timezone, for example Europe/Stockholm - - container: PUID + en_us: Timezone, for example Europe/Stockholm + - container: ASA_START_PARAMS description: - en_US: User ID for filesystem permissions - - container: PGID + en_us: ARK start params, including map and ports + - container: ENABLE_DEBUG description: - en_US: Group ID for filesystem permissions + en_us: Set 1 to enter debug mode without starting the server ports: - - container: "8080" + - container: "7777" description: - en_US: Web UI port + en_us: Game port for player connections (UDP) + - container: "27020" + description: + en_us: RCON admin port (TCP) volumes: - - container: /config + - container: /home/gameserver/Steam description: - en_US: Application configuration directory + en_us: Steam runtime cache + - container: /home/gameserver/steamcmd + description: + en_us: SteamCMD cache + - container: /home/gameserver/server-files + description: + en_us: ARK server files and saved data + - container: /home/gameserver/cluster-shared + description: + en_us: Shared cluster transfer data + + set-permissions: + image: opensuse/leap:15.6 + container_name: ark-asa-set-permissions + user: root + restart: "no" + entrypoint: + - /bin/bash + - -c + - chown -R 25000:25000 /steam /steamcmd /server-files /cluster-shared + volumes: + - type: bind + source: /DATA/AppData/$AppID/steam + target: /steam + - type: bind + source: /DATA/AppData/$AppID/steamcmd + target: /steamcmd + - type: bind + source: /DATA/AppData/$AppID/server-files + target: /server-files + - type: bind + source: /DATA/AppData/$AppID/cluster-shared + target: /cluster-shared x-casaos: architectures: - amd64 - arm64 - main: server + main: ark-asa-server category: phirna author: Joachim Friberg developer: Joachim Friberg @@ -69,4 +126,4 @@ x-casaos: title: en_us: ARK Survival Ascended Server index: / - port_map: "8080" + port_map: "7777" diff --git a/dist/phirna-appstore.zip b/dist/phirna-appstore.zip index a1536dd..05e65ed 100644 Binary files a/dist/phirna-appstore.zip and b/dist/phirna-appstore.zip differ