diff --git a/ct/wastebin.sh b/ct/wastebin.sh index 7f9b31c35..d45e418f3 100644 --- a/ct/wastebin.sh +++ b/ct/wastebin.sh @@ -20,39 +20,69 @@ color catch_errors function update_script() { - header_info - check_container_storage - check_container_resources - if [[ ! -d /opt/wastebin ]]; then - msg_error "No ${APP} Installation Found!" + header_info + check_container_storage + check_container_resources + if [[ ! -d /opt/wastebin ]]; then + msg_error "No ${APP} Installation Found!" + exit + fi + RELEASE=$(curl -s https://api.github.com/repos/matze/wastebin/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') + # Dirty-Fix 03/2025 for missing APP_version.txt on old installations, set to pre-latest release + msg_info "Running Migration" + if [[ ! -f /opt/${APP}_version.txt ]]; then + echo "2.7.1" >/opt/${APP}_version.txt + mkdir -p /opt/wastebin-data + cat </opt/wastebin-data/.env +WASTEBIN_DATABASE_PATH=/opt/wastebin-data/wastebin.db +WASTEBIN_CACHE_SIZE=1024 +WASTEBIN_HTTP_TIMEOUT=30 +WASTEBIN_SIGNING_KEY=$(openssl rand -hex 32) +WASTEBIN_PASTE_EXPIRATIONS=0,600,3600=d,86400,604800,2419200,29030400 +EOF + systemctl stop wastebin + cat </etc/systemd/system/wastebin.service +[Unit] +Description=Wastebin Service +After=network.target + +[Service] +WorkingDirectory=/opt/wastebin +ExecStart=/opt/wastebin/wastebin +EnvironmentFile=/opt/wastebin-data/.env + +[Install] +WantedBy=multi-user.target +EOF + systemctl daemon-reload + fi + msg_ok "Migration Done" + if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then + msg_info "Stopping Wastebin" + systemctl stop wastebin + msg_ok "Wastebin Stopped" + + msg_info "Updating Wastebin" + temp_file=$(mktemp) + wget -q https://github.com/matze/wastebin/releases/download/${RELEASE}/wastebin_${RELEASE}_x86_64-unknown-linux-musl.zip -O $temp_file + unzip -q $temp_file + cp -f wastebin /opt/wastebin/ + chmod +x /opt/wastebin/wastebin + echo "${RELEASE}" >/opt/${APP}_version.txt + msg_ok "Updated Wastebin" + + msg_info "Starting Wastebin" + systemctl start wastebin + msg_ok "Started Wastebin" + + msg_info "Cleaning Up" + rm -f $temp_file + msg_ok "Cleanup Completed" + msg_ok "Updated Successfully" + else + msg_ok "No update required. ${APP} is already at v${RELEASE}" + fi exit - fi - RELEASE=$(curl -s https://api.github.com/repos/matze/wastebin/releases/latest | grep "tag_name" | awk '{print substr($2, 2, length($2)-3) }') - if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then - msg_info "Stopping Wastebin" - systemctl stop wastebin - msg_ok "Wastebin Stopped" - - msg_info "Updating Wastebin" - wget -q https://github.com/matze/wastebin/releases/download/${RELEASE}/wastebin_${RELEASE}_x86_64-unknown-linux-musl.tar.zst - tar -xf wastebin_${RELEASE}_x86_64-unknown-linux-musl.tar.zst - cp -f wastebin /opt/wastebin/ - chmod +x /opt/wastebin/wastebin - echo "${RELEASE}" >/opt/${APP}_version.txt - msg_ok "Updated Wastebin" - - msg_info "Starting Wastebin" - systemctl start wastebin - msg_ok "Started Wastebin" - - msg_info "Cleaning Up" - rm -rf wastebin_${RELEASE}_x86_64-unknown-linux-musl.tar.zst - msg_ok "Cleaned" - msg_ok "Updated Successfully" - else - msg_ok "No update required. ${APP} is already at v${RELEASE}" - fi - exit } start