This container updates Pavlov VR and Steam on start.
docker run --name pavlov -d \
-p 7777:7777/udp \
-p 8177:8177/udp \
-p 9100:9100/tcp \ #optional default Rcon port
-v $HOME/pavlov/Game.ini:/home/steam/pavlovserver/Pavlov/Saved/Config/LinuxServer/Game.ini \
-v $HOME/pavlov/mods.txt:/home/steam/pavlovserver/Pavlov/Saved/Config/mods.txt \ #optional
-v $HOME/pavlov/RconSettings.txt:/home/steam/pavlovserver/Pavlov/Saved/Config/RconSettings.txt \ #optional, create port forwarding as required
-v $HOME/pavlov/blacklist.txt:/home/steam/pavlovserver/Pavlov/Saved/Config/blacklist.txt \ #optional
-v $HOME/pavlov/whitelist.txt:/home/steam/pavlovserver/Pavlov/Saved/Config/whitelist.txt \ #optional
-e PORT=7777 \ # optional defaults to 7777
--restart unless-stopped \
gregology/pavlov-server:latest
The second port is always 400 higher than the defined port. If you use port 7000 you will also need to forward port 7400. Refer to the docs for more infomation on ports and port forwarding.
Your game should appear on the PC Servers List & pablub custom serbers.
[/Script/Pavlov.DedicatedServer]
bEnabled=true
ServerName=MyAwesomeServer
bSecured=true
bCustomServer=true
LimitedAmmoType=2
TimeLimit=0
MapRotation=(MapId="UGC2443220615") # Survival Island
Note: MapIds starting with UGC
are from the Steam workshop. Append UGC
to the id from the url of the map you want to use.
See the docs for more game configuration options.
76561198057346920 # BabyArmour
Note: Use Steam ID Finder to look up a Steam user ID.
Password=password
Port=9100
Pavlovserver is functionally single threaded (one thread does vast majority of work). More CPUs only help if you are running more servers. More clockspeed = higher performance = more users per server.
Here are some performance stats for a docker host with an Intel Core i9-9880H CPU @ 2.30GHz, 32GB ram, and a 1Gbps fiber connection. The docker host is also running a few other non Pavlov containers. This setup could comfortably run half a dozen Pavlov VR servers.
SERVER | # PLAYERS | MAP | CPU % | MEM USAGE / LIMIT | MEM % | NET I/0 | BLOCK I/0 |
---|---|---|---|---|---|---|---|
BabyArmour - Survival Island | 0 | Survival Island | 68.91% | 710MiB / 31.26GiB | 2.22% | 295MB / 50. 8MB | 223MB / 142MB |
BabyArmour - Escape The Dead | 8 | Escape The Dead: Aftermath | 117.59% | 916.4MiB / 31.26GiB | 2.86% | 81.4MB / 297MB | 821MB / 142MB |
BabyArmour - Mako Reactor | 0 | ze_FFVII_Mako_Reactor_pav_v1 | 29.76% | 505.4MiB / 31.26GiB | 1.86% | 16.2MB / 33.7MB | 356MB / 135MB |
Increasing the player load increases memory & CPU usage.
SERVER | # PLAYERS | MAP | CPU % | MEM USAGE / LIMIT | MEM % | NET I/0 | BLOCK I/0 |
---|---|---|---|---|---|---|---|
BabyArmour - Escape The Dead | 16 | Escape The Dead: Aftermath | 140.95% | 1.011GiB / 31.26GiB | 3.23% | 251MB / 1.28GB | 821MB / 142MB |
Note: the other two servers are still running, I just removed them for clarity.
A server with 1Gb of ram can run a small map with a few players which means there are free VMs capable of running Pavlov server. Oracle offers a free VM which can comfortably run a small Pavlov server. This video shows a server with 4 players running smoothly on a free Oracle VM.
Here is that server's Game.ini
file.
[/Script/Pavlov.DedicatedServer]
bEnabled=true
ServerName=Oracle free tier VM
bSecured=true
bCustomServer=true
LimitedAmmoType=0
TimeLimit=0
MaxPlayers=4
#MapRotation=(MapId="UGC1411741987", GameMode="DM") # Office 4.21
#MapRotation=(MapId="UGC2006865873", GameMode="DM") # Construction Small
MapRotation=(MapId="UGC2252266456", GameMode="DM") # Laser Tag Small
If you're having issues, please submit an issue and ping me.
docker build -t gregology/pavlov-server:0.16 .
docker push gregology/pavlov-server:0.16
docker tag gregology/pavlov-server:0.16 gregology/pavlov-server:latest
docker push gregology/pavlov-server:latest