first changes to docker

This commit is contained in:
jt-chris
2026-04-10 02:25:36 +02:00
parent 1c94d0d810
commit 615cf26bdd
114 changed files with 65043 additions and 0 deletions

149
QPKG/shared/RoonServer.sh Executable file
View File

@@ -0,0 +1,149 @@
#!/bin/sh
CONF=/etc/config/qpkg.conf
QPKG_NAME="RoonServer"
QPKG_ROOT=`/sbin/getcfg $QPKG_NAME Install_Path -f ${CONF}`
QCS_NAME="container-station"
QCS_QPKG_DIR=$(/sbin/getcfg $QCS_NAME Install_Path -f $CONF)
DOCKER_CMD=$QCS_QPKG_DIR/bin/system-docker
CONT_NAME="qnap-roonserver"
WEB_PATH="/home/httpd"
WEBUI=$(/sbin/getcfg $QPKG_NAME webUI -f ${CONF});
ROONONNAS_DIR=`/sbin/getcfg $QPKG_NAME DB_Path -f /etc/config/qpkg.conf`
ROON_DATAROOT="${ROONONNAS_DIR}/RoonOnNAS"
ROON_TMP_DIR="${QPKG_ROOT}/tmp"
ROON_ID_DIR="${QPKG_ROOT}/id"
QNAP_QTS_VER=$(/sbin/getcfg system version)
QNAP_QTS_BUILD=$(/sbin/getcfg system 'Build Number')
QNAP_MEMTOTAL=`awk '/MemTotal/ {print $2}' /proc/meminfo`
QNAP_MEMFREE=`awk '/MemFree/ {print $2}' /proc/meminfo`
QPKG_VERSION=`/sbin/getcfg $QPKG_NAME Version -f ${CONF}`
MAJOR_QTS_VER=`echo "$QNAP_QTS_VER" | tr -d '.' | cut -c1-2`
ARCH=$(uname -m)
QNAP_MODEL=`/sbin/getsysinfo model`
QNAP_SERIAL=`/sbin/get_hwsn`
ROON_DATABASE_DIR_FS=`df -PThi "${ROON_DATAROOT}" | awk '{print $2}' | tail -1`
ROON_DATABASE_DIR_FREE_INODES=`df -PThi "${ROON_DATAROOT}" | awk '{print $5}' | tail -1`
ROON_FFMPEG_DIR="${ROON_DATAROOT}/bin"
ROON_LOG_FILE="${ROON_DATAROOT}/RoonOnNAS.log.txt"
ST_COLOR="\033[38;5;34m"
HL_COLOR="\033[38;5;197m"
REG_COLOR="\033[0m"
## Log Function
echolog () {
TIMESTAMP=$(date +%d.%m.%y-%H:%M:%S)
if [[ $# == 2 ]]; then
PARAMETER1=$1
PARAMETER2=$2
echo -e "${ST_COLOR}${TIMESTAMP}${REG_COLOR} --- ${HL_COLOR}${PARAMETER1}:${REG_COLOR} ${PARAMETER2}"
echo "${TIMESTAMP} --- ${PARAMETER1}: ${PARAMETER2}" >> "$ROON_LOG_FILE"
elif [[ $# == 1 ]]; then
PARAMETER1=$1
echo -e "${ST_COLOR}${TIMESTAMP}${REG_COLOR} --- ${PARAMETER1}"
echo "${TIMESTAMP} --- ${PARAMETER1}" >> "$ROON_LOG_FILE"
else
echo -e "The echolog function requires 1 or 2 parameters."
fi
}
info ()
{
## Echoing System Info
echolog "ROON_DATABASE_DIR" "${ROON_DATAROOT} - [`[ -d \"${ROON_DATAROOT}\" ] && echo \"available\" || echo \"not available\"`]"
echolog "ROON_DATABASE_DIR_FS" "${ROON_DATABASE_DIR_FS}"
echolog "ROON_ID_DIR" "$ROON_ID_DIR - [`[ -d \"$ROON_ID_DIR\" ] && echo \"available\" || echo \"not available\"`]"
echolog "Free Inodes" "${ROON_DATABASE_DIR_FREE_INODES}"
echolog "ROON_DIR" "${QPKG_ROOT}"
echolog "Model" "${QNAP_MODEL}"
echolog "Architecture" "${ARCH}"
echolog "Total Memory" "${QNAP_MEMTOTAL}"
echolog "Available Memory" "${QNAP_MEMFREE}"
echolog "QTS Version" "${QNAP_QTS_VER} - Build: ${QNAP_QTS_BUILD}"
echolog "PKG Version" "${QPKG_VERSION}"
echolog "Hostname" "${HOSTNAME}"
}
RoonOnNAS_folderCheck ()
{
if [ -d "${ROONONNAS_DIR}" ]; then
[ -d "${ROONONNAS_DIR}/RoonOnNAS" ] || mkdir "${ROONONNAS_DIR}/RoonOnNAS"
[ -d "${ROONONNAS_DIR}/RoonOnNAS/bin" ] || mkdir "${ROONONNAS_DIR}/RoonOnNAS/bin"
fi
}
start_RoonServer () {
if [ "${ROON_DATAROOT}" != "/RoonOnNAS" ] && [ -d "${ROON_DATAROOT}" ]; then
export ROON_DATAROOT
export ROON_ID_DIR
export QNAP_MODEL
export QNAP_SERIAL
export QNAP_QTS_VER
## Creating required directories, if they do not exist
[ -d "$ROON_ID_DIR" ] || mkdir "$ROON_ID_DIR"
[ -d "$ROON_TMP_DIR" ] || mkdir "$ROON_TMP_DIR"
${DOCKER_CMD} compose -f $QPKG_ROOT/docker/docker-compose.yml -f $QPKG_ROOT/docker/qnap.yml up -d
fi
}
start_daemon ()
{
info
#Launch the service in the background if RoonServer share exists.
ln -sfn "${QPKG_ROOT}/web" "${WEB_PATH}${WEBUI}"
start_RoonServer
}
case "$1" in
start)
ENABLED=$(/sbin/getcfg $QPKG_NAME Enable -u -d FALSE -f $CONF)
RoonOnNAS_folderCheck
if [ "$ENABLED" != "TRUE" ]; then
echolog "$QPKG_NAME is disabled."
exit 1
fi
if [ -z `$DOCKER_CMD compose ps -q $CONT_NAME` ] || [ -z `$DOCKER_CMD ps -q --no-trunc | grep $($DOCKER_CMD compose ps -q $CONT_NAME)` ]; then
start_daemon
else
echolog "${QPKG_NAME} is already running with..."
fi
;;
stop)
if [ -z `$DOCKER_CMD compose ps -q $CONT_NAME` ] || [ -z `$DOCKER_CMD ps -q --no-trunc | grep $($DOCKER_CMD compose ps -q $CONT_NAME)` ]; then
echolog "${QPKG_NAME} is not running."
else
echolog "Stopping RoonServer..."
${DOCKER_CMD} compose -f $QPKG_ROOT/docker/docker-compose.yml -f $QPKG_ROOT/docker/qnap.yml down
if [[ $2 != "keepwebalive" ]]; then
rm -rf "${QPKG_ROOT}/web/tmp"/*
rm "${WEB_PATH}${WEBUI}"
fi
echolog "RoonServer has been stopped."
fi
${DOCKER_CMD} compose -f $QPKG_ROOT/docker/docker-compose.yml -f $QPKG_ROOT/docker/qnap.yml down
;;
restart)
isRestart=true
$0 stop
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0