Page 1 of 1

Ubuntu 16.04 Lts Dedicated Server Setup

Posted: Sun Feb 25, 2018 5:46 am
by rikor420
Connect to your ssh account using Putty, as root or another user with root access.

name@localhost:~/type sudo adduser factorio
name@localhost:~/type sudo passwd factorio

after you created the user for the server. type su - factorio
factorio@localhost:~/

Next we going to open a port up of 34197.
if you use "UFW" then you know how to open it up, for those do not know how to open it up type this.

Code: Select all

ufw allow 34197/udp
then type

Code: Select all

ufw status verbose
you should see 34197/udp listed
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if you use firewall-cmd then you type;

Code: Select all

firewall-cmd --zone=public --permanent --add-port=34197/udp
then type:

Code: Select all

 firewall-cmd --zone=public --list-ports 
This will give you a list of ports are open in your command window.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Iptables:
Type in this:

Code: Select all

iptables -A INPUT -p udp --dport 34197 -j ACCEPT
To check to see if the port is listed type.

Code: Select all

iptables -L
then type

Code: Select all

sudo cd /sbin
put in password if required.

then type

Code: Select all

./iptables-save
to save the RULE
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

NOW Installation:
we are going to install screen.
type:
name@localhost:~/

Code: Select all

apt-get install screen
type in or copy/paste this in your command prompt name@localhost:~/

Code: Select all

wget https://factorio.com/get-download/0.15.40/headless/linux64
than you need to rename linux64 to factorio.tar.xz

example:

Code: Select all

cp linux64 factorio.tar.xz
or

Code: Select all

cp linux64 factorio.tar.gz
then the extraction:

Code: Select all

tar -xf factorio.tar.gz
or

Code: Select all

 tar -xf factorio.tar.xz
make sure that your factorio files are owned by factorio if not for some reason it is setup as root owner you need to type this as root or sudo

Example:

Code: Select all

-rw-rw-r-- 1 factorio factorio     2298 Feb 24 23:13 achievements.dat
drwxrwxr-x 3 factorio factorio     4096 Feb 24 23:09 bin
drwxrwxr-x 2 factorio factorio     4096 Feb 24 23:13 config
-rw-r--r-- 1 factorio factorio      998 Aug  7  2015 config-path.cfg
drwxr-xr-x 4 factorio factorio     4096 Feb 24 23:34 data
drwxrwxr-x 2 factorio factorio     4096 Feb 24 23:46 factorio
-rw-rw-r-- 1 factorio factorio     4260 Feb 24 23:46 factorio-current.log
-rw-rw-r-- 1 factorio factorio     6608 Feb 24 23:38 factorio-previous.log
-rw-rw-r-- 1 factorio factorio 19816272 Feb 24 23:09 factorio.tar.xz
drwxrwxr-x 2 factorio factorio     4096 Feb 24 23:46 mods
-rw-rw-r-- 1 factorio factorio      299 Feb 24 23:46 player-data.json
drwxrwxr-x 2 factorio factorio    4096 Feb 24 23:46 saves
-rw-rw-r-- 1 factorio factorio      119 Feb 24 23:36 server-id.json
-rwxrwxr-x 1 factorio factorio      137 Feb 24 23:43 start.sh
drwxrwxr-x 2 factorio factorio     4096 Feb 24 23:46 temp

Code: Select all

sudo chown -R factorio:factorio /home/factorio
so when you log into factorio it will not give you permission denied because it is owned by root.

Now to create a save file:
Note: This will create a map save in /home/factorio/saves/ as server-save.zip
cd /factorio/bin/x64

it would show you something like factorio@localhost:~/factorio/bin/x64$
then type this below

Code: Select all

./factorio --create /home/factorio/saves/server-save
After you have created your save file we going to start working on your server-settings.json
head over to /home/factorio/data/ and some coping file to file. here is an example

Code: Select all

cp server-settings.example.json server-settings.json

Code: Select all

cp map-settings.example.json map-settings.json

Code: Select all

cp server-whitelist.example.json server-whitelist.json

Code: Select all

cp map-gen-settings.example.json map-gen-settings.json
after you have completed that you can now nano or vim server-settings.json and adjust your settings in there.
also same for the other Json files if you like.

now to start the server you have can do it in a couple of ways..
one way is by typing it in the command prompt
type cd /bin/x64
then type

Code: Select all

./factorio --start-server-load-latest --server-settings /home/factorio/data/server-settings.json
this will start your server, the only thing is that you will have to keep your shell connection to the server open all the time, So what i did was quicker and simple way to do it.
type nano/vim start.sh
then type at the first line

Code: Select all

#!/bin/bash
or

Code: Select all

#!/bin/sh
they type at the next line

Code: Select all

screen -S Fact /home/factorio/bin/x64/factorio --start-server-load-latest --server-settings /home/factorio/data/server-settings.json
save it.
then type

Code: Select all

chmod +x start.sh
then type

Code: Select all

./start.sh
after it completes loading up (15 secs) then hit your ctrl a-d will close the screen out, (to check if it worked type screen -R) it will return you back to server loading stage. when you want to return to it at a later time simply go into your shell using your login factorio and type screen -R then when you need to shut it down just hit ctrl-c.

if you want to work on the config.ini in the config directory you can just need to add the line at the end of ./factorio --config /home/factorio/config/config.ini

also if you want to read up more on factorio command lines just head over to the /home/factorio/bin/x64 directory and type ./factorio --help, it will give you a list of commands to use.

I sure hope this does help a little for everybody that is just starting Ubuntu server.
Enjoy this small tutorial.

Rikor420