This repository provides a Bash script to install and run ARK: Survival Ascended on Linux using SteamCMD + Proton GE, fully managed by systemd.
The main objective is to run one ARK server per LXC container in order to achieve:
- 🧱 Clean isolation
- 📉 Easy CPU / RAM / disk limits
- 💾 Predictable disk usage (less than 20 GB per server)
- 📦 Simple scaling on Proxmox
This project is designed for self-hosters, homelab setups, and Proxmox users.
- 🐧 Debian 13
- 🌐 curl installed
- 📦 Debian 13 LXC container (tested)
Run the installer directly:
Run it inside Debian 13 LXC
apt update && apt upgrade -y && apt install curl -y
bash -c "$(curl -fsSL https://raw.githubusercontent.com/DragoQC/ASA_SingleServer_Proxmox_Script/main/asa-install-single-server.sh)"ℹ️ Note
SteamCMD may occasionally fail on the first run.
If that happens, simply run the command again.
- One server per LXC
- systemd managed service
- Automatic restart on crash
- Automatic update on service restart
- Optional cluster support
- Mod support via config file
- Clean and simple file layout
- Example
Game.iniandGameUserSettings.iniincluded
/opt/asa/
├── start-asa.sh
├── server-config/
│ └── asa.env
├── server-files/
├── steamcmd/
├── GE-Proton10-4/
└── cluster/
All user configuration is done in:
/opt/asa/server-config/asa.envMAP_NAME=TheIsland_WP
SERVER_NAME="ARK ASA Server"
MAX_PLAYERS=20
GAME_PORT=7777
QUERY_PORT=27015
RCON_PORT=27020
MOD_IDS="123456789,987654321"
CLUSTER_ID=""
CLUSTER_DIR="/opt/asa/cluster"
EXTRA_ARGS="-NoBattlEye -crossplay"Run the following command:
systemctl restart asa🧬 Cluster Support (Optional)
Cluster support is disabled by default.
To enable it
Mount the same shared directory on each server:
/opt/asa/clusterEdit asa.env and set:
CLUSTER_ID=mycluster
CLUSTER_DIR=/opt/asa/clusterRestart the service:
systemctl restart asaPlayers will be able to transfer characters, dinos, and items between maps.
🔄 Updating the Server
No manual update command is required.
Every time you run:
systemctl restart asaThe server will:
Stop
Check for updates via SteamCMD
Validate files
Start again
🛠️ Service Commands
- Start the server:
systemctl start asa- Stop the server:
systemctl stop asa- Restart the server:
systemctl restart asa📜 Logs
Check service status:
systemctl status asa
Follow live logs:
journalctl -u asa -f
Restarting the service can take 1–2 minutes due to SteamCMD checks Do not run multiple servers from the same install directory
❓ Why This Exists
- ARK ASA is Windows-only
- Proton works well
- Game panels overcomplicate simple infrastructure
- Linux deserves clean, scriptable tooling
❤️ Credits
- Valve – SteamCMD
- GloriousEggroll – Proton GE
- Wildcard – ARK: Survival Ascended
- You – for hosting your own servers