Hallo, da wir häufiger gefragt wurden, wie man auf einem Debain-System einen Factorio-Gameserver erstellt, möchte ich euch hier einmal kurz beschreiben wie das funktioniert. In diesem Beispiel wird die Serverversion 0.16.51 installiert. Wie immer gilt, wir freuen uns über euer Feedback und sollte sich ein Fehler eingeschlichen haben, so gebt uns bitte bescheid.

Grundvoraussetzungen

Um einen Server betreiben zu können, der losgelöst von eurem Heimpc laufen soll benötigt ihr im konkreten Beispiel einen Debian Server. Im folgenden Tutorial nutzen wir folgende Software:

  • Putty zur Verbindung via ssh
  • nano als Texteditor auf dem Server
  • wget zum beziehen der Serverdatei

Außerdem solltet ihr darauf achten, dass der UDP Port 34197 offen sein muss. Editiert hierzu einfach eure Firewall, der Port kann auch verändert werden, dies könnt ihr später in der Server-Konfiguration einstellen

legt einen User für den Server an

Es sollte ein eigener Benutzer für den Server angelegt werden, hierzu müsst ihr erst zu einem admin user wechseln, das macht ihr mit dem Befehl:

su root

Anschließend erstellt ihr den User ohne Loginmöglichkeit:

adduser --disabled-login --gecos factorio factorio

Nun wechseln wir noch zum neuen User

su factorio

Den Server herunterladen

Die Serverdateien werden vom Spielhersteller zur Verfügung gestellt unter der Adresse https://factorio.com/download-headless könnt ihr euch die neuste Version gepackt herunterladen, kopiert euch hierzu einfach den downloadlink von der Website von dem gewünschten Paket.

Screenshot von der downloadseite des Factorioherstellers
https://factorio.com/download-headless

wechsle in das Home-Verzeichnis des User

Die nächsten operationen werden im verzeichnis des factorio user durchgeführt.

 cd /home/factorio 

herunterladen des Servers

Der eigentliche Server wird nun als headless-version heruntergeladen. Nutzt hierzu den kopierten link der aktuellen Serverdatei.

wget -o factorio_headless_0_16_51.tar.gz https://factorio.com/get-download/0.16.51/headless/linux64

Entpacken der Dateien und konfigurieren

Zum Entpacken nutzen wir das programm tar mit dem x f Befehlssatz

tar -xf factorio_headless_0_16_51.tar.gz

weitere Verzeichnisse erstellen

Nun müssen wir mindestens das saves Verzeichnis erstellen, optional kann auch noch ein mods-Verzeichnis erstellt werden, jedoch muss man bedenken, dass dann die Spieler auch alle Mods benötigen, die auf dem Server installiert sind.

mkdir /home/factorio/factorio/mods
mkdir /home/factorio/factorio/saves

nötige Konfigurationsdateien

Nun benötigt der Server noch Informationen über seine Konfiguration. Hierzu nutzen wir die Vorlagen, die der Hersteller mitliefert. Hierzu kopieren wir uns eine Konfigurationsdatei:

cp /home/factorio/factorio/data/server-settings.example.json /home/factorio/factorio/data/server-settings.json

Anschließend müssen wir noch die Datei nach Wunsch bearbeiten. Dies lässt sich leicht mit Programmen wie nano erledigen:

nano /home/factorio/factorio/data/server-settings.json

Die Datei ist recht leicht zu verstehen, aus diesem Grund überspringen wir hier die genaue Beschreibung.

optionale Konfigurationsdateien

Optional, jedoch stark empfohlen wird, dass man auch eine Map-Generierungs-Konfiguration erstellt. Hierzu kopieren wir uns wieder zuerst die nötige Datei:

/home/factorio/factorio/data/map-gen-settings.example.json /home/factorio/factorio/data/map-gen-settings.json

und bearbeiten diese mit nano:

nano /home/factorio/factorio/data/map-gen-settings.json

Auch hier gehen wir nicht näher auf die Konfiguration ein, da diese eigentlich recht selbsterklärend ist. Sollte es hier Fragen geben, so stellt diese bitte in den Kommentaren.

Erstellen der Serverkarte

Nun als letzten Schritt muss die eigentliche Welt für den Server erstellt werden. Dies macht ihr, indem ihr folgenden Befehlt ausführt. Beachtet jedoch, dass ihr den Namen der Speicherdatei (“my-save.zip”) noch auf einen für euch passenden Namen ändern solltet.

/home/factorio/factorio/bin/x64/factorio --create /home/factorio/factorio/saves/my-save.zip --map-gen-settings my-map-gen-settings.json --map-settings my-map-settings.json

weiter als root/admin

Für die nächsten Schritte sind admin-rechte nötig. Hierzu wechselt ihr einfach z.B. zum User root:

su root

einen Dienst im Systemd anlegen

Um den Server später einfach starten und stoppen zu können, solltet ihr im Systemd einen Dienst anlegen. Dazu legt ihr ersteinmal eine Datei namens factorio.service an:

nano /etc/systemd/system/factorio.service

den Dienst konfigurieren

Damit euer Betriebssystem weis, was nun mit dem Dienst geschehen soll und welche Befehle ausgeführt werden sollen, definiert ihr nun den Inhalt der factorio.service Datei:

[Unit]
Description=Factorio Headless Server

[Service]
Type=simple
User=factorio
ExecStart=/home/factorio/factorio/bin/x64/factorio --start-server /home/factorio/factorio/saves/{save_file}.zip --server-settings /home/factorio/factorio/data/server-settings.json

Achtet auch hier auf die richtige Schreibweise beim Namen der Save-Datei! ({save_file}.zip) Im Anschluss könnt ihr mit Strg+O die Datei speichern.

Den Factorio-Server starten

Um nun euren Factorio-headless-server zu starten müsst ihr vorher die deamon-list neu laden:

systemctl daemon-reload

im Anschluss könnt ihr den Server starten:

systemctl start factorio

Weitere Befehle

Ihr könnt den Server nicht nur über den Dienst starten, folgende Möglichkeiten habt ihr außerdem:

systemctl start factorio -> Startet den server
systemctl stop factorio -> Stoppt den server
systemctl status factorio -> zeigt den aktuellen serverstatus an aus diesen fenste kommt man mit strg+c

Crontab zur Abrundung

Damit auch bei einem Serverneustart der Factorio-Server immer mit startet, könnt ihr noch einen Cronjob für den root-user anlegen. Hierzu nutzt ihr die Funktion Crontab:

 crontab -e 

Dort fügt ihr einfach die folgende Zeile ein, diese sorgt dafür, dass ein potentieller Systemneustart auch den Factorio-Headless-Server neu startet:

@reboot systemctl start factorio 

Jetzt könnt ihr den Server nach voller Lust betreiben. Die Quellen für dieses Tutorial haben wir euch im folgenden verlinkt:

Tutorial Quellen:

No responses yet

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert