diff --git a/install/stirling-pdf-install.sh b/install/stirling-pdf-install.sh index 788cb757..3fb5839a 100644 --- a/install/stirling-pdf-install.sh +++ b/install/stirling-pdf-install.sh @@ -36,7 +36,11 @@ msg_info "Installing LibreOffice Components" $STD apt-get install -y \ libreoffice-writer \ libreoffice-calc \ - libreoffice-impress + libreoffice-impress \ + libreoffice-core \ + libreoffice-common \ + libreoffice-base-core \ + python3-uno msg_ok "Installed LibreOffice Components" msg_info "Installing Python Dependencies" @@ -75,8 +79,8 @@ msg_ok "Installed Language Packs" msg_info "Installing Stirling-PDF (Additional Patience)" RELEASE=$(curl -s https://api.github.com/repos/Stirling-Tools/Stirling-PDF/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') -wget -q https://github.com/Stirling-Tools/Stirling-PDF/archive/refs/tags/v$RELEASE.tar.gz -tar -xzf v$RELEASE.tar.gz +wget -q https://github.com/Stirling-Tools/Stirling-PDF/archive/refs/tags/v${RELEASE}.tar.gz +tar -xzf v${RELEASE}.tar.gz cd Stirling-PDF-$RELEASE chmod +x ./gradlew $STD ./gradlew build @@ -86,37 +90,66 @@ mv ./build/libs/Stirling-PDF-*.jar /opt/Stirling-PDF/ mv scripts /opt/Stirling-PDF/ ln -s /opt/Stirling-PDF/Stirling-PDF-$RELEASE.jar /opt/Stirling-PDF/Stirling-PDF.jar ln -s /usr/share/tesseract-ocr/5/tessdata/ /usr/share/tessdata -msg_ok "Installed Stirling-PDF v$RELEASE" +msg_ok "Installed Stirling-PDF" msg_info "Creating Service" -cat </etc/systemd/system/stirlingpdf.service +# Create LibreOffice listener service +cat </etc/systemd/system/libreoffice-listener.service [Unit] -Description=Stirling-PDF service -After=syslog.target network.target +Description=LibreOffice Headless Listener Service +After=network.target [Service] -SuccessExitStatus=143 - +Type=simple User=root Group=root - -Type=simple -EnvironmentFile=/opt/Stirling-PDF/.env -WorkingDirectory=/opt/Stirling-PDF -ExecStart=/usr/bin/java -jar Stirling-PDF.jar -ExecStop=/bin/kill -15 %n +ExecStart=/usr/lib/libreoffice/program/soffice --headless --invisible --nodefault --nofirststartwizard --nolockcheck --nologo --accept="socket,host=127.0.0.1,port=2002;urp;StarOffice.ComponentContext" +Restart=always [Install] WantedBy=multi-user.target EOF -systemctl enable -q --now stirlingpdf.service + +# Set up environment variables +cat </opt/Stirling-PDF/.env +PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/libreoffice/program +UNO_PATH=/usr/lib/libreoffice/program +PYTHONPATH=/usr/lib/python3/dist-packages:/usr/lib/libreoffice/program +LD_LIBRARY_PATH=/usr/lib/libreoffice/program +EOF + +cat </etc/systemd/system/stirlingpdf.service +[Unit] +Description=Stirling-PDF service +After=syslog.target network.target libreoffice-listener.service +Requires=libreoffice-listener.service + +[Service] +SuccessExitStatus=143 +Type=simple +User=root +Group=root +EnvironmentFile=/opt/Stirling-PDF/.env +WorkingDirectory=/opt/Stirling-PDF +ExecStart=/usr/bin/java -jar Stirling-PDF.jar +ExecStop=/bin/kill -15 %n +Restart=always +RestartSec=10 + +[Install] +WantedBy=multi-user.target +EOF + +# Enable and start services +systemctl enable -q --now libreoffice-listener +systemctl enable -q --now stirlingpdf msg_ok "Created Service" motd_ssh customize msg_info "Cleaning up" -rm -rf v$RELEASE.tar.gz /zulu-repo_1.0.0-3_all.deb +rm -rf v${RELEASE}.tar.gz /zulu-repo_1.0.0-3_all.deb $STD apt-get -y autoremove $STD apt-get -y autoclean msg_ok "Cleaned"