From 202f1c7e846e27f2b8614a77aea9d1bba7b66d6c Mon Sep 17 00:00:00 2001 From: Tobias <96661824+CrazyWolf13@users.noreply.github.com> Date: Fri, 22 May 2026 19:20:18 +0200 Subject: [PATCH] add: karakeep cli wrapper (#14618) * add: karakeep cli wrapper * Create /usr/bin/karakeep if it doesn't exist * add: ejs for yt-dlp * add: ejs for yt-dlp * Fix pip install command for yt-dlp-ejs * Fix pip install command to use STD variable * rm python3 dep * rm python3 dep * ensure_dependencies * add: deno * add: deno * rm: not needed msg block --- ct/karakeep.sh | 19 +++++++++++++++++++ install/karakeep-install.sh | 11 +++++++++++ 2 files changed, 30 insertions(+) diff --git a/ct/karakeep.sh b/ct/karakeep.sh index 94744c1ee..ebceaea3f 100644 --- a/ct/karakeep.sh +++ b/ct/karakeep.sh @@ -53,6 +53,25 @@ function update_script() { if grep -q '^ExecStart=/usr/bin/node\s\+dist/index\.mjs$' /etc/systemd/system/karakeep-workers.service; then sed -i -E 's#^(ExecStart=/usr/bin/node\s+dist/)index\.mjs$#\1index.js#' /etc/systemd/system/karakeep-workers.service systemctl daemon-reload + fi + + if [ ! -f /usr/bin/karakeep ]; then + cat <<'EOF' >/usr/bin/karakeep +#!/usr/bin/env node +import('/opt/karakeep/apps/cli/dist/index.mjs') +EOF + chmod +x /usr/bin/karakeep + fi + + if ! command -v pip >/dev/null 2>&1 || ! pip show yt-dlp-ejs >/dev/null 2>&1; then + msg_info "Installing external JavaScript Extension for yt-dlp" + ensure_dependencies python3-pip + $STD pip install -U yt-dlp-ejs + msg_ok "Installed external JavaScript Extension for yt-dlp" + fi + + if ! command -v deno &>/dev/null; then + fetch_and_deploy_gh_release "deno" "denoland/deno" "prebuild" "latest" "/usr/local/bin" "deno-$(uname -m)-unknown-linux-gnu.zip" fi CLEAN_INSTALL=1 fetch_and_deploy_gh_release "karakeep" "karakeep-app/karakeep" "tarball" diff --git a/install/karakeep-install.sh b/install/karakeep-install.sh index 6a68bd47a..0417d87f4 100644 --- a/install/karakeep-install.sh +++ b/install/karakeep-install.sh @@ -20,11 +20,13 @@ $STD apt install -y \ chromium \ graphicsmagick \ ghostscript \ + python3-pip \ ffmpeg msg_ok "Installed Dependencies" fetch_and_deploy_gh_release "monolith" "Y2Z/monolith" "singlefile" "latest" "/usr/bin" "monolith-gnu-linux-x86_64" fetch_and_deploy_gh_release "yt-dlp" "yt-dlp/yt-dlp-nightly-builds" "singlefile" "latest" "/usr/bin" "yt-dlp_linux" +fetch_and_deploy_gh_release "deno" "denoland/deno" "prebuild" "latest" "/usr/local/bin" "deno-$(uname -m)-unknown-linux-gnu.zip" setup_meilisearch fetch_and_deploy_gh_release "karakeep" "karakeep-app/karakeep" "tarball" @@ -32,6 +34,10 @@ cd /opt/karakeep MODULE_VERSION="$(jq -r '.packageManager | split("@")[1]' /opt/karakeep/package.json)" NODE_VERSION="24" NODE_MODULE="pnpm@${MODULE_VERSION}" setup_nodejs +msg_info "Installing external JavaScript Extension for yt-dlp" +$STD pip install -U yt-dlp-ejs +msg_ok "Installed external JavaScript Extension for yt-dlp" + msg_info "Installing karakeep" export PUPPETEER_SKIP_DOWNLOAD="true" export PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD="true" @@ -47,6 +53,11 @@ cd /opt/karakeep/apps/cli $STD pnpm install --frozen-lockfile $STD pnpm build $STD pnpm store prune +cat <<'EOF' >/usr/bin/karakeep +#!/usr/bin/env node +import('/opt/karakeep/apps/cli/dist/index.mjs') +EOF +chmod +x /usr/bin/karakeep export DATA_DIR=/opt/karakeep_data karakeep_SECRET=$(openssl rand -base64 36 | cut -c1-24)