diff --git a/ct/papra.sh b/ct/papra.sh index 5b8615e86..3fadaf4ca 100644 --- a/ct/papra.sh +++ b/ct/papra.sh @@ -24,31 +24,37 @@ function update_script() { header_info check_container_storage check_container_resources + if [[ ! -d /opt/papra ]]; then msg_error "No ${APP} Installation Found!" exit fi - RELEASE=$(curl -fsSL https://api.github.com/repos/papra-hq/papra/releases | grep -oP '"tag_name":\s*"\K@papra/app@[^"]+' | head -n1) - if [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt 2>/dev/null)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then + + if check_for_gh_release "papra" "papra-hq/papra"; then msg_info "Stopping Service" systemctl stop papra msg_ok "Stopped Service" - msg_info "Updating ${APP} to ${RELEASE}" + msg_info "Backing up Configuration" + cp /opt/papra/apps/papra-server/.env /opt/papra_env.bak + msg_ok "Backed up Configuration" + + CLEAN_INSTALL=1 fetch_and_deploy_gh_release "papra" "papra-hq/papra" "tarball" + + msg_info "Building Application" cd /opt/papra - fetch_and_deploy_gh_release "papra" "papra-hq/papra" "tarball" "${RELEASE}" "/opt/papra" + cp /opt/papra_env.bak /opt/papra/apps/papra-server/.env $STD pnpm install --frozen-lockfile $STD pnpm --filter "@papra/app-client..." run build $STD pnpm --filter "@papra/app-server..." run build - echo "${RELEASE}" >/opt/${APP}_version.txt - msg_ok "Updated ${APP} to ${RELEASE}" + ln -sf /opt/papra/apps/papra-client/dist /opt/papra/apps/papra-server/public + rm -f /opt/papra_env.bak + msg_ok "Built Application" msg_info "Starting Service" systemctl start papra msg_ok "Started Service" msg_ok "Updated successfully!" - else - msg_ok "No update required. ${APP} is already at ${RELEASE}" fi exit } diff --git a/install/papra-install.sh b/install/papra-install.sh index 1a32763ba..d03689863 100644 --- a/install/papra-install.sh +++ b/install/papra-install.sh @@ -14,19 +14,18 @@ network_check update_os msg_info "Installing Dependencies" -$STD apt-get install -y \ +$STD apt install -y \ build-essential \ tesseract-ocr \ tesseract-ocr-all msg_ok "Installed Dependencies" -RELEASE=$(curl -fsSL https://api.github.com/repos/papra-hq/papra/releases | grep -oP '"tag_name":\s*"\K@papra/app@[^"]+' | head -n1) -fetch_and_deploy_gh_release "papra" "papra-hq/papra" "tarball" "${RELEASE}" "/opt/papra" +fetch_and_deploy_gh_release "papra" "papra-hq/papra" "tarball" pnpm_version=$(grep -oP '"packageManager":\s*"pnpm@\K[^"]+' /opt/papra/package.json) NODE_VERSION="24" NODE_MODULE="pnpm@$pnpm_version" setup_nodejs -msg_info "Installing Papra (Patience)" +msg_info "Installing Papra" cd /opt/papra $STD pnpm install --frozen-lockfile $STD pnpm --filter "@papra/app-client..." run build