mirror of
https://github.com/community-scripts/ProxmoxVE
synced 2025-01-10 10:55:10 +00:00
Fix: Stirling-PDF > LibreOffice/unoconv Integration Issues (#1322)
* 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. * Apply suggestions from code review Co-authored-by: Michel Roegl-Brunner <73236783+michelroegl-brunner@users.noreply.github.com> * Update stirling-pdf-install.sh --------- Co-authored-by: Michel Roegl-Brunner <michel.roegl-brunner@htl-braunau.at>
This commit is contained in:
parent
14e185af85
commit
0b85f26a4e
@ -36,7 +36,11 @@ msg_info "Installing LibreOffice Components"
|
|||||||
$STD apt-get install -y \
|
$STD apt-get install -y \
|
||||||
libreoffice-writer \
|
libreoffice-writer \
|
||||||
libreoffice-calc \
|
libreoffice-calc \
|
||||||
libreoffice-impress
|
libreoffice-impress \
|
||||||
|
libreoffice-core \
|
||||||
|
libreoffice-common \
|
||||||
|
libreoffice-base-core \
|
||||||
|
python3-uno
|
||||||
msg_ok "Installed LibreOffice Components"
|
msg_ok "Installed LibreOffice Components"
|
||||||
|
|
||||||
msg_info "Installing Python Dependencies"
|
msg_info "Installing Python Dependencies"
|
||||||
@ -75,8 +79,8 @@ msg_ok "Installed Language Packs"
|
|||||||
|
|
||||||
msg_info "Installing Stirling-PDF (Additional Patience)"
|
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) }')
|
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
|
wget -q https://github.com/Stirling-Tools/Stirling-PDF/archive/refs/tags/v${RELEASE}.tar.gz
|
||||||
tar -xzf v$RELEASE.tar.gz
|
tar -xzf v${RELEASE}.tar.gz
|
||||||
cd Stirling-PDF-$RELEASE
|
cd Stirling-PDF-$RELEASE
|
||||||
chmod +x ./gradlew
|
chmod +x ./gradlew
|
||||||
$STD ./gradlew build
|
$STD ./gradlew build
|
||||||
@ -86,37 +90,66 @@ mv ./build/libs/Stirling-PDF-*.jar /opt/Stirling-PDF/
|
|||||||
mv scripts /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 /opt/Stirling-PDF/Stirling-PDF-$RELEASE.jar /opt/Stirling-PDF/Stirling-PDF.jar
|
||||||
ln -s /usr/share/tesseract-ocr/5/tessdata/ /usr/share/tessdata
|
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"
|
msg_info "Creating Service"
|
||||||
cat <<EOF >/etc/systemd/system/stirlingpdf.service
|
# Create LibreOffice listener service
|
||||||
|
cat <<EOF >/etc/systemd/system/libreoffice-listener.service
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Stirling-PDF service
|
Description=LibreOffice Headless Listener Service
|
||||||
After=syslog.target network.target
|
After=network.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
SuccessExitStatus=143
|
Type=simple
|
||||||
|
|
||||||
User=root
|
User=root
|
||||||
Group=root
|
Group=root
|
||||||
|
ExecStart=/usr/lib/libreoffice/program/soffice --headless --invisible --nodefault --nofirststartwizard --nolockcheck --nologo --accept="socket,host=127.0.0.1,port=2002;urp;StarOffice.ComponentContext"
|
||||||
Type=simple
|
Restart=always
|
||||||
EnvironmentFile=/opt/Stirling-PDF/.env
|
|
||||||
WorkingDirectory=/opt/Stirling-PDF
|
|
||||||
ExecStart=/usr/bin/java -jar Stirling-PDF.jar
|
|
||||||
ExecStop=/bin/kill -15 %n
|
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
EOF
|
EOF
|
||||||
systemctl enable -q --now stirlingpdf.service
|
|
||||||
|
# Set up environment variables
|
||||||
|
cat <<EOF >/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 <<EOF >/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"
|
msg_ok "Created Service"
|
||||||
|
|
||||||
motd_ssh
|
motd_ssh
|
||||||
customize
|
customize
|
||||||
|
|
||||||
msg_info "Cleaning up"
|
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 autoremove
|
||||||
$STD apt-get -y autoclean
|
$STD apt-get -y autoclean
|
||||||
msg_ok "Cleaned"
|
msg_ok "Cleaned"
|
||||||
|
Loading…
Reference in New Issue
Block a user