Editing Server on Linux
From Eco - English Wiki
Your changes will be displayed to readers once an authorized user accepts them. (help)
The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
== Important | == Important Foreward == | ||
If you run into trouble or have a question, you can make inquiries in the #server-help channel in the | First, a disclaimer: [[Strange Loop Games]] does provide a Linux server build, but they do not offer official support for it at this time. It is provided as a convenience, not a product. | ||
If you run into trouble or have a question, you can make inquiries in the #server-help channel in the [https://discord.gg/eco Eco Discord], but keep in mind the information above. | |||
== Prerequisites == | == Prerequisites == | ||
=== Mono No More === | |||
Prior to version 9.0 of Eco, it was required that you run with a very old build (no later than 5.14) of the Mono development libraries, and use Mono to run the server. This is no longer the case. | |||
=== .NET Core Libraries === | |||
. | Eco is now built with and is run leveraging [https://docs.microsoft.com/en-us/dotnet/core .NET Core], and runs as a native binary on Linux. You will have to [https://docs.microsoft.com/en-us/dotnet/core/install/linux install the .NET Core 3.1 libraries], repositories for which Microsoft makes available for several Linux distributions. Follow the directions on Microsoft's site for instructions for installing the libraries. | ||
== Eco Dedicated Server files == | == Eco Dedicated Server files == | ||
There are two primary options for acquisition of the Eco dedicated server: getting it directly from Strange Loop Games, or through Valve Software's Steam platform. | There are two primary options for acquisition of the Eco dedicated server: getting it directly from Strange Loop Games, or through Valve Software's Steam platform. | ||
Line 19: | Line 17: | ||
<syntaxhighlight lang="sh"> | <syntaxhighlight lang="sh"> | ||
#!/bin/bash | #!/bin/bash | ||
steamcmd +force_install_dir ~/Eco | steamcmd +login anonymous +force_install_dir ~/Eco +app_update 739590 -beta default validate +quit | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== SLG Direct Download === | === SLG Direct Download === | ||
An archive of the current release of the Eco Dedicated Server as of this writing (Beta 9. | An archive of the current release of the Eco Dedicated Server as of this writing (Beta 9.1.6) can be found [https://s3-us-west-2.amazonaws.com/eco-releases/EcoServerLinux_v0.9.1.6-beta.zip here]. The following series of commands will download the archive, and set the Eco Dedicated Server up in an <tt>Eco</tt> subdirectory of your home directory, and save a copy of the install archive into a <tt>dist</tt> subdirectory of your home directory: | ||
<syntaxhighlight lang="sh"> | <syntaxhighlight lang="sh"> | ||
mkdir -p ~/Eco | mkdir -p ~/Eco | ||
cd ~/Eco | cd ~/Eco | ||
wget https:// | wget https://s3-us-west-2.amazonaws.com/eco-releases/EcoServerLinux_v0.9.1.9-beta.zip | ||
unzip EcoServerLinux_v0.9. | unzip EcoServerLinux_v0.9.1.9-beta.zip | ||
mkdir -p ~/dist | mkdir -p ~/dist | ||
mv EcoServerLinux_v0.9. | mv EcoServerLinux_v0.9.1.9-beta.zip ~/dist/ | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Setting up the network == | == Setting up the network == | ||
Line 51: | Line 49: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Systemd service script == | == Systemd service script == | ||
If you wish to set up a systemd service to have ECO run automatically, this will do the trick: | |||
Using your favorite editor (vi, nano etc.) edit /usr/lib/systemd/system/EcoServer.service and paste the following: | |||
<syntaxhighlight lang="shell"> | <syntaxhighlight lang="shell"> | ||
[Unit] | [Unit] | ||
Description=Eco Server | Description=Eco Server | ||
[Service] | [Service] | ||
Type=simple | Type=simple | ||
Line 72: | Line 63: | ||
User=ecoserver | User=ecoserver | ||
Group=ecoserver | Group=ecoserver | ||
#ExecStartPre=/home/ark/server/steamcmd +login [username] +force_install_dir /home/ecoserver/Eco_server/ +app_update 739590 +quit | |||
ExecStart=/bin/bash -c 'cd /home/ecoserver/Eco_server && exec /home/ecoserver/Eco_server/EcoServer' | |||
ExecStop=killall -TERM srcds_linux | |||
#ExecStartPre=/home/ark/server/steamcmd +login | |||
ExecStop= | |||
[Install] | [Install] | ||
WantedBy=multi-user.target | WantedBy=multi-user.target | ||
</syntaxhighlight> | </syntaxhighlight> | ||
ExecStartPre is commented out because I was not able to get it to work without user input due to Steam Guard. | |||
Then update the systemd service by running the following:<syntaxhighlight lang="shell"> | Then update the systemd service by running the following:<syntaxhighlight lang="shell"> | ||
sudo systemctl daemon-reload | sudo systemctl daemon-reload | ||
Line 91: | Line 79: | ||
sudo systemctl status EcoServer | sudo systemctl status EcoServer | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Stopping the Server == | |||
To safely shut down the Eco server, send SIGINT or press Control+C with the <tt>EcoServer</tt> process interactively to initiate a safe shutdown. | |||
==Stopping the Server== | |||
To safely shut down the Eco server, send | |||
Please not that this procedure doesn't work with Eco versions prior to 9.0.0-beta. | Please not that this procedure doesn't work with Eco versions prior to 9.0.0-beta. | ||
Line 173: | Line 95: | ||
You will need to make sure that the Docker container is exposing the ports and map them to ports on the host that are open in the hosts firewall and router. | You will need to make sure that the Docker container is exposing the ports and map them to ports on the host that are open in the hosts firewall and router. | ||
==Troubleshooting== | ==Troubleshooting== | ||
===Missing GDI library=== | ===Missing GDI library === | ||
You may sometimes get a crash on an attempted initial startup with an error resembling the following: | You may sometimes get a crash on an attempted initial startup with an error resembling the following: | ||
<syntaxhighlight lang="sh"> | <syntaxhighlight lang="sh"> | ||
Line 186: | Line 108: | ||
If this happens, try clicking on the "+" symbol in the "Your Worlds" area, then adding in the external IP and port you used (probably 3000). Unfortunately, https://www.yougetsignal.com/tools/open-ports/ does _not_ accurately reflect one's ability to connect to the server. | If this happens, try clicking on the "+" symbol in the "Your Worlds" area, then adding in the external IP and port you used (probably 3000). Unfortunately, https://www.yougetsignal.com/tools/open-ports/ does _not_ accurately reflect one's ability to connect to the server. | ||