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)