diff --git a/etc/raspberrypios/wrolpi-app.service b/etc/raspberrypios/wrolpi-app.service index b9dd0e98..9cf447c9 100644 --- a/etc/raspberrypios/wrolpi-app.service +++ b/etc/raspberrypios/wrolpi-app.service @@ -6,7 +6,9 @@ Conflicts=wrolpi-app-dev.service [Service] # Use explicit `serve.json` so `epub.html` is not lost. -ExecStart=/usr/local/bin/serve build -l 3000 -c /opt/wrolpi/app/serve.json +# Resolve `serve` via PATH so it works regardless of npm's global prefix +# (/usr/local/bin vs /usr/bin depending on how node was installed). +ExecStart=/usr/bin/env serve build -l 3000 -c /opt/wrolpi/app/serve.json Group=wrolpi User=wrolpi WorkingDirectory=/opt/wrolpi/app/ diff --git a/scripts/install_debian_12.sh b/scripts/install_debian_12.sh index 7ae2f5ec..23d43379 100755 --- a/scripts/install_debian_12.sh +++ b/scripts/install_debian_12.sh @@ -20,8 +20,11 @@ apt-get install -y $(cat /opt/wrolpi/debian-live-config/config/package-lists/wro node -v npm -v -# Install serve, and archiving tools. -single-file --version || sudo npm i -g serve@12.0.1 single-file-cli@2.0.73 readability-extractor@0.0.6 +# Install serve, and archiving tools. Check each independently so a present +# single-file cannot mask a missing serve (which breaks wrolpi-app). +command -v serve >/dev/null || sudo npm i -g serve@12.0.1 +single-file --version >/dev/null 2>&1 || sudo npm i -g single-file-cli@2.0.73 +command -v readability-extractor >/dev/null || sudo npm i -g readability-extractor@0.0.6 # Install Deno runtime; single-file runs under it. command -v deno || { diff --git a/scripts/install_raspberrypios.sh b/scripts/install_raspberrypios.sh index 0c7e2ece..3e005676 100755 --- a/scripts/install_raspberrypios.sh +++ b/scripts/install_raspberrypios.sh @@ -20,8 +20,11 @@ apt-get install -y $(cat /opt/wrolpi/pi-gen/stage2/04-wrolpi/01-packages-nr) node -v npm -v -# Install serve, and archiving tools. -single-file --version || sudo npm i -g serve@12.0.1 single-file-cli@2.0.73 readability-extractor@0.0.6 +# Install serve, and archiving tools. Check each independently so a present +# single-file cannot mask a missing serve (which breaks wrolpi-app). +command -v serve >/dev/null || sudo npm i -g serve@12.0.1 +single-file --version >/dev/null 2>&1 || sudo npm i -g single-file-cli@2.0.73 +command -v readability-extractor >/dev/null || sudo npm i -g readability-extractor@0.0.6 # Install Deno runtime; single-file runs under it. command -v deno || {