I’d say zip-only:
Having it automatically grab the code from github would come with a few issues:
Some changes in the git repo would trigger a new build, even though only documentation changed.
How does LogicWorld.net know where the actual mod structure is located?
Some files should be excluded from the downloadable mod (e.g. Readme.md, and some other files that are solely for development)
I think a zip upload would be best, possibly even with an API for that. Then people that want it to be automatic can set up a github actions thingy, or just have a script locally.
This would however require the website to support tokens though, since username and password isnt very nice in scripts
Additionally, from a safety standpoint:
In case github sync would be a thing, anyone that has write access could put in malicious code. and the owner cannot do anything about it if deployment is automatic.
i threw it into a codeblock so it should be good now
Just gonna copy my guide into here as per Jimmy’s request:
(Its about installing the LW dedicated server using steamcmd on ubuntu, but it will also work using other distros most likely.)
If there are any issues, message me on the LW discord (@GHXX).
I hope it helps.
# update package repositories and packages
sudo apt update && sudo apt upgrade
# install the following packages
sudo apt install steamcmd screen
# and optionally, using apt again you can install ufw which lets you easily open ports. You can use something else too of course.
sudo apt install ufw
#now create a steam user (you can just hit enter to skip entering the details, and also you can skip setting a password, but that it up to you):
sudo adduser steam
#now switch to the steam user (it is important that you do not switch the user back. Also, do not prefix any of the following commands with sudo):
sudo su steam
# set the current directory to the /home/steam directory
mkdir -p /home/steam/logic_world/logic_world_ds/
# be sure to replace STEAM_USERNAME_HERE in the following command, and further below with your steam USERNAME that owns logicworld
steamcmd +force_install_dir /home/steam/logic_world/logic_world_ds/ +login STEAM_USERNAME_HERE +app_update 1252670 validate +quit
ln -s /home/steam/logic_world/logic_world_ds/GameData/ /home/steam/logic_world/GameData
"--> set the following settings:
(recommended and sometimes required) InternetProtocolOverride: IPv4
-------- (optional, format layout may be very specific:) --------
(A word of warning: If you set verified mode to false, anyone can choose their username freely!, therefore you should really really set a password!!)
VerifiedMode : false
#now save and close the config file (ctrl O to save, ctrl X to close)
#then create a start script using the following line:
printf "#/bin/bash\n\nscreen -L -m -d -S lwserver /home/steam/logic_world/logic_world_ds/Server\n" > ~/start_lw_server.sh
chmod +x ~/start_lw_server.sh
and create an update script via
printf "#/bin/bash\n\nsteamcmd +force_install_dir /home/steam/logic_world/logic_world_ds/ +login STEAM_USERNAME_HERE +app_update 1252670 validate +quit\n" > ~/update_logic_world_server.sh
chmod +x ~/update_logic_world_server.sh
#-- optional, create an autostart entry using crontab --
#then choose a text editor (the easiest is probably nano)
#and enter the following line at the bottom, followed by a newline (make sure the line does NOT start with #):
@reboot /bin/bash ~/start_lw_server.sh
#You can now log out of your steam user again if you want.
#-- forward ports --
#likely you will need to forward ports. Using ufw it is as simple as running the following command:
ufw allow 43531/udp
# the firewall rule takes effect immediately, and is persistent across restarts
# if you are using iptables, you will need to use iptables-persistent or something else to save the rules across restart