From f1bad5ef52e266b5b5df649b967036eef59dd4bc Mon Sep 17 00:00:00 2001 From: Matt Burns Date: Tue, 7 Jan 2025 18:03:30 -0700 Subject: [PATCH] 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