This guide has now moved to here https://github.com/OnniSaarni/SPT-Fika-Docker-Guide
This gist can still be used for discussion if you'd like.
This guide has now moved to here https://github.com/OnniSaarni/SPT-Fika-Docker-Guide
This gist can still be used for discussion if you'd like.
I'm interested in learning how to use a Raspberry pi too. For yours, how much Ram does your Raspberry Pi has, and did FIKA consume that much RAM? My understanding is that it's just a lightweight HTTP server that's being communicated with; most of the heavy computation is done on the host when the game is hosted and run.
Additionally, does the Raspberry PI heat up? Do I have to use like fans or some cooling option?
Its the Raspberry Pi 5, comes with 8GB RAM, I bought a case for it as it does get rather hot. I bought the Aluminium Passive Cooling Case Armour V5, which is silent in operation. I have it sat in the corner, out the way. The case keeps the temps moderate. The Pi is warm to the touch. Looking at the graphs it uses between 8-20% CPU and about 25% RAM. Even under load the CPU & RAM stay around the same, The CPU does spike to 60% for a secound when someone launches the game and it needs to download their data. But other than that it stays low.
Yes, so the SPT-Server is just a database, the heavy lifting is done by whoever is hosting a game. The server sends requests to the host to spawn AI for example. So whoever is hosting needs a good enough machine to support all the events happening in the raid.
Hi everyone! I've made a repository for this guide. It's over at https://github.com/OnniSaarni/SPT-Fika-Docker-Guide Feel free to use this gist for discussion if you'd like. Also feel free to make an issue or a pull request if you have made scripts or something you think could be good to have in the repo/guide. Also if you want to add something or fix something in the guide feel free to contribute <3 !
I've been using Server Value Modifier [SVM] on my windows machine to make shuttle tweaks to make SPT more fun. Any idea how to import those changes into this build? Or how to get SVM installed working? Thanks.
@ChrisyG6 I've just been downloading the server files and using SVM on my windows machine and then reuploading it to the server. You could maybe get it working with wine.
@ChrisyG6
One last question for now: Did you use Port Forwarding, or did you use a VPN like ZeroTier's Linux API to manage connections?
Thanks in advance
@ChrisyG6 One last question for now: Did you use Port Forwarding, or did you use a VPN like ZeroTier's Linux API to manage connections?
Thanks in advance
I used port forwarding (port 6969) for the Raspberry Pi
@ChrisyG6 I've just been downloading the server files and using SVM on my windows machine and then reuploading it to the server. You could maybe get it working with wine.
Awesome, so did you copy SVM into the Mods folder on the Server? Open SVM on Windows machine, make the changes etc, then upload the Profile and Loader.json file up to the server in their relative folder names?
Can confirm (for those who need to know) this works :)
@ChrisyG6 I've just been downloading the server files and using SVM on my windows machine and then reuploading it to the server. You could maybe get it working with wine.
Awesome, so did you copy SVM into the Mods folder on the Server? Open SVM on Windows machine, make the changes etc, then upload the Profile and Loader.json file up to the server in their relative folder names?
Can confirm (for those who need to know) this works :)
Yeah SVM goes into user/mods folder. That's how I've been using SVM. Kind of sucks having to transfer it to windows when using it but I don't edit it too often so it doesn't matter really.
I've noticed for SVM that you can manually edit the profile json and change the settings on the Linux machine there as long as you have that profile selected to be loaded in loader config file.
@HectorLeeYE I'm using Tailscale as my VPN due to the network I'm on and my friends and I haven't had any issues though ideally I'd prefer to port forward.
@lommy7 I understand since port forwarding is better than VPNs mostly due to the increased speed. The issue is that my router is placed in a really inaccessible location, so I'm honestly quite lazy to get it down.
Does Tailscale only allow 3 people to connect (aka play at once)? Personal pricing states that its up to 3 users with public domains and up to 100 devices, but what does that exactly mean? Also, I assume that you used the API for TailScale since you mentioned Linux, instead of the GUI, right?
I installed this docker on my Ubuntu VPS, everything works great but when I want to connect with a friend for the rally there is an error. If I can not share the port in the router, how to create a network using LogMeIn Hamachi, where to enter the IP from this network since the luncher is connected to a VPS. IP Force remains or in this way it will not work? I don't have the opportunity to test yet, so I ask.
@B0d4 this is not a server issue but you'll have to port forward 25565 udp or use a VPN with your friends. You'll also have to add the windows firewall rules manually or with the tool in the Fika discord #faq. For further support please go to the #questions or #support channels.
@OnniSaarni Thanks for the answer, I created a thread on discord but it wasn't exhausted as much as I wanted. I understand everything, but how to make the server with data remain on the VPS to make progress in the cloud, but when I connect with a friend to a joint raid, how can I add it so that the game is redirected to me, but after the end we are on the VPS in the cloud? When I use this VPN, do I also open port 25565 or does it remain intact due to the VPN but the Windows firewall has been unblocked?
@OnniSaarni Thanks for the answer, I created a thread on discord but it wasn't exhausted as much as I wanted. I understand everything, but how to make the server with data remain on the VPS to make progress in the cloud, but when I connect with a friend to a joint raid, how can I add it so that the game is redirected to me, but after the end we are on the VPS in the cloud? When I use this VPN, do I also open port 25565 or does it remain intact due to the VPN but the Windows firewall has been unblocked?
So when starting the game you set the launcher URL to your vps ip and then you're connected to the server. Now if you want to host a raid you either port forward 25565 or use a VPN like radmin and connect to your friend trough that. You also have to change your ip in the F12 Fika setting force ip to the raid hosts ip. I would recommend using the firewall fixer tool in the discord if you already haven't.
The server on the VPS handles only your hideout and stash stuff. As long as you start your game trough the launcher with the VPS ip as the URL you should be connected to the VPS server. The raids on the other hand are handled by your pc.
This is not a problem with this guide or your VPS setup if you can start the game with the url as the vps ip. For further support please go to the discord. This is a common problem among players and you'll find a solution by just doing some searching or making a support post.
@HectorLeeYE I haven't ran into issues with the 3 user limit (but only 3 people currently play on my server anyways). I will say I don't think the user limit applies for this case as hosting via tailscale is just sharing the one device from your tailnet out to your friends but I could be wrong.
@OnniSaarni I had the opportunity to test everything works very well, VPS and stores in the cloud save and the rally runs the host. Beautiful job! Now we are waiting for the entire Linux server to be able to put 🤞🏻
Sorry for those who helped answer my Raspberry PI questions but I couldn't use a raspberry pi in the end as I couldn't find a coupon to get a discount on a raspberry pi from a shop in my country (Singapore) 😅
With that said, for anyone who is googling this, I can confirm that this works on a Linux VPS. That said, as I've stated (and checked by others), this server is a HTTP server. It's not that lightweight (meaning that the cheapest VPS will not allow you to get away), but the second VPS should be fine.
I've kindly attached an image to show how much RAM you generally need (You do this by running free -h
in terminal. Note: If you're using a windows VPS, you might need to RDP inside as I am very sure that this command does not work inside windows cmd
** I am running a few server side mods (AI Spawning, bot brains)
Perhaps @OnniSaarni could add a small section to your github docker repo page detailing that you'll need 1GB Minimum, and that this isn't really recommended because there could be a spike? I'll edit this comment again if there are any issues with spikes since I honestly have not tested system scalability stats according to number of players connecting
@HectorLeeYE I would consider it pretty lightweight if it only uses 1gb of ram. Other game servers use a lot more resources. I'll probably add some minimum system requirements on the page soon. Thanks for the suggestion.
Anyone had an issue whereby Traders aren't selling the same amount of items VS Windows SPT Server?
I've just installed SPT 3.9.5 / FIKA 2.2.7 on Linux and compared it against the SPT Server.exe on my Windows machine and noticed that Ref at lvl 1 trader level has no items for sale on Linux, But on Windows he has about 20 items or so.
Same with Mechanic, He is missing alot of items at level 1. Mainly guns and Items, like the Toolkit.
I've compared Mechanic's trader files, they all match between Windows & Linux "SPT_Data\Server\database\traders\5a7c2eca46aef81a7ca2145d*"
Anyone else noticed this? IO dont have any mods installed. Just followed the Docker install guide found here and compared it to a newly installed SPT on Windows.
@ChrisyG6 the docker setup shouldn't affect stuff like this. It could be because of Fika. The docker setup automatically installs the serverside Fika mod.
Thanks Onni, Oddly enough I have just redeployed again and this time the traders are showing items correctly. I will see if I can re-create the problem and report back if I find out what it is. Thanks for the quick reply :)
It was my fault.. It was SVM Mod, I had "RemoveBarterOffers" set to true. Which is odd, as it wasn't in the mods folder when after I installed.
@ChrisyG6 Alright! Good to know there was no real issue.
Brand new Debian 12 install, seems like the documented Fika build needs updating:
=====
sudo docker build --no-cache --label FIKA -t fika .
=====
[+] Building 74.1s (15/32) docker:default
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 1.95kB 0.0s
=> [internal] load metadata for docker.io/library/ubuntu:latest 0.2s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> CACHED [builder 1/22] FROM docker.io/library/ubuntu:latest@sha256:8a 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 29B 0.0s
=> CACHED [stage-1 2/7] WORKDIR /opt/ 0.0s
=> [stage-1 3/7] RUN apt update && apt upgrade -yq && apt install -yq d 11.4s
=> [builder 2/22] RUN echo 'debconf debconf/frontend select Noninteract 0.5s
=> [builder 3/22] WORKDIR /opt 0.0s
=> [builder 4/22] RUN apt update && apt install -yq git git-lfs curl 19.8s
=> [builder 5/22] RUN git clone https://github.com/nvm-sh/nvm.git $HOME 1.3s
=> [builder 6/22] RUN . $HOME/.nvm/nvm.sh && nvm install 20.11.1 4.8s
=> [builder 7/22] RUN git clone https://dev.sp-tarkov.com/SPT/Server.g 47.0s
=> [builder 8/22] WORKDIR /opt/srv/project 0.0s
=> ERROR [builder 9/22] RUN git checkout tags/[Insert 0.3s
------
> [builder 9/22] RUN git checkout tags/[Insert:
0.240 error: pathspec 'tags/[Insert' did not match any file(s) known to git
------
1 warning found (use docker --debug to expand):
- JSONArgsRecommended: JSON arguments recommended for CMD to prevent unintended behavior related to OS signals (line 65)
Dockerfile:27
--------------------
25 | WORKDIR /opt/srv/project
26 |
27 | >>> RUN git checkout tags/$SPT_TAG
28 | RUN git checkout $SPT
29 | RUN git-lfs pull
--------------------
ERROR: failed to solve: process "/bin/sh -c git checkout tags/$SPT_TAG" did not complete successfully: exit code: 1
Can this part just be updated:
=====
FROM ubuntu:latest AS builder
ARG FIKA=HEAD^
ARG FIKA_TAG=[Insert Tag Here]
ARG SPT=HEAD^
ARG SPT_TAG=[Insert Tag Here]
ARG NODE=20.11.1
=====
to:
=====
FROM ubuntu:latest AS builder
ARG FIKA=HEAD
ARG FIKA_TAG=v2.2.8
ARG SPT=HEAD
ARG SPT_TAG=3.9.5
ARG NODE=20.11.1
=====
But even after doing so errors persist:
=====
[```
+] Building 200.6s (29/32) docker:default
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 1.92kB 0.0s
=> [internal] load metadata for docker.io/library/ubuntu:latest 0.2s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load build context 0.0s
=> => transferring context: 29B 0.0s
=> CACHED [builder 1/22] FROM docker.io/library/ubuntu:latest@sha256:8a 0.0s
=> CACHED [stage-1 2/7] WORKDIR /opt/ 0.0s
=> [stage-1 3/7] RUN apt update && apt upgrade -yq && apt install -yq d 13.6s
=> [builder 2/22] RUN echo 'debconf debconf/frontend select Noninteract 0.5s
=> [builder 3/22] WORKDIR /opt 0.0s
=> [builder 4/22] RUN apt update && apt install -yq git git-lfs curl 18.8s
=> [builder 5/22] RUN git clone https://github.com/nvm-sh/nvm.git $HOME 1.4s
=> [builder 6/22] RUN . $HOME/.nvm/nvm.sh && nvm install 20.11.1 4.3s
=> [builder 7/22] RUN git clone https://dev.sp-tarkov.com/SPT/Server.g 43.8s
=> [builder 8/22] WORKDIR /opt/srv/project 0.0s
=> [builder 9/22] RUN git checkout tags/3.9.5 1.3s
=> [builder 10/22] RUN git checkout HEAD 0.5s
=> [builder 11/22] RUN git-lfs pull 0.7s
=> [builder 12/22] RUN sed -i '/setEncoding/d' /opt/srv/project/src/Prog 0.3s
=> [builder 13/22] RUN . $HOME/.nvm/nvm.sh && npm install && npm run b 102.9s
=> [builder 14/22] RUN mv build/ /opt/server/ 7.0s
=> [builder 15/22] WORKDIR /opt 0.0s
=> [builder 16/22] RUN rm -rf srv/ 7.0s
=> [builder 17/22] RUN git clone https://github.com/project-fika/Fika-Se 1.3s
=> [builder 18/22] WORKDIR ./server/user/mods/fika-server 0.1s
=> [builder 19/22] RUN git checkout tags/v2.2.8 0.4s
=> [builder 20/22] RUN git checkout HEAD 0.5s
=> [builder 21/22] RUN . $HOME/.nvm/nvm.sh && npm install 6.1s
=> [builder 22/22] RUN rm -rf ../FIKA/.git 0.3s
=> ERROR [stage-1 4/7] COPY --from=builder /opt/server /opt/srv 1.0s
------
> [stage-1 4/7] COPY --from=builder /opt/server /opt/srv:
------
1 warning found (use docker --debug to expand):
- JSONArgsRecommended: JSON arguments recommended for CMD to prevent unintended behavior related to OS signals (line 65)
Dockerfile:51
--------------------
49 | WORKDIR /opt/
50 | RUN apt update && apt upgrade -yq && apt install -yq dos2unix
51 | >>> COPY --from=builder /opt/server /opt/srv
52 | COPY fcpy.sh /opt/fcpy.sh
53 | # Fix for Windows
--------------------
ERROR: failed to solve: failed to copy files: copy file range failed: no space left on device
=====
Shouldn't "ARG SPT_TAG=3.9.5" not be the latest SPT version? 3.9.8?
ERROR: failed to solve: process "/bin/sh -c git checkout tags/$SPT_TAG" did not complete successfully: exit code: 1
States that your error is due to a wrong tag, which you identified since $SPT_TAG is just a placeholder; replace it with your desired tag.
ERROR: failed to solve: failed to copy files: copy file range failed: no space left on device
States that you have no disk space left, so prune your docker to reclaim more disk space
@HectorLeeYE yeah the server is just a pretty lightweight http server. The server should run fine on all Raspberry Pis. Excessive amounts of mods can affect performance a bit but not a lot.