Skip to content

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 sudo privileges are required to install packages, create users, and configure systemd services.
  • Required Packages: The installation process ensures the presence of the following packages:
  • curl
  • lib32gcc1
  • lib32stdc++6
  • screen
  • wget
  • tar
  • Firewall: The ufw firewall 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_dir variable (defaulting to /home/steam/ARK in 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 steam owns 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.

  1. A dedicated system user named steam is created with the shell /bin/bash and home directory /home/steam.
  2. The SteamCMD client is downloaded from https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz and extracted to /home/steam/steamcmd.
  3. An installation script located at /home/steam/install.sh is executed. This script performs the following actions:
  4. Forces the installation directory to /home/steam/ARK.
  5. Logs in anonymously to Steam.
  6. Updates application ID 376030 (ARK: Survival Evolved Dedicated Server) and validates the files.
  7. Upon completion, the server binaries are located in the ark_dir directory.

Access Rights and Security

Security and access control are implemented through user isolation and firewall rules.

  • User Isolation: The server runs under the dedicated steam user account. All application files and directories are owned by this user and group.
  • Firewall Configuration: The ufw firewall 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 steam user owns the /home/steam directory and all subdirectories.
  • The installation script install.sh is set with executable permissions (0755).
  • The server startup script ark_server_start.sh is set with executable permissions (0755).
  • The systemd service file ark.service is set with permissions 0644.

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:
    sudo systemctl start ark
    
  • Stop the service:
    sudo systemctl stop ark
    
  • Restart the service:
    sudo systemctl restart ark
    
  • Enable the service to start on boot:
    sudo systemctl enable ark
    
  • Check the service status:
    sudo systemctl status ark
    

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.
question_mark
Is there anything I can help you with?
question_mark
AI Assistant ×