From f1bad5ef52e266b5b5df649b967036eef59dd4bc Mon Sep 17 00:00:00 2001 From: Matt Burns Date: Tue, 7 Jan 2025 18:03:30 -0700 Subject: [PATCH 1/2] Modify install script to install core libreoffice components. Configure a running libreoffice service and setup env variables so they are accessible to StirlingPDF. Modify stirlingPDF service to wait for libreoffice service to start. Enable and explicitly start libreoffice and stirlingPDF services. --- install/stirling-pdf-install.sh | 66 +++++++++++++++++++++++++-------- 1 file changed, 51 insertions(+), 15 deletions(-) diff --git a/install/stirling-pdf-install.sh b/install/stirling-pdf-install.sh index 788cb757..9d98c196 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" @@ -88,29 +92,61 @@ ln -s /opt/Stirling-PDF/Stirling-PDF-$RELEASE.jar /opt/Stirling-PDF/Stirling-PDF ln -s /usr/share/tesseract-ocr/5/tessdata/ /usr/share/tessdata msg_ok "Installed Stirling-PDF v$RELEASE" -msg_info "Creating Service" -cat </etc/systemd/system/stirlingpdf.service +msg_info "Configuring LibreOffice 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 -msg_ok "Created 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 + +msg_info "Creating StirlingPDF Service" +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 libreoffice-listener +systemctl enable -q stirlingpdf +systemctl start libreoffice-listener +systemctl start stirlingpdf +msg_ok "Created and Started Services" motd_ssh customize From 32f8d1c930aa08177136aa150ecc5ca69ff0b9af Mon Sep 17 00:00:00 2001 From: Matt Burns <1515005+m6urns@users.noreply.github.com> Date: Wed, 8 Jan 2025 15:45:48 -0700 Subject: [PATCH 2/2] Apply suggestions from code review Co-authored-by: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com> --- install/stirling-pdf-install.sh | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/install/stirling-pdf-install.sh b/install/stirling-pdf-install.sh index 9d98c196..87bc7654 100644 --- a/install/stirling-pdf-install.sh +++ b/install/stirling-pdf-install.sh @@ -92,7 +92,7 @@ ln -s /opt/Stirling-PDF/Stirling-PDF-$RELEASE.jar /opt/Stirling-PDF/Stirling-PDF ln -s /usr/share/tesseract-ocr/5/tessdata/ /usr/share/tessdata msg_ok "Installed Stirling-PDF v$RELEASE" -msg_info "Configuring LibreOffice Service" +msg_info "Creating Service" # Create LibreOffice listener service cat </etc/systemd/system/libreoffice-listener.service [Unit] @@ -118,7 +118,6 @@ PYTHONPATH=/usr/lib/python3/dist-packages:/usr/lib/libreoffice/program LD_LIBRARY_PATH=/usr/lib/libreoffice/program EOF -msg_info "Creating StirlingPDF Service" cat </etc/systemd/system/stirlingpdf.service [Unit] Description=Stirling-PDF service @@ -142,15 +141,18 @@ WantedBy=multi-user.target EOF # Enable and start services -systemctl enable -q libreoffice-listener -systemctl enable -q stirlingpdf -systemctl start libreoffice-listener -systemctl start stirlingpdf -msg_ok "Created and Started Services" +systemctl enable -q --now libreoffice-listener +systemctl enable -q --now stirlingpdf +msg_ok "Created Service" motd_ssh customize +msg_info "Cleaning up" +$STD apt-get -y autoremove +$STD apt-get -y autoclean +msg_ok "Cleaned" + msg_info "Cleaning up" rm -rf v$RELEASE.tar.gz /zulu-repo_1.0.0-3_all.deb $STD apt-get -y autoremove