diff options
author | Kyle Brady | 2021-12-31 18:48:12 -0800 |
---|---|---|
committer | Kyle Brady | 2022-01-03 23:33:53 -0800 |
commit | c1ea0cdee4733e0a00d721dc1000d2e5411f9cda (patch) | |
tree | dda77c353be1da02ba19adf371a39c6b45883a7c | |
download | aur-c1ea0cdee4733e0a00d721dc1000d2e5411f9cda.tar.gz |
Inital package creation (41.65)
-rw-r--r-- | .SRCINFO | 26 | ||||
-rw-r--r-- | .gitignore | 3 | ||||
-rw-r--r-- | PKGBUILD | 41 | ||||
-rw-r--r-- | project-zomboid-server.conf | 18 | ||||
-rw-r--r-- | project-zomboid-server.install | 17 | ||||
-rw-r--r-- | project-zomboid-server.service | 38 | ||||
-rw-r--r-- | project-zomboid-server.sysusers | 2 | ||||
-rw-r--r-- | project-zomboid-server.tmpfiles | 4 |
8 files changed, 149 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO new file mode 100644 index 000000000000..95cc282e2d20 --- /dev/null +++ b/.SRCINFO @@ -0,0 +1,26 @@ +pkgbase = project-zomboid-server + pkgdesc = Dedicated server for the game Project Zomboid + pkgver = 41.65 + pkgrel = 1 + url = https://projectzomboid.com + install = project-zomboid-server.install + arch = x86_64 + license = custom:PZLicense + makedepends = steamcmd + depends = java-runtime-headless + depends = lib32-glibc + depends = libxext + depends = gcc-libs + depends = libsm + depends = rcon-cli + backup = etc/project-zomboid/server.conf + source = project-zomboid-server.service + source = project-zomboid-server.conf + source = project-zomboid-server.sysusers + source = project-zomboid-server.tmpfiles + sha256sums = 1eb16b0d67aca6b112b1bfaead24fb3851c9b351b7e8804e334fb4f08906b891 + sha256sums = 6d7163af00d1521c1802bbbf304eb62e8578ca7c7f9c3a1618f8ed5584c08591 + sha256sums = 561f21c7cc53dc4a14eae829c04050e917d668649a1fffab630647c62f94bb08 + sha256sums = b9bbddb77573ce3f4fde792114ac7685292caee07e7d6f1fc993db4f32013098 + +pkgname = project-zomboid-server diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000000..2dfd12475b99 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +pkg/ +src/ +project-zomboid-server-*.pkg.tar.* diff --git a/PKGBUILD b/PKGBUILD new file mode 100644 index 000000000000..50e35c1fb6c1 --- /dev/null +++ b/PKGBUILD @@ -0,0 +1,41 @@ +# Maintainer: Kyle Brady <kyle at spark - gap dot com> + +pkgname=project-zomboid-server +# While the pkgver is set to 41.65, the latest version will always be downloaded via steamcmd +pkgver=41.65 +pkgrel=1 +pkgdesc="Dedicated server for the game Project Zomboid" +arch=('x86_64') +url='https://projectzomboid.com' +license=('custom:PZLicense') +depends=('java-runtime-headless' 'lib32-glibc' 'libxext' 'gcc-libs' 'libsm' 'rcon-cli') +makedepends=('steamcmd') +backup=('etc/project-zomboid/server.conf') +install='project-zomboid-server.install' +source=('project-zomboid-server.service' + 'project-zomboid-server.conf' + 'project-zomboid-server.sysusers' + 'project-zomboid-server.tmpfiles') +sha256sums=('1eb16b0d67aca6b112b1bfaead24fb3851c9b351b7e8804e334fb4f08906b891' + '6d7163af00d1521c1802bbbf304eb62e8578ca7c7f9c3a1618f8ed5584c08591' + '561f21c7cc53dc4a14eae829c04050e917d668649a1fffab630647c62f94bb08' + 'b9bbddb77573ce3f4fde792114ac7685292caee07e7d6f1fc993db4f32013098') + +prepare() { + steamcmd +force_install_dir "$srcdir/$pkgname" +login anonymous +app_update 380870 validate +quit +} + +package() { + cd "$srcdir" + mkdir -p "$pkgdir/opt" + cp -r $pkgname "$pkgdir/opt/" + rm -r "$pkgdir/opt/$pkgname/jre64" + rm "$pkgdir/opt/$pkgname/start-server.sh" + rm "$pkgdir/opt/$pkgname/ProjectZomboid32.json" + + install -Dm644 $pkgname.service "$pkgdir/usr/lib/systemd/system/$pkgname.service" + install -Dm644 $pkgname.conf "$pkgdir/etc/project-zomboid/server.conf" + install -Dm644 $pkgname.sysusers "$pkgdir/usr/lib/sysusers.d/$pkgname.conf" + install -Dm644 $pkgname.tmpfiles "$pkgdir/usr/lib/tmpfiles.d/$pkgname.conf" + install -Dm644 "$pkgdir/opt/$pkgname/license/PZLicense.txt" "$pkgdir/usr/share/licenses/$pkgname/LICENSE" +} diff --git a/project-zomboid-server.conf b/project-zomboid-server.conf new file mode 100644 index 000000000000..54b2854d7195 --- /dev/null +++ b/project-zomboid-server.conf @@ -0,0 +1,18 @@ +# Save/sever to use +NAME="servertest" + +# Bypasses the create a password prompt +ADMIN_PASSWORD="CHANGE_ME" + +# RCON Options both here and in: +# /opt/project-zomboid-server/Zomboid/Server/$NAME.ini +RCON_PORT="27015" +# Password used to connect to RCON for graceful shutdowns +RCON_PASSWORD="CHANGE_ME" + +# Most options should be set via: +# /opt/project-zomboid-server/ProjectZomboid64.json +# /opt/project-zomboid-server/Zomboid/Server/$NAME* +# But any extra startup arguments to java and zomboid can be set with: +#JVM_ARGS= +#SERVER_ARGS= diff --git a/project-zomboid-server.install b/project-zomboid-server.install new file mode 100644 index 000000000000..0993305bcc89 --- /dev/null +++ b/project-zomboid-server.install @@ -0,0 +1,17 @@ +## arg 1: the new package version +post_install() { + echo "CHANGE THE PASSWORDS IN /etc/project-zomboid/server.conf BEFORE STARTING THE SERVICE" + echo "UDP ports 16261 and 8766 need to be open in your firewall for users to connect." + echo "RCON password needs to be updated in the game settings to enable graceful service shutdown." + echo "Settings can be configured via:" + echo " Passwords & launch args: /etc/project-zomboid/server.conf" + echo " Server & game settings (made on start): /opt/project-zomboid-server/Zomboid/Server/servertest*" + echo " JVM settings (RAM): /opt/project-zomboid-server/ProjectZomboid64.json" + echo "By default, saves will be stored in /opt/project-zomboid-server/Zomboid/Saves/Multiplayer/" + echo "Start project-zomboid-server.service to create a default world." +} + +## arg 1: the old package version +post_remove() { + echo "Game saves, settings, and mods may left in /opt/project-zomboid-server/" +} diff --git a/project-zomboid-server.service b/project-zomboid-server.service new file mode 100644 index 000000000000..f988e14058f0 --- /dev/null +++ b/project-zomboid-server.service @@ -0,0 +1,38 @@ +[Unit] +Description=Project Zomboid dedicated server + +[Service] +Type=simple +User=zomboid +Group=zomboid + +Environment=LD_LIBRARY_PATH="/opt/project-zomboid-server/linux64:/opt/project-zomboid-server/natives:/opt/project-zomboid-server/:${LD_LIBRARY_PATH}" +EnvironmentFile=/etc/project-zomboid/server.conf +# These variables need to be changed from the default value in the EnvironmentFile +ExecCondition=/usr/bin/test "${ADMIN_PASSWORD}" != "CHANGE_ME" +ExecCondition=/usr/bin/test "${RCON_PASSWORD}" != "CHANGE_ME" +ExecStart=/opt/project-zomboid-server/ProjectZomboid64 $JVM_ARGS -- -adminpassword "${ADMIN_PASSWORD}" -servername "${NAME}" $SERVER_ARGS +ExecStop=/usr/bin/rcon -a "127.0.0.1:${RCON_PORT}" -p "${RCON_PASSWORD}" -t rcon quit +# Quitting / saving is aysnc, and doesn't have a good way to be wrapped by systemd +# use timeout + tail to try and give the process some time to exit +ExecStop=/usr/bin/timeout 60s /usr/bin/tail --pid="${MAINPID}" -f /dev/null +ExecReload=/usr/bin/rcon -a "127.0.0.1:${RCON_PORT}" -p "${RCON_PASSWORD}" -t rcon reloadoptions + +WorkingDirectory=/opt/project-zomboid-server +ReadWritePaths=/opt/project-zomboid-server +ProtectSystem=full +ProtectHome=true +PrivateTmp=yes +PrivateDevices=yes +ProtectClock=yes +ProtectKernelTunables=yes +ProtectKernelModules=yes +ProtectKernelLogs=yes +ProtectControlGroups=yes +RestrictSUIDSGID=yes +RestrictRealtime=yes +RestrictNamespaces=yes +NoNewPrivileges=yes + +[Install] +WantedBy=multi-user.target diff --git a/project-zomboid-server.sysusers b/project-zomboid-server.sysusers new file mode 100644 index 000000000000..fa1f85299671 --- /dev/null +++ b/project-zomboid-server.sysusers @@ -0,0 +1,2 @@ +#Type Name ID GECOS Home directory Shell +u zomboid - "Project Zomboid dedicated server" /opt/project-zomboid-server diff --git a/project-zomboid-server.tmpfiles b/project-zomboid-server.tmpfiles new file mode 100644 index 000000000000..7e831d4a0c86 --- /dev/null +++ b/project-zomboid-server.tmpfiles @@ -0,0 +1,4 @@ +#Type Path Mode User Group Age Argument +d /opt/project-zomboid-server 0755 zomboid zomboid +# Zomboid Server needs to be able to write mods to the steamapps folder +d /opt/project-zomboid-server/steamapps 0755 zomboid zomboid |