From e9b6af3531c8a64597e0edba7309002d11f9ff68 Mon Sep 17 00:00:00 2001 From: Tobias <96661824+CrazyWolf13@users.noreply.github.com> Date: Thu, 18 Jun 2026 11:55:28 +0200 Subject: [PATCH] refactor: crafty-controller (#15178) * refactor: crafty-controller * refactor: crafty-controller --- ct/crafty-controller.sh | 41 ++++++++++++---------------- install/crafty-controller-install.sh | 16 +++-------- 2 files changed, 22 insertions(+), 35 deletions(-) diff --git a/ct/crafty-controller.sh b/ct/crafty-controller.sh index 7e1118640..b783fbea2 100644 --- a/ct/crafty-controller.sh +++ b/ct/crafty-controller.sh @@ -29,42 +29,37 @@ function update_script() { exit fi - RELEASE=$(curl -fsSL "https://gitlab.com/api/v4/projects/20430749/releases" | grep -o '"tag_name":"v[^"]*"' | head -n 1 | sed 's/"tag_name":"v//;s/"//') - if [[ ! -f /opt/crafty-controller_version.txt ]] || [[ ${RELEASE} != "$(cat /opt/crafty-controller_version.txt)" ]]; then - + if check_for_gl_release "Crafty-Controller" "crafty-controller/crafty-4"; then msg_info "Stopping Crafty-Controller" systemctl stop crafty-controller msg_ok "Stopped Crafty-Controller" - create_backup /opt/crafty-controller/crafty/crafty-4/app/config/version.json \ - /opt/crafty-controller/crafty/crafty-4/app/config/credits.json \ - /opt/crafty-controller/crafty/crafty-4/app/config/logging.json \ - /opt/crafty-controller/crafty/crafty-4/app/config/default.json.example \ - /opt/crafty-controller/crafty/crafty-4/app/config/motd_format.json + create_backup \ + "/opt/crafty-controller/crafty/crafty-4/app/config/db" \ + "/opt/crafty-controller/crafty/crafty-4/app/config/config.json" \ + "/opt/crafty-controller/crafty/crafty-4/app/config/web" \ + "/opt/crafty-controller/crafty/crafty-4/servers" \ + "/opt/crafty-controller/crafty/crafty-4/backups" \ + "/opt/crafty-controller/crafty/crafty-4/import" - msg_info "Updating Crafty-Controller to v${RELEASE}" - curl -fsSL "https://gitlab.com/crafty-controller/crafty-4/-/archive/v${RELEASE}/crafty-4-v${RELEASE}.zip" -o $(basename "https://gitlab.com/crafty-controller/crafty-4/-/archive/v${RELEASE}/crafty-4-v${RELEASE}.zip") - $STD unzip crafty-4-v"${RELEASE}".zip - cp -a crafty-4-v"${RELEASE}"/. /opt/crafty-controller/crafty/crafty-4/ - rm -rf crafty-4-v"${RELEASE}" - cd /opt/crafty-controller/crafty/crafty-4 - sudo -u crafty bash -c ' - source /opt/crafty-controller/crafty/.venv/bin/activate - pip3 install --no-cache-dir -r requirements.txt - ' &>/dev/null - echo "${RELEASE}" >"/opt/crafty-controller_version.txt" - msg_ok "Updated Crafty-Controller to v${RELEASE}" + CLEAN_INSTALL=1 fetch_and_deploy_gl_release "Crafty-Controller" "crafty-controller/crafty-4" "tarball" "latest" "/opt/crafty-controller/crafty/crafty-4" restore_backup - chown -R crafty:crafty /opt/crafty-controller/ + + msg_info "Updating Python dependencies" + chown -R crafty:crafty /opt/crafty-controller + cd /opt/crafty-controller/crafty/crafty-4 + $STD sudo -u crafty bash -c ' + source /opt/crafty-controller/crafty/.venv/bin/activate + pip3 install --no-cache-dir -r requirements.txt + ' + msg_ok "Updated Python dependencies" msg_info "Starting Crafty-Controller" systemctl start crafty-controller msg_ok "Started Crafty-Controller" msg_ok "Updated successfully!" - else - msg_ok "No update required. ${APP} is already at v${RELEASE}" fi exit } diff --git a/install/crafty-controller-install.sh b/install/crafty-controller-install.sh index 904332147..d9223590f 100644 --- a/install/crafty-controller-install.sh +++ b/install/crafty-controller-install.sh @@ -16,29 +16,22 @@ update_os msg_info "Setting up TemurinJDK" setup_java $STD apt install -y temurin-{8,11,17,21,25}-jre -sudo update-alternatives --set java /usr/lib/jvm/temurin-25-jre-amd64/bin/java +$STD update-alternatives --set java /usr/lib/jvm/temurin-25-jre-amd64/bin/java msg_ok "Installed TemurinJDK" msg_info "Setup Python3" $STD apt install -y \ - python3 \ python3-dev \ python3-pip \ python3-venv rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED msg_ok "Setup Python3" -msg_info "Installing Crafty-Controller (Patience)" useradd crafty -m -s /bin/bash -cd /opt mkdir -p /opt/crafty-controller/crafty /opt/crafty-controller/server -RELEASE=$(curl -fsSL "https://gitlab.com/api/v4/projects/20430749/releases" | grep -o '"tag_name":"v[^"]*"' | head -n 1 | sed 's/"tag_name":"v//;s/"//') -echo "${RELEASE}" >"/opt/crafty-controller_version.txt" -curl -fsSL "https://gitlab.com/crafty-controller/crafty-4/-/archive/v${RELEASE}/crafty-4-v${RELEASE}.zip" -o "crafty-4-v${RELEASE}.zip" -$STD unzip crafty-4-v"${RELEASE}".zip -cp -a crafty-4-v"${RELEASE}"/. /opt/crafty-controller/crafty/crafty-4/ -rm -rf crafty-4-v"${RELEASE}" +fetch_and_deploy_gl_release "Crafty-Controller" "crafty-controller/crafty-4" "tarball" "latest" "/opt/crafty-controller/crafty/crafty-4" +msg_info "Installing Crafty-Controller dependencies (Patience)" cd /opt/crafty-controller/crafty python3 -m venv .venv chown -R crafty:crafty /opt/crafty-controller/ @@ -47,7 +40,7 @@ $STD sudo -u crafty bash -c ' cd /opt/crafty-controller/crafty/crafty-4 pip3 install --no-cache-dir -r requirements.txt ' -msg_ok "Installed Craft-Controller and dependencies" +msg_ok "Installed Crafty-Controller dependencies" msg_info "Setting up service" cat </etc/systemd/system/crafty-controller.service @@ -80,7 +73,6 @@ if [[ -f "$CREDS_FILE" ]]; then } >>~/crafty-controller.creds fi msg_ok "Service started" - motd_ssh customize cleanup_lxc