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.
- *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
- 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
- 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?
cd dockerYou 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: bridgeThe 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-preaquaticaServer 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 installSERVER_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- TheIsland
- TheCenter
- ScorchedEarth_P
- Ragnarok
- Aberration_P
- Extinction
- Valguero_P
- Genesis
- CrystalIsles
- Genesis2
- LostIsland
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 |
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