Deployment Overview of ARK Survival Evolved Server on Server¶
Prerequisites and Basic Requirements¶
The following requirements must be met on the target server before deploying the ARK Survival Evolved Dedicated Server:
- Operating System: Ubuntu (Debian-based)
- Privileges: Root access or
sudoprivileges are required to install packages, create users, and configure systemd services. - Required Packages: The installation process ensures the presence of the following packages:
curllib32gcc1lib32stdc++6screenwgettar- Firewall: The
ufwfirewall must be configured to allow specific UDP ports for the server, query, and RCON connections.
File and Directory Structure¶
The application files and configurations are organized within the following directory structure:
- SteamCMD Directory:
/home/steam/steamcmd - Contains the SteamCMD client and installation scripts.
- ARK Server Directory: Defined by the
ark_dirvariable (defaulting to/home/steam/ARKin the installation script). - Contains the game binaries and server configuration.
- Path to the server executable:
{{ ark_dir }}/ShooterGame/Binaries/Linux/ShooterGameServer - Path to the startup script:
{{ ark_dir }}/ark_server_start.sh - Systemd Service File:
/etc/systemd/system/ark.service - Defines the service unit for managing the ARK server lifecycle.
- User Home Directory:
/home/steam - The dedicated system user
steamowns the application files and directories.
Application Installation Process¶
The ARK Survival Evolved Dedicated Server is installed using the SteamCMD client. The process involves creating a dedicated user, downloading SteamCMD, and executing an update script to install the server binaries.
- A dedicated system user named
steamis created with the shell/bin/bashand home directory/home/steam. - The SteamCMD client is downloaded from
https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gzand extracted to/home/steam/steamcmd. - An installation script located at
/home/steam/install.shis executed. This script performs the following actions: - Forces the installation directory to
/home/steam/ARK. - Logs in anonymously to Steam.
- Updates application ID
376030(ARK: Survival Evolved Dedicated Server) and validates the files. - Upon completion, the server binaries are located in the
ark_dirdirectory.
Access Rights and Security¶
Security and access control are implemented through user isolation and firewall rules.
- User Isolation: The server runs under the dedicated
steamuser account. All application files and directories are owned by this user and group. - Firewall Configuration: The
ufwfirewall is configured to allow incoming UDP traffic on the following ports: server_port: The main game server port.query_port: The port used for server status queries.rcon_port: The port used for Remote Console (RCON) administration.
Databases¶
The provided configuration does not include external database connections. The ARK Survival Evolved Dedicated Server manages its data locally within the installation directory.
Docker Containers and Their Deployment¶
The deployment described in the source files does not utilize Docker containers or docker-compose. The application is installed directly on the host operating system using native binaries and managed via systemd.
Proxy Servers¶
The provided configuration does not include a reverse proxy server (such as Nginx or Traefik) or SSL certificate management (Certbot). The server communicates directly over the configured UDP ports.
Permission Settings¶
File and directory permissions are set to ensure the steam user has the necessary access while maintaining security:
- The
steamuser owns the/home/steamdirectory and all subdirectories. - The installation script
install.shis set with executable permissions (0755). - The server startup script
ark_server_start.shis set with executable permissions (0755). - The systemd service file
ark.serviceis set with permissions0644.
Starting, Stopping, and Updating¶
The ARK Survival Evolved server is managed as a systemd service named ark. The following commands are used to control the service:
- Start the service:
- Stop the service:
- Restart the service:
- Enable the service to start on boot:
- Check the service status:
The service is configured to automatically restart on failure with a 5-second delay (Restart=on-failure, RestartSec=5s). The startup script ark_server_start.sh sets the LD_LIBRARY_PATH environment variable and executes the ShooterGameServer binary with the following parameters:
{{ map_name }}: The name of the map to load.SessionName: The name of the server session.ServerPassword: The password required to join the server.ServerAdminPassword: The password for the server administrator.Port: The main server port.QueryPort: The query port.RCONEnabled=True: Enables the Remote Console.RCONPort: The RCON port.-server: Runs the application in server mode.-log: Enables logging.