Compare commits

..

2 commits

Author SHA1 Message Date
70b205cf8e Bump java version to 21 2025-04-01 22:08:15 +02:00
8ba3dca22d Bump alpine-version to 3.21 2025-04-01 21:43:11 +02:00
14 changed files with 9 additions and 69 deletions

View file

@ -1,5 +1,5 @@
FROM docker.io/alpine:3.19 FROM docker.io/alpine:3.21
RUN apk add openjdk17-jre rcon RUN apk add openjdk21-jre
RUN adduser -u 1000 -h /var/server -D execute RUN adduser -u 1000 -h /var/server -D execute
RUN mkdir -p /var/exec RUN mkdir -p /var/exec

15
pms-cli
View file

@ -8,7 +8,7 @@ readonly TEMPLATEDIR="${ROOTPATH}/.template"
readonly BUILDDIR="$(mktemp -d /tmp/pms-cli.XXXXXX)" readonly BUILDDIR="$(mktemp -d /tmp/pms-cli.XXXXXX)"
readonly CONFIG="/usr/local/noveria/etc/pms-cli/pms-cli.json" readonly CONFIG="/usr/local/noveria/etc/pms-cli/pms-cli.json"
for util in ${ROOTPATH}/utils/*.sh; do for util in ${ROOTPATH}/utils/*; do
source ${util} source ${util}
done done
@ -23,13 +23,12 @@ operations:
$(basename ${0}) {-v --verbose} $(basename ${0}) {-v --verbose}
$(basename ${0}) {--init} [servername] [network name] $(basename ${0}) {--init} [servername] [network name]
$(basename ${0}) {--datapack} [servername] [datapack dl url] $(basename ${0}) {--datapack} [servername] [datapack dl url]
$(basename ${0}) {--start} [servername] [port] [ip] $(basename ${0}) {--start} [servername] [port] (ip)
$(basename ${0}) {--stop} [servername] $(basename ${0}) {--stop} [servername]
$(basename ${0}) {--restart} [servername] [port] [ip] $(basename ${0}) {--restart} [servername] [port] (ip)
$(basename ${0}) {--attach} [servername] $(basename ${0}) {--attach} [servername]
$(basename ${0}) {--reset} [servername] $(basename ${0}) {--reset} [servername]
$(basename ${0}) {--delete} [servername] $(basename ${0}) {--delete} [servername]"
$(basename ${0}) {--server} [servername] [command]"
} }
function version() { function version() {
@ -45,7 +44,7 @@ the terms of the ${LICENSE}"
### ###
OPT_SHORT="hVv" OPT_SHORT="hVv"
OPT_LONG="help,version,verbose,init:,datapack:,start:,stop:,restart:,attach:,reset:,delete:,server:" OPT_LONG="help,version,verbose,init:,datapack:,start:,stop:,restart:,attach:,reset:,delete:"
TEMP=$(getopt -o ${OPT_SHORT} --long ${OPT_LONG} -n $(basename ${0}) -- "$@") TEMP=$(getopt -o ${OPT_SHORT} --long ${OPT_LONG} -n $(basename ${0}) -- "$@")
if [ "$?" != 0 ]; then if [ "$?" != 0 ]; then
@ -103,10 +102,6 @@ while true; do
stop "${1}" stop "${1}"
delete "${1}" delete "${1}"
;; ;;
--server)
shift
server "${1}" "${3}" "${4}"
;;
--) --)
shift shift
break break

View file

@ -1,18 +0,0 @@
#!/usr/bin/env bash
function help() {
echo -e "usage: $(basename ${0}) --server $1 <operation>
operations:
$(basename ${0}) --server $1 broadcast \"[message]\""
}
function restart_announcement() {
for count in {10..1}; do
broadcast "$1" "Server restarting in $count"
done
}
function broadcast() {
local dir="$(getValueByKey 'PODMAN_DIRECTORY')/${1}"
podman exec -it "$1" rcon -m -H 127.0.0.1 -p 25575 -P $(grep -E "^rcon.password" $dir/data/server.properties | cut -d= -f2) tellraw @a [{\"text\":\"[SYSTEM] \",\"color\":\"red\",\"bold\":true},{\"text\": \"$2\",\"color\":\"light_purple\",\"bold\":false}]
}

View file

@ -10,7 +10,6 @@ function init() {
local newdir="$(getValueByKey 'PODMAN_DIRECTORY')/${1}" local newdir="$(getValueByKey 'PODMAN_DIRECTORY')/${1}"
mkdir -p "${newdir}/data/world/datapacks" mkdir -p "${newdir}/data/world/datapacks"
echo -e "enable-rcon=true\nrcon.password=" > "${newdir}/data/server.properties"
populateConfig "${newdir}/config.json" "${2}" populateConfig "${newdir}/config.json" "${2}"
} }

View file

@ -93,13 +93,9 @@ function buildImage() {
## ##
function startContainer() { function startContainer() {
log d "Starting container '${1}'" log d "Starting container '${1}'"
readarray -t additional_ports <<< "$(getLocalConfValue $(getValueByKey 'PODMAN_DIRECTORY')/${1} 'additional_ports[]')"
local dir="$(getValueByKey 'PODMAN_DIRECTORY')/${1}"
sed -i "s/^rcon.password=.*/rcon.password=$(tr -cd '[:alnum:]' < /dev/urandom | fold -w12 | head -n1)/" $dir/data/server.properties
readarray -t additional_ports <<< "$(getLocalConfValue $dir 'additional_ports[]')"
[[ ${#additional_ports} -gt 0 ]] && log d "Starting with additional ports: ${additional_ports[@]}" [[ ${#additional_ports} -gt 0 ]] && log d "Starting with additional ports: ${additional_ports[@]}"
podman run --replace --name "${1}" --userns=keep-id:uid=1000 --rm -it -d --network "${5}" -p $([[ -n "${4}" ]] && echo ${4}:)${3}:25565 $([[ ${#additional_ports} -gt 0 ]] && for port in "${additional_ports[@]}"; do echo "-p $([[ -n ${4} ]] && echo ${4}:)${port}:${port}"; done) -v $dir/data:/var/server "${2}" java -Dcom.mojang.eula.agree=true -jar /var/exec/server.jar --nogui --port 25565 podman run --replace --name "${1}" --userns=keep-id:uid=1000 --rm -it -d --network "${5}" -p $([[ -n "${4}" ]] && echo ${4}:)${3}:25565 $([[ ${#additional_ports} -gt 0 ]] && for port in "${additional_ports[@]}"; do echo "-p $([[ -n ${4} ]] && echo ${4}:)${port}:${port}"; done) -v $(getValueByKey 'PODMAN_DIRECTORY')/${1}/data:/var/server "${2}" java -Dcom.mojang.eula.agree=true -jar /var/exec/server.jar --nogui --port 25565
[[ $? -eq 0 ]] && log s "Container '${1}' started!" [[ $? -eq 0 ]] && log s "Container '${1}' started!"
} }
@ -111,10 +107,6 @@ function startContainer() {
function stopContainer() { function stopContainer() {
log d "Stopping container '${1}'" log d "Stopping container '${1}'"
podman container stop --time 100 ${1} podman container stop --time 100 ${1}
local dir="$(getValueByKey 'PODMAN_DIRECTORY')/${1}"
sed -i "s/^rcon.password=.*/rcon.password=/" $dir/data/server.properties
log s "Container '${1}' stopped" log s "Container '${1}' stopped"
} }

View file

@ -1,28 +0,0 @@
#!/usr/bin/env bash
function server() {
for fn_server in ${ROOTPATH}/utils/fn_server/*.sh; do
source ${fn_server}
done
local server="$1"
if [[ "$2" != "" ]]; then
case "${2}" in
"help")
help "$server"
;;
"broadcast")
shift
broadcast "$server" "$2"
;;
"restart")
shift
restart_announcement "$server"
;;
*)
help "$server"
log e "Unknown subcommand: '$2'"
esac
fi
}