Skip to content

TBro1998/ASE-Server-Docker

Repository files navigation

Docker ARK Server

中文文档

This is a Docker-based ARK: Survival Evolved game server that uses GE-Proton to run the Windows version of the ARK server, with ArkApi support.
It includes the latest server files and ArkApi files at build time.

Inspiration and Code Sources

Disclaimer

  • *Compared to running directly on Windows, it will occupy more disk space
  • Since we're using GE-Proton (based on Wine) to simulate Windows system APIs on Linux to run the Windows version of the game server, memory usage might be slightly higher
  • Including the latest server files has its pros and cons. While it saves download time during initial deployment for multi-server setups, we may release a Docker image without server files in the future based on needs

Known Issues

  • When running the server with GE-Proton, server output information cannot be viewed in the container logs
  • The Mods download/update process is not perfect

Future Plans

  • Test performance differences between running the server directly on Windows versus using GE-Proton on Linux, and whether UDP performance is better on Linux
  • Would it be more suitable to use umu-launcher to replace GE-Proton for running ASE server?
  • Develop a server management system based on Go+Vue?

Usage

1. Deploy with Docker Compose

Option 1: Use existing configuration

cd docker

Option 2: Create custom configuration file

You can also directly create and modify a docker-compose.yml file:

services:
  servers:
    # if need preaquatica
    # image: tbro98/ase-server:latest-preaquatica
    image: tbro98/ase-server:latest
    container_name: ase-server
    restart: unless-stopped
    ports:
      - "7777:7777/udp"
      - "7777:7777/tcp"
      - "7778:7778/udp"
      - "7778:7778/tcp"
      - "27015:27015/udp"
      - "27015:27015/tcp"
      - "32330:32330/udp"
      - "32330:32330/tcp"
    environment:
      - TZ=Asia/Shanghai
      - GameModIds=
      - SERVER_ARGS="TheIsland?listen?Port=7777?QueryPort=27015?MaxPlayers=70?RCONEnabled=True?RCONPort=32330?ServerAdminPassword=password?GameModIds= -NoBattlEye -servergamelog -structurememopts -UseStructureStasisGrid -SecureSendArKPayload -UseItemDupeCheck -UseSecureSpawnRules -nosteamclient -game -server -log -MinimumTimeBetweenInventoryRetrieval=3600 -newsaveformat -usestore"
    volumes:
      - ./Saved:/home/steam/arkserver/ShooterGame/Saved
      - ./Plugins:/home/steam/arkserver/ShooterGame/Binaries/Win64/ArkApi/Plugins
      - ./ArkApiLogs:/home/steam/arkserver/ShooterGame/Binaries/Win64/logs
    #networks:
    #  - ark-network

    # networks:
    #   ark-network:
    #     driver: bridge

2. Choose Docker Image Version

The project provides two Docker image versions:

  • tbro98/ase-server:latest - Standard version (after aquatica DLC update)
  • tbro98/ase-server:latest-preaquatica - Pre-Aquatica version, before aquatica DLC update

To use the preaquatica version, modify the image line in docker-compose.yml:

# Change from:
image: tbro98/ase-server:latest
# To:
image: tbro98/ase-server:latest-preaquatica

3. Configure server parameters

Server parameters are configured through environment variables in the docker-compose.yml file. You can modify the following parameters:

  • GameModIds: Comma-separated list of mod IDs to install
  • SERVER_ARGS: Server startup arguments including map, ports, and other settings

Example configuration in docker-compose.yml:

environment:
  - GameModIds=895711211,669673294,1136125765
  - SERVER_ARGS="TheIsland?listen?Port=7777?QueryPort=27015?MaxPlayers=70?RCONEnabled=True?RCONPort=32330?ServerAdminPassword=password?GameModIds=895711211,669673294,1136125765 -NoBattlEye -servergamelog -structurememopts -UseStructureStasisGrid -SecureSendArKPayload -UseItemDupeCheck -UseSecureSpawnRules -nosteamclient -game -server -log -MinimumTimeBetweenInventoryRetrieval=3600 -newsaveformat -usestore"

To apply configuration changes, restart the container:

docker-compose down
docker-compose up -d

4. Available Maps

  • TheIsland
  • TheCenter
  • ScorchedEarth_P
  • Ragnarok
  • Aberration_P
  • Extinction
  • Valguero_P
  • Genesis
  • CrystalIsles
  • Genesis2
  • LostIsland

5. Data Persistence

To save game data, it is recommended to mount the following volumes:

Local Path Container Path Description
./Saved /home/steam/arkserver/ShooterGame/Saved Server save files, including Configs, Logs, SavedArks
./Plugins /home/steam/arkserver/ShooterGame/Binaries/Win64/ArkApi/Plugins ArkApi plugin files location
./ArkApiLogs /home/steam/arkserver/ShooterGame/Binaries/Win64/logs ArkApi log files

6. Using Docker Compose

The project includes a docker-compose.yml file with all necessary configuration.
Using Docker Compose makes it easier to manage the container:

# Build and start the container
docker-compose up -d

# View logs
docker-compose logs -f

# Stop the container
docker-compose down

About

Run Ark: Survival Evolved Dedicated Server with ArkApi on docker

Resources

License

Stars

Watchers

Forks