[How To] Setup a Satisfactory Dedicated Server on Debian Linux

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
Hello everyone and welcome! In today's video,  we're going to be taking a look at how to build   a dedicated server for Satisfactory - and we're  going to be building this on a Debian 11 box. Now   this video is going to be a little bit different  than what I typically post on this channel, but   since dedicated servers were just released for  Satisfactory with update 5, and holidays are right   around the corner - I'm planning on doing quite a  bit of new factory building with some friends and   family. So I figured it was about time to build a  dedicated server and get ready for endless hours   of playing over the holidays. So today in this  video, we're gonna walk through just a quick   tutorial on how to stand up a new dedicated server  for Steam and Satisfactory on a Debian Linux box. Now as a quick disclaimer this video is only going  to cover how to install and set up the dedicated   server software on a Linux machine. We will  not cover installing Linux, nor any of the port   forwarding or any of that type of stuff - because  those both could be videos upon videos upon   videos of themselves. So we will just be focusing  today on installing the server software itself. So as you can see on the screen right now,  I do have the Satisfactory page up for   dedicated servers. We'll pretty much be walking  through this step by step, so I will post a   link to this in the video description for you to  reference. There are some additional things that   we'll have to do that aren't referenced on this  page - but we'll get to that when we get to it.   So with that being said - let's go ahead and get  started. I will go ahead and bring up my Linux   terminal for my Satisfactory machine that I built.  We'll check which version we're running... and   sure enough right now I am running Debian version  11.1. Now since this is a brand new install of   Debian, by default the system is going to select  DHCP for its IP addressing. And so if we check the   current IP address with the 'ip addr' command  looks like our current address is 10.122.2.83. Now unfortunately that is a dynamic and DHCP  address - and we're going to want our dedicated   server to have a static address. So we'll go ahead  and use nano to open the network interfaces file.   and you will have to use sudo because this is  a restricted file, so we'll have to elevate our   permissions to be able to write changes to it....  and we'll be prompted for our password. So once   we're in this file we're going to do a couple of  quick things. As we can see towards the bottom,   it looks like interface ens192 is going to be our  primary network port - and we could have also seen   that in the IP address output before when we were  looking at what our our current dynamic IP address   is. So the first thing that we're going to do is  we're going to go ahead and scroll down to this   line down here, where it says "iface ens192  inet dhcp" - and we'll change that to static.   We'll also include a line right  above that just says "auto ens192".   And now below we're going to go ahead and add  our interface configuration. So I'll go ahead   and put address and then I'm going to make this  10.122.2.21. And we'll have to add a network mask,   in my case it's going to be 255.255.255.0. Then  we'll add our gateway, in my case 10.122.2.254. And last but not least we will  have to set our DNS servers.   Okay now that config looks good, so let's go ahead  and hit Ctrl-X to save our file. We'll be prompted   to save and we'll hit yes, and overwrite this  file. Next we will need to restart the networking   service for those changes to take effect. So we'll  do "sudo systemctl restart networking.service" Now since we are currently connected to that  .83 address, and we just changed the address   to .21 - when we restart that networking  service, we are going to get disconnected.   So we'll go ahead and start a new  session and reconnect to our server.   So we should be able to  log into that 2.21 address. Okay and now once we're logged back in again,   we can also double check by  using that "ip address" command.   And sure enough we can see that our IP address is  now 10.122.2.21 - and that is a static address. So   it should not change, so we can always connect  to this when we're connecting to our server. Next we're going to go ahead and add  a new user for Steam to run under.   So we'll do "sudo useradd -m steam", and again  we'll enter our password real quick. All right,   once we have that we need to go ahead and install  the Steam command line interface. And we can   do that using Debian's package manager - but by  default Debian doesn't actually have that package   included. So first we'll just have to go ahead  and add a new software repository that Debian can   scan and find those packages for installation.  So we'll go ahead and edit our apt sources. So we'll go ahead and scroll all the way  down to the bottom here - and similar to   all of the other entries that you  can see on the screen right now,   we're going to go ahead and add  two quick lines to this file,   that will be the third party repositories where  we'll pull down the Steam command line utilities. And once we have those added in, we'll  go ahead and save the file again. Now once we've added those repositories,  before we can actually install the   utility - we will have to make sure that  our package list on the system has been   updated from that repository. So go  ahead and do a "sudo apt-get update" Okay, now we can definitely see  that lines five through nine,   that we're pulling the new images and  package lists from the linode repository.   One more thing before we install  the Steam command line utility,   we will need to add the i386 architecture into  our package manager. Okay once we do that,   we can go ahead and run our "apt-get update"  one more time - pull down a couple of additional   package repositories. And once we have that, we  can finally do the "apt-get install steamcmd".   And we'll go ahead and say yes, we  do want to install all of these. Short way through the process, we will be  prompted to accept the Steam user agreement.   So we'll go ahead and hit "Okay" first, and then  "yes I agree". Okay once all of that is done,   we have the Steam command line utilities  installed. So let's go ahead and switch over   to the Steam user real quick. First I'll go ahead  and clear out my screen - and then we'll just do a   "sudo su steam". We'll go ahead and move to  the account's home directory. And right now   we don't have anything in our directory - so the  first thing we'll do is we'll create a shortcut   for the Steam command executable. And we'll  do this with "ln -s /usr/games/steamcmd".   And so now if we check our directory, we have a  link to that Steam command here. And so copying   straight from the Satisfactory wiki install  page for dedicated servers - we'll go ahead and   run "steamcmd", and we'll do "force_install_dir"  to change the installation directory. And we'll go   ahead and set that to this user's home directory  slash Satisfactory. And then we'll go ahead and   set "login" to anonymous - this is for connecting  to the Steam cloud, rather than logging in with an   individual steam user account, we're just going  to go ahead and log in anonymously because we   just need the server software. And we'll set the  "app_update" parameter - and validate plus quit.   Now I'll call out here before we run this real  quick if you wanted to download the experimental   branch, the other thing we would need to  do is... about here, we'll include the line   "-beta experimental" ...I probably misspelled  that, but since I'm going to go ahead and   download this stable branch - I will go ahead  and remove that and we'll run the command as is. Once we run this - this is going  to go reach out to the Steam cloud,   and pull down the Satisfactory  dedicated server software   and copy it to that "satisfactory"  directory that we asked it to create. So while this is downloading the satisfactory  server - I guess now is a good time for a   quick break. So I just wanted to say hello and  welcome to anyone who's finding this channel   because you're searching for Satisfactory content.  This isn't the typical type of video that I do,   but if you find value out of this video  and it's helpful to you - if you're able   to like and or subscribe to the video, it  would be greatly appreciated! Thank you! Okay and after a couple of seconds, it looks like  Satisfactory has been successfully downloaded   and installed. We can validate this by first  checking the contents of our home directory.   Sure enough - we now have a Steam folder  and a Satisfactory folder. So let's go ahead   and change directory into the Satisfactory  folder. And if we look at the contents here,   we do have all of the game files. Now if we  just wanted to run the server as a one-off and   not something that's persistently available - we  could just do a "./FactoryServer.sh". And so what   that'll do, is it'll start the game immediately  and it'll start it as a foreground service. So   if we close our window right now, it'll actually  kill that service and the game will stop running.   But if you wanted to just one-off run this to  test - that's the way you're going to do it. Likely what you're going to want to  do, is have the server on all the time.   And for that we'll need to install the  Satisfactory server as a background service   within our Linux server. So let's go ahead and  press Ctrl-C, to go ahead and kill the server   and ask it to stop. A nd then let's take a look  at how we can create a Linux service for this.   So I brought up the Satisfactory wiki page for  creating a Linux dedicated service - and we're   going to go ahead and place a file in this  "/etc/systemd/system/satisfactory.service".   And here's the contents of what that  service definition is going to look like. So this looks pretty straightforward, but we  will need to make a couple of minor changes   to this file before we install our service.  So let's go ahead and copy this out... and   I'll open up a notepad file and we'll go ahead  and paste this in here. So the first thing that   we're going to need to change, is anywhere  where it says "your_user" - we will need to   set this to the user that we created to run  Satisfactory, which is going to be "steam".   So we'll go ahead and edit these. Got one in the  "ExecStart", one up here in the "ExecStartPre",   and one down in the "WorkingDirectory",   and then we also need to set the  user and group both to steam as well. Okay looks good. The only other thing  I will mention here, is that since we   installed our game to /home/steam/satisfactory,  that's good. If you installed the game into any   other directory, you will need to  change that file location as well.   So now that we have this done - let's go  ahead and select all of it, and copy it. We'll run back over to our  Linux terminal real quick.   Okay back on our Linux terminal - first thing  we're gonna do, is we're gonna go ahead and exit   out of the steam user, because we no longer need  it now that we've tested the Satisfactory server.   Now back on my user account, we'll go ahead and  create that new service file that the Satisfactory   wiki had mentioned. So we'll go ahead and do a  "nano /etc/systemd/system/satisfactory.service".   In this file, we'll just go ahead and right-click  to paste the contents of our clipboard.   And as long as that looks good, we'll do a  Ctrl-X again to go ahead and save this file.   Now that we have that service file  defined, we can enable it by doing a   "systemctl enable satisfactory.service"  - and that will go ahead and register   that service in the system. So that it knows  now, it's a valid service, and anytime this   server reboots, it will go ahead and make sure  to start that service upon the system coming   back online. And last but not least, we're free  now to start our Satisfactory service - so we   can run the game in the background, and go  ahead and connect and try and test it out. So we'll do that again with "sudo  systemctl start satisfactory.service" -   and after a quick second that service should start  in the background. And we can validate this by   using the "systemctl status satisfactory.service"  - and so if there were any issues in getting the   server up and running it would show here. But  instead we do see that the process is currently   "active (running)". And so we should be free  to go ahead and open up the Satisfactory game   itself and connect to our server. So let's go  ahead and jump over the game and give it a shot. Once the game starts up, we do have on our  left side - a new option for server manager.   We'll go ahead and click that. Down at the  bottom we'll click "add server" - and we'll   go ahead and put in the address of our  dedicated server, in my case 10.122.2.21. And we'll hit confirm. And give the game a  second to go ahead and connect to that server. So as the first person to connect to the server,  we get to go ahead and configure the server and   become the administrator for it. So first we'll  enter a name for our server - so we'll go ahead   and put "0x2142-Satisfactory". Once we're good  with that, we'll go ahead and hit confirm.   And we can set an admin password -  so I'll go ahead and do that now. And we'll click confirm. So now it looks like our  server is online. It shows that it's currently   idle. We are the administrator. We can also  see the current ping time to that server,   which should be pretty close - since the actual  dedicated server's sitting right next to me. So   before we create a game, if there are any other  settings that we want to change around - we   can hit the "Server Settings". We can change the  name, set a session name, we can change our admin   password if we want, we can also add a "Player  Password Protection" - so this is going to be   if you want to keep people from joining your game  without having a password. This is where you'd set   it here, and then you'd give that password  to your friends who want to play with you. A couple of settings down here that are  interesting to know about. One is going to be   to save the game any time when someone disconnects  - I'm going to go ahead and leave that on because   that is something that I want. The other one,  is whether or not to pause the game when no   players are connected. Now this is an interesting  one, because - on one side, you're going to save   resources by your machine not running quite  as hard if no one is connected to the game.   But if you let the game keep running while no  one's on it, then you're going to continue to   accumulate resources in the background because all  of your factories and machinery are still running.   For me I'd rather it go at our own pace, so I'll  leave this as pause when no one's connected. So last but not least, we can  go ahead and create a new game.   And just to test it out we'll go ahead and enter  "Grass Fields" - create a new session called   "Demo". And we also have another option here under  "Join" - so that once we create the session, we   can automatically join. We'll leave that off for  now - we'll just go ahead and hit "Create Game". So it should just take a quick second  as our server spins up the new world.   Once the server is done, it looks like it  just drops us back on the create game screen.   We can see over on the left side here, that  it says that there is now a game ongoing.   And if we want to join, we'll go ahead and  click this "Status" tab - and we can see   some information... So we have no milestones  yet, we're on tier two, the game hasn't really   started yet... So we'll just go ahead and  hit "Join" down in the lower-right corner. And here we are! We are now in our new game,  on our new world, and ready to start building!   Last but not least, before I wrap up this  video... One more thing I wanted to call   out. So what we've accomplished in this video,  is just building a Satisfactory dedicated server   on a Linux machine. In order for  us to play, since we're on the same   local network - all we have to do is point our  game to that server and go ahead and connect.   If you need friends or family to connect from  other locations, who aren't sitting next to   you and playing on the same local network - you  will have to configure your internet router or   firewall to forward certain ports towards your  game server. This will allow people to connect   from outside of your local network. Again as  I mentioned at the beginning of this video,   that isn't something that I'm going to cover here  - since there are a bunch of different tutorials   and guides already on the internet for how to  do that. But once that's all done, you should   be able to go ahead and play and have a setup,  static, dedicated server for everyone to enjoy. So with that - I hope that this video was  helpful in getting you started in building   a Satisfactory dedicated server. I wish you  the best of luck in exploring the world and   creating some new factories! So I hope this video  was helpful, and thank you so much for watching!!
Info
Channel: 0x2142 - Networking Nonsense
Views: 335
Rating: undefined out of 5
Keywords: linux, debian, bullseye, lizard doggo, satisfactory, coffee stain, coffee stain studios, satisfactory game, factoryserver, steam, steamcmd, steam server, dedicated server, game server, game, video game, ficsit, ficsit inc, systemd, debian bullseye, update 5, satisfactory update 5
Id: 3hpeP7JVtDY
Channel Id: undefined
Length: 17min 11sec (1031 seconds)
Published: Sat Dec 04 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.