rebase on alpine-s6
continuous-integration/drone/push Build is passing Details

This commit is contained in:
Daniel Wolf 2021-08-24 15:07:50 -04:00
parent 29f13c163f
commit 4e991c662d
Signed by: nephatrine
GPG Key ID: 59D70EC2E4AAB4D0
101 changed files with 222 additions and 324 deletions

View File

@ -24,13 +24,18 @@ steps:
- name: notify
image: appleboy/drone-discord
settings:
avatar_url: https://files.nephatrine.net/Images/Buttons/Drone.png
message: "Automated build of **{{repo.name}}:{{commit.branch}}** has returned [{{build.status}}]({{build.link}})."
avatar_url: https://nephatrine.net/images/buttons/drone-ci.png
message: "Build of **[{{repo.name}}:{{commit.branch}}](<https://code.nephatrine.net/nephatrine/{{repo.name}}/src/branch/{{commit.branch}}>)** returned [{{build.status}}](<{{build.link}}>)."
username: DroneCI
webhook_id:
from_secret: webhook-id
from_secret: wh-quake2-id
webhook_token:
from_secret: webhook-token
from_secret: wh-quake2-tok
depends_on:
- default
- default
---
kind: signature
hmac: 682f4a4c0c5bec6e64d66a2b63a327f467d785821a1c6d4b58ff90019954c970
...

2
.gitignore vendored
View File

@ -1,2 +1,2 @@
fix-perms.sh
sign-build.sh
test-build.sh

View File

@ -1,57 +1,36 @@
FROM ubuntu:rolling
FROM nephatrine/alpine-s6:latest
LABEL maintainer="Daniel Wolf <nephatrine@gmail.com>"
ENV DEBIAN_FRONTEND=noninteractive
RUN echo "====== INSTALL PACKAGES ======" \
&& apt-get update -q \
&& apt-get -y -qq install apt-utils \
&& apt-get -y -q -o Dpkg::Options::="--force-confnew" install \
quake2-server yamagi-quake2-core \
wget \
&& apt-get clean \
&& rm -rf /tmp/* /var/lib/apt/lists/* /var/tmp/*
RUN echo "====== BUILD MODULES ======" \
&& rm -rf /usr/share/games/quake2/baseq2/* \
&& apt-get update -q \
&& apt-get -y -q -o Dpkg::Options::="--force-confnew" install cmake g++ git make \
&& cd /usr/src \
&& git clone https://github.com/yquake2/ctf.git && cd ctf \
&& mkdir build && cd build \
&& cmake -DCMAKE_BUILD_TYPE=Release .. && make \
&& mkdir -p /usr/lib/yamagi-quake2/ctf && cp Release/game.so /usr/lib/yamagi-quake2/ctf/ \
&& mkdir /usr/share/games/quake2/ctf \
&& cd /usr/src \
&& git clone https://github.com/yquake2/3zb2.git && cd 3zb2 \
&& grep -v g_turret.c CMakeLists.txt > CMakeLists2.txt && mv CMakeLists2.txt CMakeLists.txt \
&& mkdir build && cd build \
&& cmake -DCMAKE_BUILD_TYPE=Release .. && make \
&& mkdir /usr/lib/yamagi-quake2/3zb2 && cp Release/game.so /usr/lib/yamagi-quake2/3zb2/ \
&& mkdir /usr/share/games/quake2/3zb2 \
&& cd /usr/src \
&& git clone https://github.com/yquake2/xatrix.git && cd xatrix \
&& mkdir build && cd build \
&& cmake -DCMAKE_BUILD_TYPE=Release .. && make \
&& mkdir /usr/lib/yamagi-quake2/xatrix && cp Release/game.so /usr/lib/yamagi-quake2/xatrix/ \
&& mkdir /usr/share/games/quake2/xatrix \
&& cd /usr/src \
&& git clone https://github.com/yquake2/rogue.git && cd rogue \
&& mkdir build && cd build \
&& cmake -DCMAKE_BUILD_TYPE=Release .. && make \
&& mkdir /usr/lib/yamagi-quake2/rogue && cp Release/game.so /usr/lib/yamagi-quake2/rogue/ \
&& mkdir /usr/share/games/quake2/rogue \
&& cd /usr/src \
&& git clone https://github.com/yquake2/zaero.git && cd zaero \
&& mkdir build && cd build \
&& cmake -DCMAKE_BUILD_TYPE=Release .. && make \
&& mkdir /usr/lib/yamagi-quake2/zaero && cp Release/game.so /usr/lib/yamagi-quake2/zaero/ \
&& mkdir /usr/share/games/quake2/zaero \
&& apt-get -y -q purge cmake g++ git make \
&& apt-get -y -q autoremove \
&& cd /usr/src && rm -rf /tmp/* /usr/src/* /var/lib/apt/lists/* /var/tmp/*
RUN echo "====== COMPILE QUAKE II ======" \
&& apk add \
screen sdl2 \
&& apk add --virtual .build-quake2 build-base \
clang \
git \
linux-headers \
sdl2-dev \
&& git -C /usr/src clone --single-branch --depth=1 https://github.com/yquake2/yquake2.git && cd /usr/src/yquake2 \
&& make server game && mv release /opt/quake2 \
&& mkdir -p /opt/quake2/baseq2/maps && cp stuff/mapfixes/baseq2/*.ent /opt/quake2/baseq2/maps/ \
&& mkdir -p /opt/quake2/jugfull/maps && cp stuff/mapfixes/juggernaut/*.ent /opt/quake2/jugfull/maps/ \
&& cp stuff/yq2.cfg /opt/quake2/baseq2 \
&& git -C /usr/src clone --single-branch --depth=1 https://github.com/yquake2/ctf.git && cd /usr/src/ctf \
&& make && mv release /opt/quake2/ctf \
&& git -C /usr/src clone --single-branch --depth=1 https://github.com/yquake2/xatrix.git && cd /usr/src/xatrix \
&& make && mv release /opt/quake2/xatrix \
&& mkdir -p /opt/quake2/xatrix/maps && cp stuff/mapfixes/*.ent /opt/quake2/xatrix/maps/ \
&& git -C /usr/src clone --single-branch --depth=1 https://github.com/yquake2/rogue.git && cd /usr/src/rogue \
&& make && mv release /opt/quake2/rogue \
&& mkdir -p /opt/quake2/rogue/maps && cp stuff/mapfixes/*.ent /opt/quake2/rogue/maps/ \
&& git -C /usr/src clone --single-branch --depth=1 https://github.com/yquake2/zaero.git && cd /usr/src/zaero \
&& make && mv release /opt/quake2/zaero \
&& mkdir -p /opt/quake2/zaero/maps && cp stuff/mapfixes/*.ent /opt/quake2/zaero/maps/ \
&& git -C /usr/src clone --single-branch --depth=1 https://github.com/yquake2/slightmechanicaldestruction.git && cd /usr/src/slightmechanicaldestruction \
&& make && mv release /opt/quake2/smd \
&& git -C /usr/src clone --single-branch --depth=1 https://github.com/yquake2/pakextract.git && cd /usr/src/pakextract \
&& make && mv pakextract /usr/local/bin/ \
&& cd /usr/src && rm -rf /usr/src/* \
&& apk del --purge .build-quake2 && rm -rf /var/cache/apk/*
COPY override /
USER quake2-server
EXPOSE 27910/udp
ENTRYPOINT ["/usr/share/games/quake2/quake2-server"]
CMD ["+exec", "server.cfg"]

View File

@ -1,4 +1,4 @@
Copyright © 2019 Daniel Wolf <<nephatrine@gmail.com>>
Copyright © 2021 Daniel Wolf <<nephatrine@gmail.com>>
**Permission to use, copy, modify, and distribute this software for any
purpose with or without fee is hereby granted, provided that the above
@ -10,4 +10,4 @@ MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

View File

@ -1,19 +1,20 @@
[Git](https://code.nephatrine.net/nephatrine/docker-quake2) |
[Git](https://code.nephatrine.net/nephatrine/docker-quake2/src/branch/master) |
[Docker](https://hub.docker.com/r/nephatrine/quake2-server/) |
[unRAID](https://code.nephatrine.net/nephatrine/unraid-containers)
[![Build Status](https://ci.nephatrine.net/api/badges/nephatrine/docker-quake2/status.svg?ref=refs/heads/master)](https://ci.nephatrine.net/nephatrine/docker-quake2)
# Docker Registry
# Quake II Server
This docker image contains a Docker Registry server to self-host your own
docker registry.
This docker image contains a Quake II dedicated server.
**YOU WILL NEED TO USE A SEPARATE REVERSE PROXY SERVER TO SECURE THIS SERVICE.
SEE THE [DOCUMENTATION](https://docs.docker.com/registry/recipes/nginx/) FOR
MORE DETAILS ON HOW TO CONFIGURE SUCH A PROXY.**
FOR INSTANCE, AN [NGINX](https://nginx.com/) REVERSE PROXY CONTAINER.**
- [Docker Registry](https://docs.docker.com/registry/)
- [Alpine Linux](https://alpinelinux.org/)
- [Skarnet Software](https://skarnet.org/software/)
- [S6 Overlay](https://github.com/just-containers/s6-overlay)
- [Yamagi Quake II](https://yamagi.org/quake2/)
You can spin up a quick temporary test container like this:
@ -21,6 +22,18 @@ You can spin up a quick temporary test container like this:
docker run --rm -p 27910:27910 -it nephatrine/quake2-server:latest /bin/bash
~~~
## Configuration Variables
You can set these parameters using the syntax ``-e "VARNAME=VALUE"`` on your
``docker run`` command. Some of these may only be used during initial
configuration and further changes may need to be made in the generated
configuration files.
- ``GAME_START``: Startup Arguments (*"+exec server.cfg"*)
- ``PUID``: Mount Owner UID (*1000*)
- ``PGID``: Mount Owner GID (*100*)
- ``TZ``: System Timezone (*America/New_York*)
## Persistent Mounts
You can provide a persistent mountpoint using the ``-v /host/path:/container/path``
@ -28,18 +41,22 @@ syntax. These mountpoints are intended to house important configuration files,
logs, and application state (e.g. databases) so they are not lost on image
update.
- ``/usr/share/games/quake2/baseq2``: Quake II Game Data.
- ``/usr/share/games/quake2/ctf``: CTF Game Data.
- ``/usr/share/games/quake2/xatrix``: The Reckoning Game Data.
- ``/usr/share/games/quake2/rogue``: Ground Zero Game Data.
- ``/usr/share/games/quake2/zaero``: Zaero Game Data.
- ``/usr/share/games/quake2/3zb2``: 3rd Zigock Bot Game Data.
- ``/mnt/config``: Persistent Data.
There is no game data included in the image - not even the shareware demo.
Please populate this yourself with a legal copy of Quake II.
Do not share ``/mnt/config`` volumes between multiple containers as they may
interfere with the operation of one another.
On startup, the game will execute the ``server.cfg`` found in the ``baseq2``
folder and so you can configure settings there.
You can perform some basic configuration of the container using the files and
directories listed below.
- ``/mnt/config/data/quake2/``: Game Data. [*]
- ``/mnt/config/data/quake2/baseq2/server.cfg``: Default Quake II Configuration. [*]
- ``/mnt/config/etc/crontabs/<user>``: User Crontabs. [*]
- ``/mnt/config/etc/logrotate.conf``: Logrotate Global Configuration.
- ``/mnt/config/etc/logrotate.d/``: Logrotate Additional Configuration.
**[*] Changes to some configuration files may require service restart to take
immediate effect.**
## Network Services

View File

@ -1,229 +0,0 @@
[MessDeathMatch] V printable limit
<*>**************************<*>
* 3rd-Zigock II 0.97 *
* Quake2 Multiplayer *
* Deathmatch Simulator *
<*>**************************<*>
.
[MessChainDM]
3rd-Zigock II 0.96
Chaining mode
.
[MessCTF]
<*>**************************<*>
* 3rd-Zigock II 0.97 *
* Quake2 Multiplayer *
* Capture The Flag Simulator *
<*>**************************<*>
.
[MessChainCTF]
3rd-Zigock II 0.96
CTF Chaining mode
.
[BotList]
#Format is
#
#\\Netname \Model \Skin \Params0-8 \team \ASpawn
#
#Params
#0 walking flag (0 - 1) 1-walk 0-always run
#1 aiming skill level (0 - 9) high-hard aiming
#2 frq. of pickup items (0 - 9) high-mania
#3 character type (0 - 9) high-offensive low-defensive
#4 combat skill (0 - 9) high-professional
#5 rocket jump flag (0 - 1) 1-on 0-off
#6 reaction skill (0 - 9) high-high reaction skill
#7 vertical view range (10 - 180) degree(abs)
#8 horizontal view range (10 - 180) degree(abs)
#9 primary weapon (0 - 13) 0-none
#10 secondary weapon (0 - 13) 0-none
#1 Blaster - 2 ShotGun - 3 SuperShotgun - 4 MachineGun - 5 ChainGun - 6 Hand Grenade
#7 Grenade Launcher - 8 Rocket Launcher - 9 Hyper Blaster - 10 Rail Gun - 11 BFG10K
#12 Plasma Gun - 13 Ion Ripper
#11 dodge(depend on combat skill) (0 - 1) 1-On 0-Off
#12 estimate(need to activate param 13) (0 - 1) 1-On 0-Off
#13 enemy's noise check (0 - 1) 1-On 0-Off
#14 can't see through water (0 - 1) 1-On 0-Off
#15 teamworking
#.......................................#0#1#2#3#4#5#6 #7 #8 #9 #10 #11#12#13#14#15
# Description botlist name
# #------------------------#-------------------#
# | Default Free For All | default |
# | Dueling bots | 1v1sk1 to 1v1sk10 |
# | 1human + 1bot v 2bots | 2v2sk1 to 2v2sk10 |
# | 1human + 3bots v 3bots | 4v4sk1 to 4v4sk10 |
# #------------------------#-------------------#
#
#
#Default Bots
\\Evil Zeep \cyborg \ps9000 \0\7\5\5\9\1\9 \090\090\08\05 \1\1\1\1\0 \R\0
\\Claw Finger \male \psycho \0\7\5\5\4\1\9 \090\090\0\0 \1\1\1\1\0 \B\0
\\Biohazard \crakhor\crakhorb \0\4\5\5\8\0\9 \045\090\10\0 \1\1\1\1\0 \R\0
\\Carcass \male \cipher \0\6\6\5\5\0\5 \045\090\0\0 \1\1\1\1\0 \B\0
\\Prong \male \psycho \0\8\7\6\8\1\7 \090\090\10\05 \0\1\1\1\0 \R\0
\\Sodom \cyborg \oni911 \0\9\8\5\5\1\7 \090\090\0\0 \0\0\1\1\0 \B\0
\\Korn \female \cobalt \0\5\6\5\7\1\8 \090\090\08\08 \0\0\0\1\0 \R\0
\\Sepultura \male \flak \1\6\5\5\9\1\5 \090\090\05\05 \0\0\0\0\0 \B\0
\\Soul fly \female \brianna \0\9\5\5\0\0\5 \090\090\11\08 \0\0\0\0\0 \R\0
\\Flotsam&Jetsam\cyborg \ps9000 \0\9\5\5\0\0\5 \090\090\11\08 \0\0\0\0\0 \B\0
\\Overkill \male \claymore \0\4\5\5\0\0\5 \090\180\11\08 \0\0\0\0\0 \R\0
\\Urge \female \lotus \0\0\5\5\0\0\5 \090\180\11\08 \0\0\0\0\0 \B\0
\\Napalm Death \cyborg \tyr574 \0\1\5\5\0\0\5 \090\180\11\08 \0\0\0\0\0 \R\0
\\Cathedral \male \howitzer \0\1\5\5\0\0\5 \090\180\11\08 \0\0\0\0\0 \B\0
\\Entombed \female \ensign \0\1\5\5\0\0\5 \090\180\11\08 \0\0\0\0\0 \R\0
\\Helmet \male \rampage \0\1\5\5\0\0\5 \090\180\11\08 \0\0\0\0\0 \B\0
\\Brutal Truth \male \recon \0\1\5\5\0\0\5 \090\180\11\08 \0\0\0\0\0 \R\0
\\Ultra head \female \jungle \0\1\5\5\0\0\5 \090\180\11\08 \0\0\0\0\0 \R\0
\\Exodus \male \viper \0\1\5\5\0\0\5 \090\180\11\08 \0\0\0\0\0 \B\0
# Dueling Bots Skill 1-10
[1v1sk1]
\\Prong \cyborg \oni911 \1\2\3\1\3\0\3 \060\060\0\0 \0\0\0\1\0 \R\1
[1v1sk2]
\\Prong \cyborg \oni911 \0\3\3\2\4\0\3 \065\065\03\0 \0\0\1\1\2 \R\1
[1v1sk3]
\\Prong \cyborg \oni911 \0\3\3\2\6\0\5 \075\075\08\0 \1\0\1\1\4 \R\1
[1v1sk4]
\\Prong \cyborg \oni911 \0\5\4\4\7\1\5 \075\075\08\05 \1\0\1\1\5 \R\1
[1v1sk5]
\\Prong \cyborg \oni911 \0\7\4\5\8\1\6 \080\080\08\05 \1\0\1\1\8 \R\1
[1v1sk6]
\\Prong \cyborg \oni911 \0\8\4\6\9\1\7 \090\090\05\05 \1\1\1\1\8 \R\1
[1v1sk7]
\\Prong \cyborg \oni911 \0\8\4\8\9\1\7 \100\095\10\05 \1\1\1\1\9 \R\1
[1v1sk8]
\\Prong \cyborg \oni911 \0\9\6\8\9\1\7 \105\105\10\05 \1\1\1\1\9 \R\1
[1v1sk9]
\\Prong \cyborg \oni911 \0\9\6\8\9\1\7 \110\110\10\05 \1\1\1\1\9 \R\1
[1v1sk10]
\\Prong \cyborg \oni911 \0\9\6\8\9\1\8 \115\115\10\05 \1\1\1\1\9 \R\1
# 2v2 (1Human+1Bot v's 2Bots) Skill 1-10
[2v2sk1]
\\Evil Zeep \male \claymore \1\2\3\1\3\0\3 \060\060\0\0 \0\0\0\1\0 \R\1
\\Prong \cyborg \oni911 \1\2\3\1\3\0\3 \060\060\0\0 \0\0\0\1\0 \R\1
\\Sodom \cyborg \oni911 \1\2\3\2\2\0\3 \060\060\0\0 \0\0\0\1\0 \R\1
[2v2sk2]
\\Evil Zeep \male \claymore \0\3\3\2\4\0\3 \065\065\08\0 \0\0\1\1\2 \R\1
\\Prong \cyborg \oni911 \0\3\3\2\4\0\3 \065\065\08\0 \0\0\1\1\2 \R\1
\\Sodom \cyborg \oni911 \0\3\3\3\2\0\4 \065\065\05\0 \0\0\0\1\2 \R\1
[2v2sk3]
\\Evil Zeep \male \claymore \0\3\3\2\6\0\4 \075\075\08\0 \1\0\1\1\4 \R\1
\\Prong \cyborg \oni911 \0\3\3\2\6\0\5 \075\075\08\0 \1\0\1\1\4 \R\1
\\Sodom \cyborg \oni911 \0\3\3\3\5\0\4 \070\070\05\0 \1\1\1\1\4 \R\1
[2v2sk4]
\\Evil Zeep \male \claymore \0\5\4\4\7\1\4 \075\075\08\05 \1\0\1\1\5 \R\1
\\Prong \cyborg \oni911 \0\5\4\4\7\1\5 \075\075\08\05 \1\0\1\1\5 \R\1
\\Sodom \cyborg \oni911 \0\4\3\3\5\0\4 \075\075\08\0 \1\1\1\1\5 \R\1
[2v2sk5]
\\Evil Zeep \male \claymore \0\7\4\5\8\1\5 \080\080\08\05 \1\0\1\1\8 \R\1
\\Prong \cyborg \oni911 \0\7\4\5\8\1\6 \080\080\08\05 \1\0\1\1\8 \R\1
\\Sodom \cyborg \oni911 \0\5\3\4\6\0\5 \080\080\08\0 \1\1\1\1\6 \R\1
[2v2sk6]
\\Evil Zeep \male \claymore \0\8\4\6\9\1\7 \090\090\05\05 \1\1\1\1\8 \R\1
\\Prong \cyborg \oni911 \0\8\4\6\9\1\7 \090\090\05\05 \1\1\1\1\8 \R\1
\\Sodom \cyborg \oni911 \0\6\3\5\8\1\8 \090\080\08\0 \1\1\1\1\7 \R\1
[2v2sk7]
\\Evil Zeep \male \claymore \0\8\4\8\9\1\7 \100\090\10\05 \1\1\1\1\9 \R\1
\\Prong \cyborg \oni911 \0\8\4\8\9\1\7 \100\095\10\05 \1\1\1\1\9 \R\1
\\Sodom \cyborg \oni911 \0\6\3\6\8\1\8 \095\090\08\05 \1\1\1\1\8 \R\1
[2v2sk8]
\\Evil Zeep \male \claymore \0\8\6\8\9\1\7 \105\105\10\05 \1\1\1\1\9 \R\1
\\Prong \cyborg \oni911 \0\8\6\8\9\1\7 \105\105\10\05 \1\1\1\1\9 \R\1
\\Sodom \cyborg \oni911 \0\7\5\6\8\1\8 \105\100\08\05 \1\1\1\1\8 \R\1
[2v2sk9]
\\Evil Zeep \male \claymore \0\8\6\8\9\1\7 \110\105\10\05 \1\1\1\1\9 \R\1
\\Prong \cyborg \oni911 \0\8\6\8\9\1\7 \110\105\10\05 \1\1\1\1\9 \R\1
\\Sodom \cyborg \oni911 \0\7\5\6\8\1\8 \105\105\08\05 \1\1\1\1\8 \R\1
[2v2sk10]
\\Evil Zeep \male \claymore \0\8\6\8\9\1\7 \110\110\10\05 \1\1\1\1\9 \R\1
\\Prong \cyborg \oni911 \0\8\6\8\9\1\7 \110\110\10\05 \1\1\1\1\9 \R\1
\\Sodom \cyborg \oni911 \0\7\5\6\8\1\8 \110\110\08\05 \1\1\1\1\8 \R\1
# 4v4 (1Human+3Bots v's 4Bots) Skill 1-10
[4v4sk1]
\\Evil Zeep \male \claymore \1\2\3\1\3\0\3 \060\060\0\0 \0\0\0\1\0 \R\1
\\Claw Finger \male \claymore \1\2\3\2\2\0\3 \060\060\0\0 \0\0\0\1\0 \R\1
\\Biohazard \male \claymore \1\1\4\3\1\1\3 \060\060\0\0 \0\0\0\1\0 \R\1
\\Prong \cyborg \oni911 \1\2\3\1\3\0\3 \060\060\0\0 \0\0\0\1\0 \R\1
\\Sodom \cyborg \oni911 \1\2\3\2\2\0\3 \060\060\0\0 \0\0\0\1\0 \R\1
\\Korn \cyborg \oni911 \1\1\4\3\1\1\3 \060\060\0\0 \0\0\0\1\0 \R\1
\\Sepultura \cyborg \oni911 \1\2\3\2\2\0\3 \060\060\0\0 \0\0\0\1\0 \R\1
[4v4sk2]
\\Evil Zeep \male \claymore \0\3\3\2\4\0\3 \065\065\08\0 \0\0\1\1\2 \R\1
\\Claw Finger \male \claymore \0\3\3\3\2\0\4 \065\065\05\0 \0\0\0\1\2 \R\1
\\Biohazard \male \claymore \1\2\4\4\1\1\3 \065\065\03\0 \0\0\0\1\0 \R\1
\\Prong \cyborg \oni911 \0\3\3\2\4\0\3 \065\065\08\0 \0\0\1\1\2 \R\1
\\Sodom \cyborg \oni911 \0\3\3\3\2\0\4 \065\065\05\0 \0\0\0\1\2 \R\1
\\Korn \cyborg \oni911 \0\2\4\4\1\1\3 \065\065\03\0 \0\0\1\1\0 \R\1
\\Sepultura \cyborg \oni911 \1\3\3\3\2\0\4 \065\065\0\0 \0\0\0\1\0 \R\1
[4v4sk3]
\\Evil Zeep \male \claymore \0\3\3\2\6\0\4 \075\075\08\0 \1\0\1\1\4 \R\1
\\Claw Finger \male \claymore \0\3\3\3\5\0\5 \070\070\05\0 \1\1\1\1\4 \R\1
\\Biohazard \male \claymore \1\2\4\4\4\1\4 \070\070\03\0 \0\0\0\1\2 \R\1
\\Prong \cyborg \oni911 \0\3\3\2\6\0\5 \075\075\08\0 \1\0\1\1\4 \R\1
\\Sodom \cyborg \oni911 \0\3\3\3\5\0\4 \070\070\05\0 \1\1\1\1\4 \R\1
\\Korn \cyborg \oni911 \0\2\4\4\4\1\5 \070\070\03\0 \0\0\1\1\2 \R\1
\\Sepultura \cyborg \oni911 \1\3\3\3\3\0\4 \070\070\0\0 \0\0\0\1\0 \R\1
[4v4sk4]
\\Evil Zeep \male \claymore \0\5\4\4\7\1\4 \075\075\08\05 \1\0\1\1\5 \R\1
\\Claw Finger \male \claymore \0\4\3\3\5\0\5 \075\075\08\0 \1\1\1\1\5 \R\1
\\Biohazard \male \claymore \0\3\4\5\4\1\4 \075\075\05\0 \0\0\1\1\3 \R\1
\\Prong \cyborg \oni911 \0\5\4\4\7\1\5 \075\075\08\05 \1\0\1\1\5 \R\1
\\Sodom \cyborg \oni911 \0\4\3\3\5\0\4 \075\075\08\0 \1\1\1\1\5 \R\1
\\Korn \cyborg \oni911 \0\3\4\5\4\1\5 \075\075\05\0 \0\0\1\1\3 \R\1
\\Sepultura \cyborg \oni911 \0\3\3\3\3\0\4 \075\075\0\0 \0\0\1\1\2 \R\1
[4v4sk5]
\\Evil Zeep \male \claymore \0\7\4\5\8\1\5 \080\080\05\05 \1\0\1\1\8 \R\1
\\Claw Finger \male \claymore \0\5\3\4\6\0\6 \080\080\08\0 \1\1\1\1\6 \R\1
\\Biohazard \male \claymore \0\4\4\6\4\1\5 \080\075\05\05 \0\1\1\1\5 \R\1
\\Prong \cyborg \oni911 \0\7\4\5\8\1\6 \080\080\05\05 \1\0\1\1\8 \R\1
\\Sodom \cyborg \oni911 \0\5\3\4\6\0\5 \080\080\08\0 \1\1\1\1\6 \R\1
\\Korn \cyborg \oni911 \0\4\4\6\4\1\6 \080\075\05\05 \0\0\1\1\5 \R\1
\\Sepultura \cyborg \oni911 \0\4\3\4\3\0\5 \075\075\0\0 \1\1\1\1\3 \R\1
[4v4sk6]
\\Evil Zeep \male \claymore \0\8\4\6\9\1\7 \090\090\05\05 \1\1\1\1\8 \R\1
\\Claw Finger \male \claymore \0\6\3\5\8\1\8 \090\080\08\05 \1\1\1\1\7 \R\1
\\Biohazard \male \claymore \0\5\4\7\7\1\5 \080\075\05\05 \1\1\1\1\5 \R\1
\\Prong \cyborg \oni911 \0\8\4\6\9\1\7 \090\090\05\05 \1\1\1\1\8 \R\1
\\Sodom \cyborg \oni911 \0\6\3\5\8\1\8 \090\080\08\05 \1\1\1\1\7 \R\1
\\Korn \cyborg \oni911 \0\5\4\7\7\1\6 \085\085\05\05 \1\1\1\1\5 \R\1
\\Sepultura \cyborg \oni911 \0\5\3\5\6\1\5 \085\085\0\0 \1\1\1\1\4 \R\1
[4v4sk7]
\\Evil Zeep \male \claymore \0\8\4\8\9\1\7 \100\090\10\05 \1\1\1\1\9 \R\1
\\Claw Finger \male \claymore \0\6\3\6\8\1\8 \095\095\08\05 \1\1\1\1\8 \R\1
\\Biohazard \male \claymore \0\5\4\8\7\1\5 \095\085\05\05 \1\1\1\1\6 \R\1
\\Prong \cyborg \oni911 \0\8\4\8\9\1\7 \100\095\10\05 \1\1\1\1\9 \R\1
\\Sodom \cyborg \oni911 \0\6\3\6\8\1\8 \095\090\08\05 \1\1\1\1\8 \R\1
\\Korn \cyborg \oni911 \0\5\4\8\7\1\6 \095\085\05\05 \1\1\1\1\6 \R\1
\\Sepultura \cyborg \oni911 \0\5\3\6\6\1\5 \095\085\0\0 \1\1\1\1\5 \R\1
[4v4sk8]
\\Evil Zeep \male \claymore \0\9\6\8\9\1\7 \105\105\10\05 \1\1\1\1\9 \R\1
\\Claw Finger \male \claymore \0\7\5\6\8\1\8 \105\100\08\05 \1\1\1\1\8 \R\1
\\Biohazard \male \claymore \0\6\5\8\7\1\5 \095\095\05\05 \1\1\1\1\6 \R\1
\\Prong \cyborg \oni911 \0\9\6\8\9\1\7 \105\105\10\05 \1\1\1\1\9 \R\1
\\Sodom \cyborg \oni911 \0\7\5\6\8\1\8 \105\100\08\05 \1\1\1\1\8 \R\1
\\Korn \cyborg \oni911 \0\6\6\8\7\1\6 \100\095\05\05 \1\1\1\1\6 \R\1
\\Sepultura \cyborg \oni911 \0\5\5\6\6\1\5 \095\085\0\0 \1\1\1\1\5 \R\1
[4v4sk9]
\\Evil Zeep \male \claymore \0\9\6\8\9\1\7 \105\105\10\05 \1\1\1\1\9 \R\1
\\Claw Finger \male \claymore \0\7\5\6\8\1\8 \105\105\08\05 \1\1\1\1\8 \R\1
\\Biohazard \male \claymore \0\6\5\8\7\1\5 \100\095\05\05 \1\1\1\1\7 \R\1
\\Prong \cyborg \oni911 \0\9\6\8\9\1\7 \105\105\10\05 \1\1\1\1\9 \R\1
\\Sodom \cyborg \oni911 \0\7\5\6\8\1\8 \105\105\08\05 \1\1\1\1\8 \R\1
\\Korn \cyborg \oni911 \0\6\6\8\7\1\6 \100\095\05\05 \1\1\1\1\7 \R\1
\\Sepultura \cyborg \oni911 \0\5\5\6\6\1\5 \095\085\0\0 \1\1\1\1\5 \R\1
[4v4sk10]
\\Evil Zeep \male \claymore \0\9\6\8\9\1\7 \110\105\10\05 \1\1\1\1\9 \R\1
\\Claw Finger \male \claymore \0\8\5\6\8\1\8 \110\105\08\05 \1\1\1\1\9 \R\1
\\Biohazard \male \claymore \0\7\5\8\7\1\5 \105\100\05\05 \1\1\1\1\8 \R\1
\\Prong \cyborg \oni911 \0\9\6\8\9\1\7 \110\105\10\05 \1\1\1\1\9 \R\1
\\Sodom \cyborg \oni911 \0\8\5\6\8\1\8 \110\105\08\05 \1\1\1\1\9 \R\1
\\Korn \cyborg \oni911 \0\7\6\8\7\1\6 \105\100\05\05 \1\1\1\1\8 \R\1
\\Sepultura \cyborg \oni911 \0\6\5\6\6\1\5 \095\095\0\0 \1\1\1\1\6 \R\1

View File

@ -1,18 +0,0 @@
[base]
base1 "Outer Base"
base2 "Installation"
base3 "Comm Center"
[q2dmx]
q2dm1 "The Edge"
q2dm2 "Tokay's Towers"
q2dm3 "The Frag Pipe"
q2dm4 "Lost Hallways"
q2dm5 "The Pits"
q2dm6 "Lava Tomb"
q2dm7 "The Slimy Place"
q2dm8 "WareHouse"
[ware]
ware1 "Supply Station"
ware2 "Warehouse"

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,12 @@
#!/usr/bin/with-contenv bash
if pgrep -f quakedock >/dev/null; then
s6-setuidgid guardian screen -S quakedock -X stuff "`echo -ne \"say QUAKE II SERVER SHUTTING DOWN!\r\"`"
s6-setuidgid guardian screen -S quakedock -X stuff "`echo -ne \"say 3\r\"`"
sleep 2
s6-setuidgid guardian screen -S quakedock -X stuff "`echo -ne \"say 2\r\"`"
sleep 2
s6-setuidgid guardian screen -S quakedock -X stuff "`echo -ne \"say 1\r\"`"
sleep 2
s6-setuidgid guardian screen -S quakedock -X stuff "`echo -ne \"quit\r\"`"
sleep 2
fi

View File

@ -0,0 +1,94 @@
#!/usr/bin/with-contenv bash
if [[ ! -d /mnt/config/data/quake2/baseq2 ]]; then
s6-setuidgid guardian mkdir -p /mnt/config/data/quake2/baseq2/maps
s6-setuidgid guardian cp -n /opt/quake2/baseq2/*.cfg /mnt/config/data/quake2/baseq2/
cd /usr/src
if [[ ! -e /tmp/q2-314-demo-x86.exe ]]; then
wget -qO /tmp/q2-314-demo-x86.exe https://files.nephatrine.net/Q2/idstuff/q2-314-demo-x86.exe
fi
if [[ ! -e /tmp/q2-3.20-x86-full-ctf.exe ]]; then
wget -qO /tmp/q2-3.20-x86-full-ctf.exe https://files.nephatrine.net/Q2/idstuff/q2-3.20-x86-full-ctf.exe
fi
if [[ ! -e /tmp/match1.tar.gz ]]; then
wget -qO /tmp/match1.tar.gz https://files.nephatrine.net/Q2/idstuff/match1.tar.gz
fi
if [[ ! -e /tmp/dm_64.tar.gz ]]; then
wget -qO /tmp/dm_64.tar.gz https://files.nephatrine.net/Q2/idstuff/dm_64.tar.gz
fi
unzip -jq -d /mnt/config/data/quake2/baseq2/ /tmp/q2-314-demo-x86.exe \
Install/Data/baseq2/pak0.pak \
Install/Data/DOCS/license.txt
unzip -jq -d /mnt/config/data/quake2/baseq2/ /tmp/q2-3.20-x86-full-ctf.exe \
baseq2/maps.lst \
baseq2/pak1.pak \
baseq2/pak2.pak
tar x -C /mnt/config/data/quake2/baseq2/ -zf /tmp/match1.tar.gz \
pak3.pak
tar x -C /mnt/config/data/quake2/baseq2/maps/ -zf /tmp/dm_64.tar.gz \
base64.bsp \
city64.bsp \
sewer64.bsp
fi
if [[ ! -d /mnt/config/data/quake2/ctf ]]; then
s6-setuidgid guardian mkdir -p /mnt/config/data/quake2/ctf/maps
cd /usr/src
if [[ ! -e /tmp/q2-3.20-x86-full-ctf.exe ]]; then
wget -qO /tmp/q2-3.20-x86-full-ctf.exe https://files.nephatrine.net/Q2/idstuff/q2-3.20-x86-full-ctf.exe
fi
if [[ ! -e /tmp/q2ctf150upgrade.zip ]]; then
wget -qO /tmp/q2ctf150upgrade.zip https://files.nephatrine.net/Q2/q2ctf/q2ctf150upgrade.zip
fi
if [[ ! -e /tmp/q2ctf4a.tar.gz ]]; then
wget -qO /tmp/q2ctf4a.tar.gz https://files.nephatrine.net/Q2/q2ctf/q2ctf4a.tar.gz
fi
unzip -jq -d /mnt/config/data/quake2/ctf/ /tmp/q2-3.20-x86-full-ctf.exe \
ctf/pak0.pak \
ctf/server.cfg
unzip -jq -d /mnt/config/data/quake2/ctf/ /tmp/q2ctf150upgrade.zip \
pak1.pak
tar x -C /mnt/config/data/quake2/ctf/maps/ -zf /tmp/q2ctf4a.tar.gz \
q2ctf4a.bsp
fi
if [[ -d /mnt/config/data/quake2/baseq2 ]]; then
if [[ ! -d /mnt/config/data/quake2/baseq2/maps ]]; then
s6-setuidgid guardian mkdir -p /mnt/config/data/quake2/baseq2/maps
fi
s6-setuidgid guardian cp -n /opt/quake2/baseq2/maps/*.ent /mnt/config/data/quake2/baseq2/maps/
fi
if [[ -d /mnt/config/data/quake2/jugfull ]]; then
if [[ ! -d /mnt/config/data/quake2/jugfull/maps ]]; then
s6-setuidgid guardian mkdir -p /mnt/config/data/quake2/jugfull/maps
fi
s6-setuidgid guardian cp -n /opt/quake2/jugfull/maps/*.ent /mnt/config/data/quake2/jugfull/maps/
fi
if [[ -d /mnt/config/data/quake2/xatrix ]]; then
if [[ ! -d /mnt/config/data/quake2/xatrix/maps ]]; then
s6-setuidgid guardian mkdir -p /mnt/config/data/quake2/xatrix/maps
fi
s6-setuidgid guardian cp -n /opt/quake2/xatrix/maps/*.ent /mnt/config/data/quake2/xatrix/maps/
fi
if [[ -d /mnt/config/data/quake2/rogue ]]; then
if [[ ! -d /mnt/config/data/quake2/rogue/maps ]]; then
s6-setuidgid guardian mkdir -p /mnt/config/data/quake2/rogue/maps
fi
s6-setuidgid guardian cp -n /opt/quake2/rogue/maps/*.ent /mnt/config/data/quake2/rogue/maps/
fi
if [[ -d /mnt/config/data/quake2/zaero ]]; then
if [[ ! -d /mnt/config/data/quake2/zaero/maps ]]; then
s6-setuidgid guardian mkdir -p /mnt/config/data/quake2/zaero/maps
fi
s6-setuidgid guardian cp -n /opt/quake2/zaero/maps/*.ent /mnt/config/data/quake2/zaero/maps/
fi
GAME_LIBS=`find /mnt/config/data/quake2 -type f -name game.so | wc -l`
if [[ ${GAME_LIBS} -gt 0 ]]; then
cd /mnt/config/data/quake2
cp --parents -R */game.so /opt/quake2/
fi

View File

@ -0,0 +1 @@
/mnt/config/data/quake2 true guardian:users,1000:100 0644 0755

View File

@ -0,0 +1,12 @@
#!/usr/bin/with-contenv bash
GAME_START=${GAME_START:-"+exec server.cfg"}
if ! pgrep -f quakedock >/dev/null; then
cd /opt/quake2
HOME=/mnt/config/home s6-setuidgid guardian screen -dmS quakedock ./q2ded -datadir /mnt/config/data/quake2 ${GAME_START};
fi
sleep 10
while pgrep -f quakedock >/dev/null; do
sleep 30
done

Some files were not shown because too many files have changed in this diff Show More