Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fork #1

Open
ich777 opened this issue Dec 18, 2023 · 17 comments
Open

Fork #1

ich777 opened this issue Dec 18, 2023 · 17 comments

Comments

@ich777
Copy link

ich777 commented Dec 18, 2023

Hi,

I just saw your fork and noticed that.

Why not install screen and then let the applications run inside screen (eg: here <- maybe a bit over complicated but hey, it works... :) ).

Cheers,
Christoph

@Stultusaur
Copy link
Owner

Stultusaur commented Dec 18, 2023 via email

@pixelwave
Copy link

Hi @Stultusaur ... thanks for the upload. Could you maybe extend a bit the readme. Do I understand correctly if I run this docker container I can play SPT with my friends in Coop mode?

@ich777
Copy link
Author

ich777 commented Jan 11, 2024

@pixelwave in general yes, but you need to run this container on a dedicated server/host and then you can play coop over that dedicated server. :)

I think the README.md has everything in it and even how to run the container.

@ich777
Copy link
Author

ich777 commented Jan 11, 2024

@Stultusaur you should really run the container with screen to make it easier for users to set it up and so that they don't have to use -ti

@pixelwave
Copy link

pixelwave commented Jan 11, 2024

Thanks @ich777 for the quick reply. I have a separate proxmox server running linux with docker. The readme certainly helps to setup the docker container.

But are there further resources like:

  1. How to connect to the server?
  2. Is a specific game client required to connect (I assume the mentioned Client version 1.9.8767.26420?)?
  3. How are profiles / progress saved for people connecting?
    etc.

I absolutely love the idea of SPT Coop ... but resources and tutorials are quite scarce. I guess mostly because of the legal debate. Any further help would be greatly appreciated.

@pixelwave
Copy link

Btw ... does this work on a linux server running docker? Or is Windows required?

@ich777
Copy link
Author

ich777 commented Jan 11, 2024

@Stultusaur is using WINE, so in general this is a Linux Docker container.

For your questions, I'm not 100% sure because I don't play Tarkov and I'm not familiar with that game <- @Stultusaur forked my docker-steamcmd-server and customized it to work with Tarkov I think.

From what I can see he is also missing the exposed ports, as said above I really can't tell what ports you need use.

The saving from the progress is usually handled through the mounted volume, however I prefer bind mounts more than volumes but that is up to the individual user and what type of system you use.

@Stultusaur can maybe answer all your questions here. :)

@ich777
Copy link
Author

ich777 commented Jan 11, 2024

@Stultusaur you can even automate the PublicIP address process, look for example in my Astroneer branch at this line.

@Stultusaur
Copy link
Owner

@pixelwave
Hey mate,

  1. How to connect to the server?
    Everything is explained in the FAQ on the discord, apologies, I just assumed anyone using this docker container would already be in that discord, and have prior knowledge of SITCoop use,

To answer that question, you should to visit this discord https://discord.gg/f4CN4n3nP2 and following the Getting Start - Client section in the FAQ.

However see FAQ answer below:

Prerequisites:
Ensure Escape from Tarkov Escape from Tarkov is up to date

Installation Steps:

  1. Make sure Escape from Tarkov isup to date.

  2. Download the SIT Manager .

  3. Create two folders named: SIT-game and launcher.

  4. Copy your live Escape from Tarkov files into the SIT-game folder. ( If you did not ran the live game for a while do it )

  5. Downgrade the EFT to a supported version, all Downgrade patchers can be found here -> ⁠downgrade-eft

  6. Extract it in the same folder where you copy the live EFT and run the patcher.exe

  7. Extract the contents of SIT Manager into the launcher folder.

  8. Start the launcher (SIT.Manager), specify the SIT-game folder path in the settings tab, ensuring it indicates EFT version 0.13.9.xxx.

  9. Install SIT from the tools tab.( Top one is the most recent release )

  10. Enter the IP and connect. (If using Hamachi/Radmin, make sure you are in the same network/room with whoever hosts the server and use the IP from THEIR VPN to connect)

  11. Is a specific game client required to connect (I assume the mentioned Client version 1.9.8767.26420?)?
    Yes,
    There is a downgrader tool available on the discord to downgrade from what ever current version Live is running.
    Again, I did not create the client. and I will update the doco for it explaining this.

  12. How are profiles / progress saved for people connecting?
    This is handled by the SITCoop mod module in the /serverdata/serverfiles/user/profiles folder.

@Stultusaur
Copy link
Owner

@ich777

Thank you for your suggestions / support.
As I said, new to actually creating docker containers,

I realised today actually that I forgot to expose the ports required.
I will update the container to expose the ports, however, the application itself cannot change the port requirements (I do not think, I haven't tried) as they have mentioned in their discord several times, that changing the port assignments will not work for clients trying to connect.

So I didn't want to give users the ability to change it using docker.

But, I forgot to even expose those ports haha.

A user reached out with a problem, of his client not being able to connect, resolved that for him, but new I would have to fix the container.

As for the screen to make it easier, I just haven't gotten around to it, however, it is 1AM right now, so perfectly good time to work on it! ;)

Thanks again mate for your help and suggestions, I am definitely a novice when it comes to actually creating containers.

@Stultusaur
Copy link
Owner

@ich777 '

Hey mate, another question I have,
Another thing I was wondering when creating docker containers,

If an application is no longer needed,
Example: p7zip is only used during the installation, and is no longer required once the container is finished.
Can I apt uninstall the applications that are no longer required before server start?

It isn't a lot, but it would lower the size of the container yes?

@Stultusaur
Copy link
Owner

@ich777

So attempting to use screen with the below command:
screen -S SITCoop -L -Logfile ${SERVER_DIR}/masterLog.0 -d -m NODE_SKIP_PLATFORM_CHECK=1 wine64 ${SERVER_DIR}/Aki.Server.exe
Just results in it getting to the stage where it starts the Aki exe file, then shuts down the container.

Unsure where I am going wrong, should I create the startup command inside another script?

@pixelwave
Copy link

pixelwave commented Jan 11, 2024

@pixelwave Hey mate,

  1. How to connect to the server?
    Everything is explained in the FAQ on the discord, apologies, I just assumed anyone using this docker container would already be in that discord, and have prior knowledge of SITCoop use,

To answer that question, you should to visit this discord https://discord.gg/f4CN4n3nP2 and following the Getting Start - Client section in the FAQ.

However see FAQ answer below:

Prerequisites: Ensure Escape from Tarkov Escape from Tarkov is up to date

Installation Steps:

  1. Make sure Escape from Tarkov isup to date.
  2. Download the SIT Manager .
  3. Create two folders named: SIT-game and launcher.
  4. Copy your live Escape from Tarkov files into the SIT-game folder. ( If you did not ran the live game for a while do it )
  5. Downgrade the EFT to a supported version, all Downgrade patchers can be found here -> ⁠downgrade-eft
  6. Extract it in the same folder where you copy the live EFT and run the patcher.exe
  7. Extract the contents of SIT Manager into the launcher folder.
  8. Start the launcher (SIT.Manager), specify the SIT-game folder path in the settings tab, ensuring it indicates EFT version 0.13.9.xxx.
  9. Install SIT from the tools tab.( Top one is the most recent release )
  10. Enter the IP and connect. (If using Hamachi/Radmin, make sure you are in the same network/room with whoever hosts the server and use the IP from THEIR VPN to connect)
  11. Is a specific game client required to connect (I assume the mentioned Client version 1.9.8767.26420?)?
    Yes,
    There is a downgrader tool available on the discord to downgrade from what ever current version Live is running.
    Again, I did not create the client. and I will update the doco for it explaining this.
  12. How are profiles / progress saved for people connecting?
    This is handled by the SITCoop mod module in the /serverdata/serverfiles/user/profiles folder.

Yes thanks! In the meantime I found this myself. I set it up first on my Windows machine. And it works! Tested with a collegue.

The performance of the current version is a bit laggy though ... but I think they also mentioned it on the discord.

One more question ... if I use your docker version on my Linux server to host the game and on my Windows machine the client do I need 2 copies of EFT?

Maybe add the discord link in the readme.

@pixelwave
Copy link

But cool that you are working on a docker version. I saw someone else was trying to bring this on pterodactyl as an egg. That would be really nice.

@Stultusaur
Copy link
Owner

Stultusaur commented Jan 11, 2024 via email

@ich777
Copy link
Author

ich777 commented Jan 12, 2024

Example: p7zip is only used during the installation, and is no longer required once the container is finished.

I really wouldn't bother removing that one dependency because it won't have much an impact and most people don't even care about size nowadays anymore.
Sure if you have dependencies/package that are much bigger in terms of size it could make sense to remove them.

However I've seen that you make use of p7zip in start-server.sh and therefore it makes no sense to remove it since every dependency that is required to run the container or the application inside should stay, even if you use it once, hope that makes sense to you too. So my answer in this case is no, don't remove it.

Just results in it getting to the stage where it starts the Aki exe file, then shuts down the container.

Please don't forget if you start a screen session in detached mode with -d then you have to make sure that the container keeps running by maybe using tail like that and maybe a watchdog script that watches if the process is still running, I would actually recommend waiting a few seconds before starting tail in this example.

Just for testing purposes you can put a sleep infinity after the screen command and see if it is actually running in the background.

Something like that should do the job (but keep in mind this is untested and just thrown together):
start-server.sh:

...
echo "---Checking for old logs---"
find ${SERVER_DIR} -name "masterLog.*" -exec rm -f {} \;
screen -wipe 2&>/dev/null

echo "---Start Server---"
screen -S SITCoop -L -Logfile ${SERVER_DIR}/masterLog.0 -d -m NODE_SKIP_PLATFORM_CHECK=1 wine64 ${SERVER_DIR}/Aki.Server.exe
screen -S watchdog -d -m /opt/scripts/start-watchdog.sh
sleep 2
tail -f ${SERVER_DIR}/masterLog.0

start-watchdog.sh:

#!/bin/bash
sleep 5
killpid="$(pidof Aki.Server.exe)"
while true
do
	tail --pid=$killpid -f /dev/null
	kill "$(pidof tail)"
exit 0
done

I've linked a few things above, if you have questions feel free to ask. :)

EDIT: May I ask if you have a Unraid template for that too or are you not using Unraid?

@pixelwave
Copy link

pixelwave commented Jan 12, 2024

@Stultusaur So I installed your SITCoop-docker on my proxmox and it works! Going to test if CPU/RAM allocation is sufficiant:
Screenshot 2024-01-12 at 14 24 26

The only thing that took some time to figure out is how to access the ports correctly. I think the solution was to expose 6969/tcp, 6969/upd, 6970/tcp, 6970/udp in Portainer/Container Settings.

I am no expert maybe I exposed to much but connection was first dismissed and now it works. Also from the Internet.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants