@@ -27,59 +27,67 @@ function update_script() {
2727 msg_error " No ${APP} Installation Found!"
2828 exit
2929 fi
30- RELEASE=$( curl -fsSL https://api.github.com/repos/karakeep-app/karakeep/releases/latest | grep " tag_name" | awk ' {print substr($2, 3, length($2)-4) }' )
31- PREV_RELEASE=$( cat /opt/${APP} _version.txt)
32- if [[ ! -f /opt/${APP} _version.txt ]] || [[ " ${RELEASE} " != " ${PREV_RELEASE} " ]]; then
33- msg_info " Stopping Services"
34- systemctl stop karakeep-web karakeep-workers karakeep-browser
35- msg_ok " Stopped Services"
36- msg_info " Updating yt-dlp"
37- $STD yt-dlp --update-to nightly
38- msg_ok " Updated yt-dlp"
39- msg_info " Updating ${APP} to v${RELEASE} "
40- if [[ $( corepack -v) < " 0.31.0" ]]; then
41- $STD npm install -g
[email protected] 42- fi
43- if [[ " ${PREV_RELEASE} " < 0.23.0 ]]; then
44- $STD apt-get install -y graphicsmagick ghostscript
45- fi
46- cd /opt
47- if [[ -f /opt/karakeep/.env ]] && [[ ! -f /etc/karakeep/karakeep.env ]]; then
48- mkdir -p /etc/karakeep
49- mv /opt/karakeep/.env /etc/karakeep/karakeep.env
50- fi
51- rm -rf /opt/karakeep
52- curl -fsSL " https://github.com/karakeep-app/karakeep/archive/refs/tags/v${RELEASE} .zip" -o " v${RELEASE} .zip"
53- $STD unzip " v${RELEASE} .zip"
54- mv karakeep-" ${RELEASE} " /opt/karakeep
55- cd /opt/karakeep/apps/web
56- $STD pnpm install --frozen-lockfile
57- $STD pnpm build
58- cd /opt/karakeep/apps/workers
59- $STD pnpm install --frozen-lockfile
60- cd /opt/karakeep/apps/cli
61- $STD pnpm install --frozen-lockfile
62- $STD pnpm build
63- cd /opt/karakeep/apps/mcp
64- $STD pnpm install --frozen-lockfile
65- $STD pnpm build
66- export DATA_DIR=/opt/karakeep_data
67- cd /opt/karakeep/packages/db
68- $STD pnpm migrate
69- sed -i " s/SERVER_VERSION=${PREV_RELEASE} /SERVER_VERSION=${RELEASE} /" /etc/karakeep/karakeep.env
70- msg_ok " Updated ${APP} to v${RELEASE} "
7130
72- msg_info " Starting Services"
73- systemctl start karakeep-browser karakeep-workers karakeep-web
74- msg_ok " Started Services"
75- msg_info " Cleaning up"
76- rm -R /opt/v" ${RELEASE} " .zip
77- echo " ${RELEASE} " > /opt/${APP} _version.txt
78- msg_ok " Cleaned"
79- msg_ok " Updated Successfully"
80- else
81- msg_ok " No update required. ${APP} is already at ${RELEASE} ."
31+ RELEASE=$( curl -fsSL https://api.github.com/repos/karakeep-app/karakeep/releases/latest | grep " tag_name" | awk ' {print substr($2, 3, length($2)-4) }' )
32+ if [[ -f ~ /.karakeep && " $RELEASE " == " $( cat ~ /.karakeep) " ]]; then
33+ msg_ok " No update required. ${APP} is already at ${RELEASE} "
34+ exit
35+ fi
36+ msg_info " Stopping Services"
37+ systemctl stop karakeep-web karakeep-workers karakeep-browser
38+ msg_ok " Stopped Services"
39+
40+ msg_info " Updating yt-dlp"
41+ $STD yt-dlp --update-to nightly
42+ msg_ok " Updated yt-dlp"
43+
44+ msg_info " Prepare update"
45+ if [[ -f /opt/${APP} _version.txt && " $( cat /opt/${APP} _version.txt) " < " 0.23.0" ]]; then
46+ $STD apt-get install -y graphicsmagick ghostscript
8247 fi
48+ if [[ -f /opt/karakeep/.env ]] && [[ ! -f /etc/karakeep/karakeep.env ]]; then
49+ mkdir -p /etc/karakeep
50+ mv /opt/karakeep/.env /etc/karakeep/karakeep.env
51+ fi
52+ rm -rf /opt/karakeep
53+ msg_ok " Update prepared"
54+
55+ fetch_and_deploy_gh_release " karakeep" " karakeep-app/karakeep"
56+ if command -v corepack; then
57+ $STD corepack disable
58+ fi
59+ MODULE_VERSION=" $( jq -r ' .packageManager | split("@")[1]' /opt/karakeep/package.json) "
60+ NODE_VERSION=" 22" NODE_MODULE=" pnpm@${MODULE_VERSION} " setup_nodejs
61+
62+ msg_info " Updating ${APP} to v${RELEASE} "
63+ export PUPPETEER_SKIP_DOWNLOAD=" true"
64+ export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=" true"
65+ export NEXT_TELEMETRY_DISABLED=1
66+ export CI=" true"
67+ cd /opt/karakeep/apps/web
68+ $STD pnpm install --frozen-lockfile
69+ $STD pnpm build
70+ cd /opt/karakeep/apps/workers
71+ $STD pnpm install --frozen-lockfile
72+ cd /opt/karakeep/apps/cli
73+ $STD pnpm install --frozen-lockfile
74+ $STD pnpm build
75+ export DATA_DIR=/opt/karakeep_data
76+ cd /opt/karakeep/packages/db
77+ $STD pnpm migrate
78+ $STD pnpm store prune
79+ sed -i " s/^SERVER_VERSION=.*$/SERVER_VERSION=${RELEASE} /" /etc/karakeep/karakeep.env
80+ msg_ok " Updated ${APP} to v${RELEASE} "
81+
82+ msg_info " Starting Services"
83+ systemctl start karakeep-browser karakeep-workers karakeep-web
84+ msg_ok " Started Services"
85+
86+ msg_info " Cleaning up"
87+ $STD apt-get autoremove -y
88+ $STD apt-get autoclean -y
89+ msg_ok " Cleaned"
90+ msg_ok " Updated Successfully"
8391 exit
8492}
8593
0 commit comments