Sign In
Sign In

How to Set Up a Factorio Game Server

How to Set Up a Factorio Game Server
Hostman Team
Technical writer
Gaming
06.02.2025
Reading time: 18 min

Factorio is a popular computer game in the automation simulation genre, where players build and manage complex production chains. The game's main goal is to create the most efficient production possible, starting with basic processes and gradually progressing to large-scale automation systems. Thanks to its intricate mechanics, numerous available modifications, and cooperative gameplay options, Factorio has gained a massive following among both beginners and experienced players.

One of Factorio’s key features is its multiplayer mode. It allows a group of players to collaborate or compete in building production lines, making the gameplay more engaging and challenging. Multiplayer requires a server to host player interactions. Having your own server offers many advantages:

  • Control over Gameplay: The server administrator can set game parameters such as player limits, difficulty, mod usage, and even behavioral rules.
  • Stability and Performance: A dedicated server eliminates the influence of local hardware on the game, ensuring a smooth experience even under heavy loads.
  • Availability: The server runs 24/7, allowing players to connect anytime, regardless of the host's schedule or availability.
  • Advanced Settings: Administrators can integrate mods, automate backups, and scale production capabilities by connecting additional servers.

Why Hostman is the Best Choice for Factorio

Hostman provides cloud servers that are perfect for hosting game servers, including Factorio. Here are some reasons to choose this solution:

  • Ease of Use: You don’t need to be an expert in system administration to host a Factorio server. Hostman offers ready-to-use VDS solutions that allow you to set up a server with just a few clicks.
  • High Performance: Hostman’s cloud servers ensure stable operation thanks to powerful processors, high-speed RAM, and fast SSD storage. This is especially important for Factorio, where a large number of objects and complex calculations can create a significant load.
  • Scalability: You can increase server resources at any time to accommodate more players or handle a more complex game world.
  • Global Accessibility: Thanks to Hostman’s distributed infrastructure and high network connectivity standards, players can connect to the server without delays.
  • Support and Documentation: Hostman offers professional technical support to help resolve any issues related to server setup and operation. Additionally, the platform provides detailed guides and documentation for working with its solutions.
  • Cost Efficiency: Using a cloud server helps avoid purchasing and maintaining physical equipment expenses. Clients only pay for the resources they actually use.

In today’s gaming industry, having your own server is not just convenient but often essential. Hostman offers a unique combination of simplicity, performance, and flexibility, making it the optimal choice for hosting a Factorio server.

Preparation for Installation

Before installing a Factorio game server, several preparatory steps are necessary. These include registering with the Hostman cloud service, selecting an appropriate server plan, and setting up the infrastructure. This process ensures a stable and efficient server platform for smooth gameplay.

Registering with Hostman and Accessing the Control Panel

The first step is creating an account on Hostman. This will provide access to the control panel to manage servers and configurations.

1. Open the official Hostman website and click the "Sign Up" button.

Image1

2. Enter your email address or sign up using your Google or GitHub accounts. 

The Hostman interface is intuitive even for beginners. The control panel provides access to server creation, parameter configuration, and monitoring tools.

Selecting a Plan and Setting Up the Infrastructure

After registering, you need to select an appropriate plan that meets the requirements of your game server.

1. Evaluate the Server Load. Before choosing a plan, assess the resources your server will need. This depends on:

  • Number of Players: The more players connect simultaneously, the higher the load.
  • Game World Complexity: More objects, production lines, and modifications require greater resources.

2. Choose a Plan. Hostman offers several pricing plans. Choose server specifications based on recommendations from Factorio's official resources. We will discuss performance requirements further in the next section.

Although Factorio is a lightweight game, its performance depends on the complexity of the world and player activity. Below are the minimum and recommended requirements:

  • Operating System: Linux (preferably Ubuntu or Debian).
  • Processor: Dual-core processor at 2 GHz or higher. For larger servers, a quad-core processor is recommended.
  • RAM:
    • Minimum: 2 GB for servers with a small number of players.
    • Recommended: 4–8 GB for servers with mods and 10–20 players.
  • Disk Space:
    • 5–10 GB for the basic installation.
    • Allocate 20 GB or more if using mods or maintaining backups.
  • Network Connection:
    • High bandwidth and low latency.
    • A minimum of 10 Mbps for both inbound and outbound traffic.

Setting Up the Server on Hostman

Proper preparation is key to ensuring the stable and uninterrupted operation of the Factorio server. By completing registration, selecting the right plan, and configuring the server on Hostman, you will have an ideal platform for hosting a Factorio game world:

  1. Go to the "Cloud Servers" section in the control panel.
  2. Specify the operating system (e.g., Ubuntu), region, configuration, and network parameters based on the recommendations above.
  3. Click "Order" on the right menu.

Once the purchase is completed, the server setup process will begin automatically, which may take up to 10 minutes.

After deployment, a dashboard with connection information, hardware load statistics, and traffic graphs will appear. Now you're ready to proceed with installing Factorio.

Installing a Factorio Server Using Dockerfile

Using Docker to deploy a Factorio game server is a modern and flexible approach that automates the setup process and ensures server stability. Docker isolates the server software within a container, making the installation process more manageable and independent of the server's operating system. This method is similar to traditional setups but involves fully configuring Docker for the future Factorio server.

  • Simplified Setup and Management: Docker simplifies server configuration, eliminating the need for manual dependency installations and complex configurations.
  • Portability: Docker containers work consistently across different operating systems and server environments, enabling seamless server migration between machines.
  • Isolation: All server components reside inside the container and are isolated from the host system, reducing the risk of software conflicts.
  • Flexibility and Scalability: Easily run multiple Factorio servers on one host and configure them for various purposes, such as mod testing or cluster creation.
  • Support and Updates: The factoriotools/factorio-docker repository is actively maintained, ensuring timely updates and fixes.

Installing Docker

Docker is a containerization software that must be installed on your server before configuring Factorio.

  1. Update system packages:

sudo apt update && sudo apt upgrade -y
  1. Install Docker:

sudo apt install docker.io -y
  1. Verify Docker installation:

docker --version
  1. Install Docker Compose (if not installed). Docker Compose is used to manage multi-container applications. Install it with:

sudo apt install docker-compose -y

Cloning the Repository

You need a repository with a ready-to-use Dockerfile and configuration templates.

  1. Install Git (if not installed):

sudo apt install git -y
  1. Clone the repository:

git clone https://github.com/factoriotools/factorio-docker.git
  1. Navigate to the repository directory:

cd factorio-docker

Server Configuration via docker-compose.yml

The docker-compose.yml file defines server parameters. Configuring this file is crucial for personalizing your game server.

  1. In the repository directory, create or edit the docker-compose.yml file. Here’s a basic example:

version: '3.3'
services:
  factorio:
    image: factoriotools/factorio
    ports:
      - "34197:34197/udp"
    volumes:
      - ./data:/factorio
    environment:
      - FACTORIO_SERVER_SETTINGS=./data/server-settings.json
      - TOKEN=FactorioToken
  1. Configure the settings:

  • Server Port: Ensure port 34197 is open on your system.

  • Data Storage: The ./data directory stores server files, including saves and mods.

  • Settings File: Update server-settings.json to specify game parameters (e.g., server name, password, and player count).

  • Token: Add a token obtained from Factorio's website.

Starting the Server

  1. Start the server:

docker-compose up -d

  1. Check the container status:

docker ps

Connecting to the Server

Connect to the server in the Factorio game using your server's IP address and port 34197.

Additional Tips

Updating the Server:

docker-compose pull
docker-compose up -d

Stopping the server:

docker-compose down

Viewing logs:

docker logs <container_id>

Adding Mods:

Upload mods to the ./data/mods folder and restart the container.

Installing a Factorio server using Docker is a powerful solution that allows you to deploy a server quickly with minimal effort. This approach is ideal for users who value flexibility and want full control over the server while avoiding complex manual configurations.

Manual Installation of a Factorio Server on a Dedicated Server

Installing Factorio manually on a dedicated server is ideal for users who want full control over the server's setup and management. This approach requires basic command-line skills and an understanding of server infrastructure. It's particularly useful if you plan to customize the server with unique settings or integrate it into a complex environment.

Preparing the Dedicated Server

  1. Choose the Operating System. Factorio Server officially supports Windows and Linux. A Linux distribution like Ubuntu or Debian is recommended for its stability, low resource consumption, and extensive automation capabilities.

  2. Before starting the installation, update all packages:

sudo apt update && sudo apt upgrade -y
  1. Install the necessary utilities for server setup:

sudo apt install wget curl screen -y
  1. Create a separate user to run the server, for better security: 

sudo adduser factorio  
sudo su - factorio

Downloading and Installing Factorio Server

  1. Visit the Factorio Headless Server page to get the latest Linux version link. Then execute:

wget https://factorio.com/get-download/stable/headless/linux64 -O factorio.tar.xz
  1. Extract the files:

tar -xf factorio.tar.xz
  1. Organize the file structure:

mkdir -p ~/factorio/saves ~/factorio/mods

Configuring server-settings.json

Create or edit the server settings file to define key parameters, such as server name, password, and player limits. Example configuration:

{
  "name": "My Factorio Server",
  "description": "A friendly server for everyone.",
  "tags": ["game", "fun"],
  "max_players": 10,
  "visibility": {
    "public": true,
    "lan": true
  },
  "username": "your_username",
  "password": "your_password",
  "game_password": "game_password",
  "require_user_verification": true,
  "max_upload_in_kilobytes_per_second": 0,
  "minimum_latency_in_ticks": 0
}

Important:

  • Enter your Factorio account username and password, available on the official website. Ensure your account has a valid game license.

  • Alternatively, if you prefer not to use login credentials, you can provide a token from your profile on the same site.

Save server-settings.json in the server's root folder (e.g., ~/factorio).

Additional Settings

  • Mods: Download modifications from the Factorio Mod Portal and place them in the ~/factorio/mods folder.
  • Save Files: Prepare a save file using the local game client and upload it to the ~/factorio/saves folder.

Alternatively, generate it yourself using:

./bin/x64/factorio --create saves/new_game.zip

Starting the Factorio Server

  1. Navigate to the server directory and run:

./bin/x64/factorio --start-server ~/factorio/saves/new_game.zip --server-settings ~/factorio/server-settings.json
  1. Use screen to keep the server running after closing the terminal:

screen -S factorio_server  
./bin/x64/factorio --start-server ~/factorio/saves/new_game.zip --server-settings ~/factorio/server-settings.json

To return to the session:

screen -r factorio_server

After launching, check if the server is accessible by connecting via the Factorio client using the server's IP address and port (default: 34197).

New player connections will appear in the server logs.

Tips

  • Automating Server Startup: Create a systemd service to automatically start the server after system reboot:

sudo nano /etc/systemd/system/factorio.service

Example content:

[Unit]
Description=Factorio Server
After=network.target

[Service]
Type=simple
User=factorio
WorkingDirectory=/home/factorio/factorio
ExecStart=/home/factorio/factorio/bin/x64/factorio --start-server /home/factorio/factorio/saves/savefile.zip --server-settings /home/factorio/factorio/server-settings.json
Restart=always

[Install]
WantedBy=multi-user.target

Save the file, then enable and start the service:

sudo systemctl enable factorio.service  
sudo systemctl start factorio.service
  • Updating the Server: Download the new version and replace old files, preserving the saves and mods directories.

Manual installation of a Factorio server provides maximum flexibility in setup and management, making it a preferred choice for experienced users. Despite the required effort, this approach allows you to adapt the server to any game scenario and ensures its reliable operation.

Server Configuration

Configuring a Factorio game server is a crucial step that not only allows customization of the gameplay but also ensures stable operation under increasing loads. This section covers installing mods, setting up automatic saves and backups, and optimizing the server for higher loads.

Adding Mods

Mods enhance gameplay by adding new elements, mechanics, and scenarios. Factorio has official mod support, making installation and management straightforward.

  • Factorio Mod Portal: The official catalog for mods allows you to search by keywords or categories and review popularity and user feedback.

  • Manual Installation: After selecting a mod, download its archive (.zip) and place it in the server's mods directory.
    The path to this directory depends on the server structure:

    1. For a manually configured server: <server_folder>/mods.

    2. For a Docker setup: ~/factorio-docker/data/mods.

  • Automated Mod Download with API Token: You can automate mod downloads using an API token if your server has network access.

    1. Go to your account settings on the Factorio website.

    2. Copy the token.

    3. Specify it in the player-data.json file located in the server directory.

Activating Mods

Enable the required mods by listing them in the mod-list.json file. Example configuration:

{
  "mods": [
    {"name": "base", "enabled": true},
    {"name": "bobmods", "enabled": true},
    {"name": "angelsmods", "enabled": true}
  ]
}

After adding or modifying mods, restart the server to apply the changes.

Configuring Automatic Saves and Backups

Automatic saving and data backups are critical processes that prevent progress loss in case of server failure or player error.

Automatic Saves

Specify the save frequency in the server-settings.json file:

{
  "autosave_interval": 5,
  "autosave_slots": 10
}
  • autosave_interval: The interval between saves, in minutes.

  • autosave_slots: The number of save slots (older saves will be overwritten).

Ensure the server is saving progress by checking for save files in the saves folder.

Backup Configuration

Set up a script to regularly copy save files to another server or cloud storage. Below is an example using a Bash script:

#!/bin/bash
SOURCE="/path/to/factorio/saves"
DEST="/path/to/backup/location"
TIMESTAMP=$(date +"%Y%m%d%H%M%S")
tar -czf "$DEST/factorio_backup_$TIMESTAMP.tar.gz" "$SOURCE"

Use cron to schedule regular script execution:

  1. Open the cron editor:

crontab -e
  1. Add a line to run the script daily at 3:00 AM:

0 3 * * * /path/to/backup_script.sh

This setup ensures secure data storage and prevents game progress loss.

Optimizing the Server for High Load

When the server has a large number of players or uses resource-intensive mods, it's essential to minimize lag and ensure stable performance.

Resource Allocation

Make sure the server meets the minimum and recommended requirements:

  • CPU: High clock speed (>3 GHz), preferably multi-core.

  • RAM: At least 2 GB for the base game, with an additional 1 GB for every 10 players.

  • Disk Subsystem: SSD for fast access to saves and mods.

Configuring Limits

In the server-settings.json file, limit the number of players to avoid overload:

{
  "max_players": 20
}

Reducing Load

Choose mods optimized for multiplayer. Some mods can significantly increase CPU and network load.

Increase tick interval. Setting a higher value for minimum_latency_in_ticks helps reduce network load:

{
  "minimum_latency_in_ticks": 2
}

Server Logs

Regularly check the logs for errors or warnings. Logs are located in the server folder (factorio-current.log).

Using Monitoring Tools

Set up monitoring tools like htop or Prometheus to track resource usage in real-time.

Game Updates

Ensure the server and clients are using the latest version of Factorio. Developers frequently release updates that improve performance.

Proper mod configuration, automation of saves and backups, and server resource optimization are the foundation for ensuring a stable and enjoyable gaming experience. These steps will help avoid technical issues and create an environment for the long-term operation of your Factorio server.

Server Testing

Testing the Factorio game server is the final stage of setup, ensuring its functionality and stability. At this point, it's essential to check connection, server performance under load, and address any potential issues.

After starting the server, ensure it is accessible for connections. Follow these steps:

  1. Obtain the server IP address. For cloud solutions like Hostman, you can find the IP in the control panel.

  2. Ensure the server's port (34197) is open for external connections. If the port is closed, open it with:

sudo ufw allow 34197
  1. Start the game and connect:

    • Open Factorio and select "Multiplayer."

    • Click "Join Game."

    • Enter the server's IP address and port (default is 34197). Example: 192.168.1.100:34197.

    • Click "Connect."

Once connected successfully, verify the following:

  • World Interaction: Ensure you can interact with the world (mining resources, building).

  • Server-Client Synchronization: For example, the time of day should be the same for everyone.

Ask another player to connect to your server. Ensure the server is accessible via the external IP address.

If you've set the game_visibility parameter in the server's settings, your server will appear in the public server list of Factorio. Check if it's listed and available for connection.

Resolving Common Errors and Issues

In this section, we'll review some of the most common errors and issues that might arise and offer solutions to fix them.

Connection Issues

  • Error: "Couldn't establish network communication."

    • Cause: Server port is closed or inaccessible.

    • Solution: Make sure port 34197 is open in the firewall and router. For NAT routers, set up port forwarding.

  • Error: "Failed to connect to server."

    • Cause: Incorrect IP address or port.

    • Solution: Check that you're using the correct address and port. If using a domain name, verify it resolves correctly to the IP.

  • Error: "Server not responding."

    • Cause: The server is not running or has crashed.

    • Solution: Check if the server is running. Restart it if necessary.

Performance Issues

  • Error: Lag with many players.

    • Cause: The server can't handle the load.

    • Solution:

      • Reduce the number of players (adjust the max_players setting in server-settings.json).

      • Upgrade server hardware.

      • Monitor CPU and memory usage with system tools like htop or top.

  • Error: Data transmission delays.

    • Cause: High network latency.

    • Solution:

      • Switch to a faster network connection.

      • Check the connection speed with tools like ping or iperf.

Mod Issues

  • Error: "Mod mismatch."

    • Cause: Different mod versions between client and server.

    • Solution: Ensure all players are using the same mod versions as the server.

  • Error: "Missing mod dependencies."

    • Cause: Required mods are not installed.

    • Solution: Check mod requirements on the Factorio Mod Portal and install missing dependencies.

Save and Load Errors

  • Error: "Corrupted save file."

    • Cause: Save file is damaged due to a system crash.

    • Solution: Use the most recent backup. Regular backups help prevent data loss.

  • Error: "Cannot load map version."

    • Cause: The map version is incompatible with the current game version.

    • Solution: Update the server and client to the latest Factorio version.

General Server Failures

  • Error: "Out of memory."

    • Cause: Insufficient RAM to handle the game process.

    • Solution:

      • Increase the amount of RAM on the server.

      • Kill unnecessary processes.

  • Error: Unexpected server crash.

    • Cause: Configuration errors or mod conflicts.

    • Solution:

      • Check the server logs (factorio-current.log).

      • Disable recently added mods.

Game Server Testing is an essential process that helps identify and resolve potential issues before players start using the server. A careful approach at this stage ensures smooth operation and a comfortable gaming experience for all participants. Connection setup, mod management, and performance optimization are key steps to creating a quality Factorio server.

Conclusion

Setting up a Factorio game server can be accomplished in several ways, depending on the user’s experience and needs. In this article, we've detailed two installation and configuration approaches: Dockerfile and manual installation on a dedicated server. Each method has its features, advantages, and varying levels of technical expertise required.

  • Using Dockerfile: Docker is ideal for those familiar with containerization and seeking flexible server management. It provides high control, enabling easy updates, migrations, or scaling of the server. This approach is especially useful if hosting the server on a platform with limited resources or needing frequent configuration changes.

  • Manual Installation on a Dedicated Server: This method is preferred by experienced users who need full control over the server configuration and management. It allows fine-tuning the server for specific tasks and optimizing it for heavy loads. However, this approach requires server administration knowledge and more time for setup.

Hostman offers all the necessary tools to create and manage Factorio game servers. Regardless of your skill level, the platform enables quick server setup, customization, and a smooth gaming experience.

Gaming
06.02.2025
Reading time: 18 min

Similar

Gaming

How to Create a Server in Counter-Strike 2

Creating your own server in Counter-Strike 2 is not just a great way to customize the gameplay to your needs and play with your circle of friends. It’s a whole world of opportunities for enthusiasts and administrators. Your own server opens unlimited horizons for creativity and control: you set the rules, choose the maps, adjust game parameters such as speed, weapon damage, or round economy, and ensure a stable connection with low ping without random players. It’s an ideal platform for cozy evening games with colleagues, organizing amateur tournaments, or simply honing your skills in a controlled arena. You become the full owner of your virtual space. In this article, we will cover all stages of creating and setting up a CS2 server from scratch in as much detail as possible, taking into account all potential pitfalls. We will go through the process from selecting a provider and configuring the operating system to the moment when you and your friends are already battling on a freshly deployed server. If you carefully follow each step of the instructions, even a complete beginner who has never administered a Linux server before will be able to manage the setup. Which VPS to Choose? One of the most important questions for anyone thinking about creating their own game server is choosing a reliable provider. Stability, low ping, uninterrupted uptime, and responsive technical support are key factors for comfortable and hassle-free gameplay. Hosting a CS2 server on a home computer comes with risks: a dynamic IP address, unstable connection, high ping for players from other regions, and the need to keep the PC running 24/7. Ordering a virtual server (VPS) solves all these problems by providing powerful and stable hardware in a professional data center. For our CS2 server, we will choose a VDS from Hostman with the following configuration: CPU 2 x 3.3 GHz, RAM 4 GB, NVMe 80 GB; 1 IPv4. This setup is sufficient for comfortable gameplay with friends, roughly 8–10 people. If you’re thinking about something bigger, such as a public server with regular activity of 20+ players or running complex mods with many plugins (e.g., MetaMod, SourceMod), it’s worth considering a more expensive, high-performance plan with extra resources. With Hostman, you can easily scale your setup, so you can start small and upgrade your virtual server configuration at any time with just a few clicks. The system that will run the server is Ubuntu 24.04 LTS (Noble Numbat). This is a stable and popular distribution version, ensuring compatibility and a wealth of ready-made instructions available online. Server Preparation First, connect to your server via SSH; more details can be found in our article. To create the server, we need to install Docker and Docker Compose. To do this: Update APT packages: sudo apt update Install supporting packages: sudo apt install curl software-properties-common ca-certificates apt-transport-https -y curl: a tool for transferring data and working with URLs; software-properties-common: provides scripts for software management; ca-certificates: necessary for secure data transfer and certificate validation; apt-transport-https: allows working with repositories that transmit data via HTTPS. Import the GPG key: wget -O- https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor | sudo tee /etc/apt/keyrings/docker.gpg > /dev/null Add the Docker repository: echo "deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null Update APT package indexes again: sudo apt update Install Docker: sudo apt install docker-ce -y Check that Docker is running correctly: sudo systemctl status docker This command will show Docker’s status, indicating that it is active and running. Great! Docker has been successfully installed. Deploying the CS2 Server This stage can be conditionally divided into two parts: obtaining a special key from Steam and directly configuring the server container. Obtaining the SRCDS Token (Game Server Login Token, GSLT) For your server to be legal and fully functional, it needs a unique key for authentication on the Steam network. Without this token, the server will be considered anonymous and severely limited in its functionality (marked as “pirate,” with some features disabled). Steam account requirements: The account must not have bans (VAC or Game Ban) in any game. The account must not be restricted (Community Ban), for example, unable to add friends or trade. The account must have a verified mobile number linked (Steam Guard). CS2 must be added to the library on the account (any purchase in the Steam store over $5 also removes this restriction). Maximum number of tokens that can be created on one account: 1000. Step-by-step instructions: Log in to Steam in your browser. Go to the official Game Server Management page. At the bottom of the page, find the form Create New Game Server Login Token. In the App ID field, enter 730. This is the unique identifier for Counter-Strike 2 in Steam. In the Memo field, you can enter any reminder for yourself (e.g., “My CS2 server on Hostman”). Click the Create button. The system will provide a long string of letters and numbers which is your token. Copy it and save it in a secure location (for example, in a file on your computer). You will need this token in the next step. This token is the password to access your server from your account. Do not publish it publicly or share it with third parties. Server Configuration and Launch Now let’s return to our server terminal. We will use a ready-made solution in the form of a Docker container, which significantly simplifies the process of installing and updating the game server. Check Docker Compose installation. Modern versions of Docker already include the Compose plugin. Let’s check: sudo docker -v && sudo docker compose version The output should show the versions of Docker and Docker Compose, confirming they are ready to use. Create a working directory. It’s best to store all server configuration files in a separate folder for organization: mkdir cs2server && cd cs2server Download the docker-compose.yml configuration file. Instead of creating the file manually, we’ll use a ready-made example from a popular repository. Download it directly to the server: wget https://raw.githubusercontent.com/joedwards32/CS2/refs/heads/main/examples/docker-compose.yml Create the .env configuration file. This is the most important file, containing all sensitive data and your server settings.  nano .env In the text editor, insert the following parameters, replacing generated_token_earlier with the GSLT token you obtained in the previous section: # Mandatory parameters SRCDS_TOKEN=generated_token_earlier # Password for RCON (remote server management) CS2_RCONPW=Your_Complex_Password_1 # Password for connecting to the server (leave empty for public server) CS2_PW= # Your server’s name as players will see it in the server list CS2_SERVERNAME=My Cool CS2 Server # Password for GOTV (spectator mode) TV_PW=Your_Complex_Password_2 # Additional settings (can be configured later) CS2_PORT=27015 CS2_TV_PORT=27020 CS2_IP=0.0.0.0 CS2_MAXPLAYERS=10 CS2_MAP=de_dust2 CS2_GAMETYPE=0 CS2_GAMEMODE=1 After filling in the values, press Ctrl+O to save the file, Enter to confirm, and Ctrl+X to exit the nano editor. (Optional) Perform basic docker-compose.yml configuration. Open the file to quickly review or modify some parameters: nano docker-compose.yml You’ll see the file structure. Here you can directly change parameters such as: CS2_SERVERNAME: the server name visible to players. CS2_RCONPW: password for remote management via RCON. CS2_PW: password to connect to the server. Leave empty for a public server: "". TV_PW: password for spectators on GOTV. ./cs2/csgo:/home/steam/cs2-dedicated/csgo: connects your server’s configuration folder to the container folder, ensuring settings persist after updates. After reviewing and making any changes, save the file (Ctrl+O, Enter, Ctrl+X). Run the container: sudo docker compose up -d The -d flag means “detached,” so the container will run in the background while you can continue working in the terminal. Monitor the launch process. The server will not start instantly. Docker will first download the CS2 server image, then initialize it and load game files. This may take a significant amount of time (tens of minutes) because the game files are large. Monitor the process with the following commands: General container status: sudo docker compose ps View real-time logs (very useful for tracking progress): sudo docker compose logs -f To exit log monitoring, press Ctrl+C. View only the latest log entries: sudo docker compose logs The logs will show how the server downloads and updates CS2. Completion and successful launch are indicated by a line like: [S_API] SteamNETSockets startup successful and the absence of errors. Do not interrupt the process or shut down the server until loading is complete. Wait for the readiness message. If you see a successful launch message in the logs, your CS2 server is now running and is likely visible in the public server list in the game. Next, we move on to testing and fine-tuning it. Connecting to the Server and Basic Management Now we can join our own server. Enable the Developer Console. Go to CS2 settings → Game → Advanced Settings and click Enable Developer Console. Find the public IP address of your VPS. It’s listed in your Hostman control panel on the server Dashboard. Open the console in the game (using the ~ key on your keyboard, below Esc). Enter the connection command. The standard CS2 port is 27015. For example: connect 123.123.123.123 Replace 123.123.123.123 with your server’s real IP address. If you set a server password (CS2_PW), enter: password your_server_password before running the connect command. Once connected, you can start playing on your personal server. Conclusion As you can see, the process of creating your own Counter-Strike 2 game server, though it may seem complex at first, becomes quite manageable with a clear step-by-step guide. Successfully launching a game server is important but only the first step in creating a stable and engaging gaming environment. Further work should focus on comprehensive optimization and configuration of all server systems. The foundation of stable operation is a well-configured server file setup. These settings determine all aspects of functionality, from network parameters and game rules to security and performance. Detailed configuration ensures reliable and predictable server operation. To expand functionality, you should implement modular platforms like MetaMod and SourceMod. These systems allow integration of a wide range of plugins, providing enhanced moderation, analytics, and game management capabilities. Special attention should be paid to designing a balanced map rotation cycle, which directly affects player retention. Properly configured map rotation maintains long-term community interest. Equally important is implementing a thoughtful administration system with clearly defined access rights. This ensures rapid response to incidents and minimizes operational risks. A key element of professional project positioning is integrating a domain name. Using a custom domain instead of an IP address increases brand recognition, simplifies user access, and builds trust. The domain becomes part of corporate identity and integrates easily into marketing materials. Implementing these measures comprehensively allows you to create a full-featured, reliable, and scalable gaming product, ready for your target audience and future development.
29 October 2025 · 10 min to read
Gaming

How to Set Up a Valheim Server

Valheim is a game that transports players to a vast fantasy world inspired by Norse mythology and Viking culture. Valheim combines elements of survival, exploration, and building. Its multiplayer mode has made it especially popular.  Pros: Atmosphere and immersion Interesting co-op gameplay Dynamically generated map Cons: There is no real plot — the goal is to survive, explore the world, and defeat bosses. The graphics, although cozy, noticeably lag behind modern projects and can still heavily load the graphics card. The building system is inferior, for example, to that implemented in Enshrouded. The combat system quickly becomes repetitive due to its monotony. Hosting a Valheim dedicated server is an excellent way to create a persistent world where you and your friends can play anytime. Setting up a dedicated server requires some basic knowledge of networking, Linux, and Docker. Preparing the VM Recommended requirements for a Valheim server: CPU: 4 RAM: 8 GB Disk: 20 GB Network: from 50 Mbit/s (the main factor is the server response latency (ping), ideally up to 50) Valheim server ports: 2456 — Game traffic 2457 — Steam Matchmaking The focus is on single-core performance, so even 4 cores are more than enough. Minimum requirements for CPU and RAM: 2 cores and 4 GB of RAM. We will create a cloud server in Hostman with the following parameters: OS: Ubuntu 24.04 CPU: 4 × 3.3 GHz RAM: 8 GB NVMe: 80 GB Connect to the server via SSH. You can get the login and password in the cloud server control panel under the Access tab. Next, update the packages and install Docker: apt update && apt upgrade -y curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh Create a directory to store the server files and navigate into it: mkdir /opt/valheim && cd /opt/valheim Launching the Valheim Server As a ready-made Docker image, we will use the project lloesche/valheim-server-docker. Create a compose.yaml file with the following content: services: valheim: image: ghcr.io/lloesche/valheim-server restart: always stop_grace_period: 2m cap_add: - sys_nice volumes: - ./server/config:/config - ./server/data:/opt/valheim ports: - 2456:2456/udp - 2457:2457/udp environment: - SERVER_NAME=HostmanServer - WORLD_NAME=skyrim - SERVER_PASS=secrett SERVER_PASS must be at least 6 characters long. SERVER_NAME must be at least 5 characters long (no special characters). To start the server: docker compose up -d Check status: docker compose ps Check logs: docker compose logs -f The first startup will take approximately 5–15 minutes, because the Valheim server needs to download the files and latest updates from Steam (about 3.2 GB). Make sure ports 2456 and 2457 are not blocked by a firewall and are accessible from the internet. You can check using the nmap utility or online port checking services like check-host.net (UDP port). After the server has started, in the logs you will see an entry like: valheim-1  | valheim-server 04/01/2025 20:39:33: Server is already the latest version To start playing on your server, launch Valheim from your Steam library. Choose Start Game → Join Game → Add Server. Enter IP:PORT. Each time you connect, the system will request the password that we set in the compose.yaml file. Additional Valheim Server Settings For more advanced server configuration, there are predefined variables that you can add to the compose.yaml file in the environment section: SERVER_NAME: My Server — server name as it appears in the server browser SERVER_PORT: 2456 — UDP port the server listens on WORLD_NAME: dedicated — world name (server directory will use this name, helpful for migrations) SERVER_PASS: secret — password for accessing the server, at least 6 characters SERVER_PUBLIC: true — whether the server should appear in the public server list (true) or not (false) SERVER_ARGS: "" — additional Valheim server command-line arguments ADMINLIST_IDS: Space separated list of admin SteamIDs — list of SteamID64 admins separated by spaces, you can view the ID in server logs or in-game by pressing F2 BANNEDLIST_IDS: Space separated list of banned SteamIDs — list of blocked SteamID64s separated by spaces PERMITTEDLIST_IDS: Space separated list of whitelisted SteamIDs — list of allowed SteamID64s separated by spaces CROSSPLAY: false — whether the server allows non-Steam clients to connect (true) or not (false) UPDATE_CRON: "*/15 * * * *" — update check schedule in cron format UPDATE_IF_IDLE: true — check updates only if no players are on the server RESTART_CRON: "10 5 * * *" — server restart schedule in cron format RESTART_IF_IDLE: true — only perform daily restart if no players are on the server TZ: Europe/Nicosia — timezone Other variables can be found on the project page on GitHub. To adjust the gameplay itself, you can use additional arguments in the variable: SERVER_ARGS: "-preset casual" Allowed values: Normal, Casual, Easy, Hard, Hardcore, Immersive, Hammer. For even more fine-tuned settings, you can use modifiers. For example, to disable raids: SERVER_ARGS: "-modifier raids none" Modifiers and their values: Combat: veryeasy, easy, hard, veryhard DeathPenalty: casual, veryeasy, easy, hard, hardcore Resources: muchless, less, more, muchmore, most Raids: none, muchless, less, more, muchmore Portals: casual, hard, veryhard Detailed description of modifiers Combat veryeasy: Player damage ×1.25, enemy damage ÷2, enemy speed and size ÷0.9 easy: Player damage ×1.1, enemy damage ÷1.33, enemy speed and size ÷0.9 normal: Base parameters 1:1 hard: Player damage ÷1.18, enemy damage ×1.5, enemy speed and size ×1.1 veryhard: Player damage ÷1.43, enemy damage ×2, enemy speed and size ×1.2 DeathPenalty casual: No equipment loss, minimal skill loss veryeasy: All items stay, smaller skill loss easy: All items lost, smaller skill loss normal: Standard death penalty hard: Equipment loss, faster skill loss hardcore: Full loss of items and skills on death Resources muchless: ×0.5 less: ×0.75 normal: ×1.0 more: ×1.5 muchmore: ×2.0 most: ×3.0 Raids none: Raids completely disabled muchless: Significantly reduced raid frequency less: Reduced raid frequency normal: Standard raid frequency more: Increased raid frequency muchmore: Significantly increased raid frequency Portals casual: Metals can be carried through portals normal: Standard item transfer rules hard: Cannot use portals during active boss fights veryhard: Portals completely disabled Features of the Game World and Interesting Facts There is no place for tenderness in Valheim. This world, woven from Norse myths and pixelated beauty, does not just challenge you — it tests your limits. Here, even the simplest actions can turn into a catastrophe, and victories come through blood, sweat, and countless funny stories. When a tree is your main enemy You swing your axe at a big tree in the meadows, confident in your strength. The final blow — and the trunk starts to fall with a crash, its branches catching on neighboring trees, the trunk bounces, flying straight towards your teammates… And suddenly the entire team is wiped out, surrounded by a fallen forest, smashed buildings, and the bitter realization that nature in Valheim is more dangerous than any monster. The sea calls You decided to go on a scouting trip: built your first raft, pushed off from the shore, drifting lazily on the waves. And then the current suddenly grabs you and pulls you far out to sea. Around you — endless water, and from the depths comes an ominous bubbling. You helplessly try to row back to shore. Painfully struggle your way home: minutes of cheerful sailing turn into hours of suffering. Trolls are the best architects Three hours of painstaking work. You built a fortress with high walls, carefully planned the defenses, placed torches — pride swells. But as soon as the sun sets behind the horizon, the earth trembles with heavy footsteps. Two blue trolls, swinging clubs, approach your gates. Within minutes, your buildings are reduced to a pile of splinters. You fought desperately, but your creation is now just a memory. Valheim does not forgive mistakes, but that is precisely its charm. Each failure is a story you will tell around the campfire. Each victory is a reason for pride. Here your ambitions will be broken, your hopes trampled, and your buildings destroyed. Conclusion What attracts players to Valheim most is its atmosphere and cooperative mode, where teamwork unlocks new opportunities and makes the game more engaging and varied. Even a seemingly simple game like this can draw you in for many hours in good company. For a comfortable experience, it is recommended to set up the server according to the preferences and wishes of the main players who want to take part in the adventures.
09 July 2025 · 8 min to read
Gaming

How to Set Up an Enshrouded Server

Enshrouded is an open-world fantasy RPG with cooperative gameplay, allowing up to 16 players on a single server. It has received overwhelmingly positive reviews on Steam (86%). Pros: Immersive atmosphere Beautiful open world Building mode (huge creative freedom) Engaging cooperative gameplay Detailed game settings (allowing for reduced grind, hunger mechanics, various environment and enemy settings, as well as day/night duration adjustments) Cons: Story (immersion relies on reading notes and collecting items) Playing Enshrouded solo or with a group offers completely different experiences and emotions. You could say that the developers primarily focus on multiplayer gameplay on dedicated servers. In this article, we’ll describe how to set up a private dedicated server for Enshrouded. The current version at the time of writing is v0.8.0.1. Creating an Enshrouded Server Server Requirements Minimum requirements: CPU: 4 cores RAM: 8 GB Disk: 20 GB Network: At least 50 Mbps (the key factor is server response time (ping), ideally under 50ms) Ports: 15367 TCP/UDP In this guide, we will use a affordable and cheap cloud server from Hostman with the following fixed configuration: OS: Ubuntu 24.04 CPU: 4 × 3.3 GHz RAM: 8 GB NVMe Storage: 80 GB Configuring the Server After connecting to the server, update the packages and install Docker: apt update && apt upgrade -ycurl -fsSL https://get.docker.com -o get-docker.shsudo sh get-docker.sh Create a directory for the server files: mkdir /opt/enshrouded Navigate to the directory: cd /opt/enshrouded We will use the "Enshrouded Dedicated Server with Autoupdate (supervisord)" Docker image. Next, create a compose.yaml file with the following content: services: enshrouded: container_name: enshrouded image: mornedhels/enshrouded-server:latest restart: unless-stopped stop_grace_period: 90s ports: - "15637:15637/udp" volumes: - ./game:/opt/enshrouded environment: - SERVER_NAME=Hostman - UPDATE_CRON=*/30 * * * * Run the server: docker compose up -d Check the server status: docker compose ps View server logs: docker compose logs -f All necessary files and updates will be downloaded during the first launch, and the server will start with default settings. Server Settings Stop the container before making changes: docker compose down Edit the server configuration files: nano game/server/enshrouded_server.json Example configuration for enshrouded_server.json: { "name": "Hostman", "saveDirectory": "./savegame", "logDirectory": "./logs", "ip": "0.0.0.0", "queryPort": 15637, "slotCount": 16, "voiceChatMode": "Proximity", "enableVoiceChat": false, "enableTextChat": false, "gameSettingsPreset": "Default", "gameSettings": { "playerHealthFactor": 1, "playerManaFactor": 1, "playerStaminaFactor": 1, "playerBodyHeatFactor": 1, "enableDurability": true, "enableStarvingDebuff": false, "foodBuffDurationFactor": 1, "fromHungerToStarving": 600000000000, "shroudTimeFactor": 1, "tombstoneMode": "AddBackpackMaterials", "enableGliderTurbulences": true, "weatherFrequency": "Normal", "miningDamageFactor": 1, "plantGrowthSpeedFactor": 1, "resourceDropStackAmountFactor": 1, "factoryProductionSpeedFactor": 1, "perkUpgradeRecyclingFactor": 0.5, "perkCostFactor": 1, "experienceCombatFactor": 1, "experienceMiningFactor": 1, "experienceExplorationQuestsFactor": 1, "randomSpawnerAmount": "Normal", "aggroPoolAmount": "Normal", "enemyDamageFactor": 1, "enemyHealthFactor": 1, "enemyStaminaFactor": 1, "enemyPerceptionRangeFactor": 1, "bossDamageFactor": 1, "bossHealthFactor": 1, "threatBonus": 1, "pacifyAllEnemies": false, "tamingStartleRepercussion": "LoseSomeProgress", "dayTimeDuration": 1800000000000, "nightTimeDuration": 720000000000 }, "userGroups": [ { "name": "Admins", "password": "secret1", "canKickBan": true, "canAccessInventories": true, "canEditBase": true, "canExtendBase": true, "reservedSlots": 1 }, { "name": "Friends", "password": "secret2", "canKickBan": false, "canAccessInventories": true, "canEditBase": true, "canExtendBase": true, "reservedSlots": 3 }, { "name": "Guests", "password": "secret3", "canKickBan": false, "canAccessInventories": false, "canEditBase": false, "canExtendBase": false, "reservedSlots": 0 } ] } Game Settings Let's take a closer look at the parameters in the gameSettings block: playerHealthFactor: 1 — Health multiplier from 0.25 to 4 playerManaFactor: 1 — Mana multiplier from 0.25 to 4 playerStaminaFactor: 1 — Stamina multiplier from 0.25 to 4 enableDurability: true — Enable equipment durability enableStarvingDebuff: false — Enable starvation foodBuffDurationFactor: 1 — Food effect duration from 0.5 to 2 fromHungerToStarving: 600000000000 — Time until starvation, from 300000000000 (5 minutes) to 1200000000000 (20 minutes) shroudTimeFactor: 1 — Time factor in the shroud from 0.5 to 2 tombstoneMode: "AddBackpackMaterials" — Item retention mode on death enableGliderTurbulences: true — Wind effects while gliding weatherFrequency: "Normal" — Weather change frequency (Disabled/Rare/Normal/Often) miningDamageFactor: 1 — Ore mining yield multiplier from 0.5 to 2 plantGrowthSpeedFactor: 1 — Plant growth speed multiplier from 0.5 to 2 resourceDropStackAmountFactor: 1 — Resource drop multiplier from 0.5 to 2 factoryProductionSpeedFactor: 1 — Factory production speed multiplier from 0.5 to 2 perkUpgradeRecyclingFactor: 0.5 — Rune return multiplier when dismantling weapons from 0 to 1 perkCostFactor: 1 — Rune cost multiplier for upgrades from 0.5 to 2 experienceCombatFactor: 1 — Combat experience multiplier from 0.25 to 2 experienceMiningFactor: 1 — Mining experience multiplier from 0 to 2 experienceExplorationQuestsFactor: 1 — Exploration experience multiplier from 0.25 to 2 randomSpawnerAmount: "Normal" — Enemy spawn amount (Few/Normal/Many/Extreme) aggroPoolAmount: "Normal" — Number of enemies that can attack simultaneously (Few/Normal/Many/Extreme) enemyDamageFactor: 1 — Enemy (excluding bosses) damage multiplier from 0.25 to 5 enemyHealthFactor: 1 — Enemy (excluding bosses) health multiplier from 0.25 to 4 enemyStaminaFactor: 1 — Enemy (excluding bosses) stamina multiplier from 0.25 to 2 enemyPerceptionRangeFactor: 1 — Enemy (excluding bosses) detection range multiplier from 0.25 to 2 bossDamageFactor: 1 — Boss damage multiplier from 0.25 to 5 bossHealthFactor: 1 — Boss health multiplier from 0.25 to 5 threatBonus: 1 — Enemy attack frequency (excluding bosses) from 0.25 to 4 pacifyAllEnemies: false — Enemies won't attack unless provoked tamingStartleRepercussion: "LoseSomeProgress" — Taming progress loss if startled dayTimeDuration: 1800000000000 — Day duration from 2 to 60 minutes nightTimeDuration: 720000000000 — Night duration from 2 to 60 minutes Access and Account Settings You should specify these in the environment block of the compose.yaml file. Main variables: SERVER_NAME = "enshrouded" — Server name SERVER_SLOT_COUNT = 16 — Maximum number of players on the server SERVER_QUERY_PORT = 15637 — Service port number SERVER_IP = "0.0.0.0" — Server IP address SERVER_SAVE_DIR = "./savegame" — Save directory SERVER_LOG_DIR = "./logs" — Log directory SERVER_VOICE_CHAT_MODE = "Proximity" — Voice chat mode (Proximity = only nearby players can hear, Global = all players can hear) SERVER_ENABLE_VOICE_CHAT = false — Enable/disable voice chat (default: disabled) SERVER_ENABLE_TEXT_CHAT = false — Enable/disable text chat (default: disabled) UPDATE_CRON = "" — World update schedule (similar to reopening a single-player game, restoring resources, and updating the global map) UPDATE_CHECK_PLAYERS = false — Check for connected players before updating (default: disabled) BACKUP_CRON = "" — Backup schedule BACKUP_DIR = "./backup" — Backup directory BACKUP_MAX_COUNT = 0 — Maximum number of stored backups Here’s an example of a docker-compose.yml file with the environment block: services: enshrouded: image: mornedhels/enshrouded-server:latest container_name: enshrouded restart: unless-stopped stop_grace_period: 90s ports: - "15637:15637/udp" volumes: - ./game:/opt/enshrouded environment: - SERVER_NAME=Hostman - SERVER_ROLE_0_NAME=Admins - SERVER_ROLE_0_PASSWORD=secret1 - SERVER_ROLE_0_CAN_KICK_BAN=true - SERVER_ROLE_0_CAN_ACCESS_INVENTORIES=true - SERVER_ROLE_0_CAN_EDIT_BASE=true - SERVER_ROLE_0_CAN_EXTEND_BASE=true - SERVER_ROLE_0_RESERVED_SLOTS=1 - SERVER_ROLE_1_NAME=Friends - SERVER_ROLE_1_PASSWORD=secret2 - SERVER_ROLE_1_CAN_ACCESS_INVENTORIES=true - SERVER_ROLE_1_CAN_EDIT_BASE=true - SERVER_ROLE_1_CAN_EXTEND_BASE=true - SERVER_ROLE_1_RESERVED_SLOTS=3 - SERVER_ROLE_2_NAME=Guests - SERVER_ROLE_2_PASSWORD=secret3 After making changes to the settings, restart the container: docker compose up -d Adding to Steam Favorites To add the server to favorites: Open the Steam application and go to the View → Servers menu. Select the Favorites tab. Choose the game Enshrouded from the dropdown list on the right. Click the + button at the bottom and enter the external IP address along with the port (15637) obtained during server creation. Once added, your Enshrouded server will be available in the Join section when launching the game. Updating the Server To update the game server, connect to it and restart the container: cd /opt/satisfactorydocker compose downdocker compose up -d Conclusion Enshrouded is a relaxing and immersive game that offers a world of exploration and adventure. With detailed server configuration, you can tailor the gameplay to your preferences—simplifying resource gathering, increasing enemy strength, or enjoying creative building features. This game appeals to a wide range of players, regardless of age or gender. Try playing with friends, your partner, or children over 12 for an engaging cooperative experience! Check our new instruction on how to clone your server to double the fun! Frequently Asked Questions: What are the server requirements for hosting an Enshrouded dedicated server? If you're serious about hosting, aim for a 6-core CPU, 16GB of RAM, and at least 30GB SSD. A solid internet connection makes a big difference, especially for multiple players. How do I use SteamCMD to install the Enshrouded server? After setting up SteamCMD, just run app_update 2278520 validate — it’ll grab everything you need. Can I run an Enshrouded server on Linux? Definitely. Linux is a great choice — just be sure to install all the required libraries and dependencies. What are the best Enshrouded server settings for performance and stability? Optimize based on your player count and hardware. Adjust tick rate, max players, and world settings in the config for the best experience.
03 June 2025 · 9 min to read

Do you have questions,
comments, or concerns?

Our professionals are available to assist you at any moment,
whether you need help or are just unsure of where to start.
Email us
Hostman's Support