Skip to content

Commit 0b85f26

Browse files
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 <[email protected]> * Update stirling-pdf-install.sh --------- Co-authored-by: Michel Roegl-Brunner <[email protected]>
1 parent 14e185a commit 0b85f26

File tree

1 file changed

+43
-10
lines changed

1 file changed

+43
-10
lines changed

install/stirling-pdf-install.sh

Lines changed: 43 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,11 @@ msg_info "Installing LibreOffice Components"
3636
$STD apt-get install -y \
3737
libreoffice-writer \
3838
libreoffice-calc \
39-
libreoffice-impress
39+
libreoffice-impress \
40+
libreoffice-core \
41+
libreoffice-common \
42+
libreoffice-base-core \
43+
python3-uno
4044
msg_ok "Installed LibreOffice Components"
4145

4246
msg_info "Installing Python Dependencies"
@@ -75,8 +79,8 @@ msg_ok "Installed Language Packs"
7579

7680
msg_info "Installing Stirling-PDF (Additional Patience)"
7781
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) }')
78-
wget -q https://github.com/Stirling-Tools/Stirling-PDF/archive/refs/tags/v$RELEASE.tar.gz
79-
tar -xzf v$RELEASE.tar.gz
82+
wget -q https://github.com/Stirling-Tools/Stirling-PDF/archive/refs/tags/v${RELEASE}.tar.gz
83+
tar -xzf v${RELEASE}.tar.gz
8084
cd Stirling-PDF-$RELEASE
8185
chmod +x ./gradlew
8286
$STD ./gradlew build
@@ -86,37 +90,66 @@ mv ./build/libs/Stirling-PDF-*.jar /opt/Stirling-PDF/
8690
mv scripts /opt/Stirling-PDF/
8791
ln -s /opt/Stirling-PDF/Stirling-PDF-$RELEASE.jar /opt/Stirling-PDF/Stirling-PDF.jar
8892
ln -s /usr/share/tesseract-ocr/5/tessdata/ /usr/share/tessdata
89-
msg_ok "Installed Stirling-PDF v$RELEASE"
93+
msg_ok "Installed Stirling-PDF"
9094

9195
msg_info "Creating Service"
96+
# Create LibreOffice listener service
97+
cat <<EOF >/etc/systemd/system/libreoffice-listener.service
98+
[Unit]
99+
Description=LibreOffice Headless Listener Service
100+
After=network.target
101+
102+
[Service]
103+
Type=simple
104+
User=root
105+
Group=root
106+
ExecStart=/usr/lib/libreoffice/program/soffice --headless --invisible --nodefault --nofirststartwizard --nolockcheck --nologo --accept="socket,host=127.0.0.1,port=2002;urp;StarOffice.ComponentContext"
107+
Restart=always
108+
109+
[Install]
110+
WantedBy=multi-user.target
111+
EOF
112+
113+
# Set up environment variables
114+
cat <<EOF >/opt/Stirling-PDF/.env
115+
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/libreoffice/program
116+
UNO_PATH=/usr/lib/libreoffice/program
117+
PYTHONPATH=/usr/lib/python3/dist-packages:/usr/lib/libreoffice/program
118+
LD_LIBRARY_PATH=/usr/lib/libreoffice/program
119+
EOF
120+
92121
cat <<EOF >/etc/systemd/system/stirlingpdf.service
93122
[Unit]
94123
Description=Stirling-PDF service
95-
After=syslog.target network.target
124+
After=syslog.target network.target libreoffice-listener.service
125+
Requires=libreoffice-listener.service
96126
97127
[Service]
98128
SuccessExitStatus=143
99-
129+
Type=simple
100130
User=root
101131
Group=root
102-
103-
Type=simple
104132
EnvironmentFile=/opt/Stirling-PDF/.env
105133
WorkingDirectory=/opt/Stirling-PDF
106134
ExecStart=/usr/bin/java -jar Stirling-PDF.jar
107135
ExecStop=/bin/kill -15 %n
136+
Restart=always
137+
RestartSec=10
108138
109139
[Install]
110140
WantedBy=multi-user.target
111141
EOF
112-
systemctl enable -q --now stirlingpdf.service
142+
143+
# Enable and start services
144+
systemctl enable -q --now libreoffice-listener
145+
systemctl enable -q --now stirlingpdf
113146
msg_ok "Created Service"
114147

115148
motd_ssh
116149
customize
117150

118151
msg_info "Cleaning up"
119-
rm -rf v$RELEASE.tar.gz /zulu-repo_1.0.0-3_all.deb
152+
rm -rf v${RELEASE}.tar.gz /zulu-repo_1.0.0-3_all.deb
120153
$STD apt-get -y autoremove
121154
$STD apt-get -y autoclean
122155
msg_ok "Cleaned"

0 commit comments

Comments
 (0)