A management tool for your remote server hosted spt instance with a web management ui.
- provide a web ui for server mod management
- add mod to your server using github link
- check if mod is latest and notify user if it isn't
- allow user to update to latest with the click of a button
The workflow will produce an image anytime and changes are pushed to main branch You can download the image from ghcr.io/killahb33/spt-manager:${{ env.SPT_VERSION }}
Two volumes are added, a third being optional:
/app/SPT_Data/Servercontains standardSPT.Serverdatabase and configuration files. For example,http.jsonorprofiles.jsonThe container will copy standard SPT Server files to this volume if emty (i.e. mounted by the very first time)/app/userwith the standard server configuration (will be created on first login)./profilescontains the player profiles created./modsinstalled server mods go here./logsserver logs will appear here
/app/BepInExthis is the client side mods, mount this if you are planning to use modsync
SPT_LOG_REQUESTSwhen false, disables SPT-AKI Request LoggingSPT_BACKEND_IPwhen present, used inhttp.confasbackendIpproperty
Feel free to play yourself with the different setups and configs.
Update SPT_VERSION Dockerfile ARG with the desired tag
You can look for the most recent tag with git describe --tags --abbrev=0
The way SPT is organizing their release is by tags on release branches. 3.8.0 was not released as a tag on master as it was done before.
Note: It can be a good idea to evolve the Dockerfile to include SPT_VERSION for the branch and always use latest tag)
git clone https://github.com/KillahB33/spt-manager.git
cd spt-manager
docker build -t killahb33/spt-manager:latest .mkdir /opt/sptarkov && mkdir /opt/sptarkov/Server && mkdir /opt/tarkov/user
docker run --name spt-aki -v /opt/sptarkov/Server:/app/SPT_Data/Server -v /opt/sptarkov/user:/app/user -e SPT_LOG_REQUESTS=false -e SPT_BACKEND_IP='External ip' -p 6969:6969 cbr/spt:latest -dWhere "External IP" - this is the IP address you need - your external IP, local host IP address or received in the VPN network.
Additionally, a compose.yml file has been provided for the sake of convenience.
Usually, minor version upgrades do work out of the box, but sometimes, mods fail to load giving errors. In that case, it is needed to delete /user/cache folder.
- Evaluate if it's worth deleting the cache folder on server startup and its impact on server boot time. #todo
Know issues:
git-lfscan fail because some regressions on git: git-lfs/git-lfs#5749- In that case we can add
ARG GIT_CLONE_PROTECTION_ACTIVE=falsewhen building so that thealpine:gitintermediate container is able to fetch all the dependencies.
- In that case we can add
- the mod is only able to handle single asset releases, so if your mod has multiple assets in a release (not including source) then it can't handle it.
Contributions:
CBR - the original spt-docker creator which this project is heavily based on Corter - modsync creator and collaboration partner on how we can best help the spt community