@@ -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
4044msg_ok " Installed LibreOffice Components"
4145
4246msg_info " Installing Python Dependencies"
@@ -75,8 +79,8 @@ msg_ok "Installed Language Packs"
7579
7680msg_info " Installing Stirling-PDF (Additional Patience)"
7781RELEASE=$( 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
8084cd Stirling-PDF-$RELEASE
8185chmod +x ./gradlew
8286$STD ./gradlew build
@@ -86,37 +90,66 @@ mv ./build/libs/Stirling-PDF-*.jar /opt/Stirling-PDF/
8690mv scripts /opt/Stirling-PDF/
8791ln -s /opt/Stirling-PDF/Stirling-PDF-$RELEASE .jar /opt/Stirling-PDF/Stirling-PDF.jar
8892ln -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
9195msg_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+
92121cat << EOF >/etc/systemd/system/stirlingpdf.service
93122[Unit]
94123Description=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]
98128SuccessExitStatus=143
99-
129+ Type=simple
100130User=root
101131Group=root
102-
103- Type=simple
104132EnvironmentFile=/opt/Stirling-PDF/.env
105133WorkingDirectory=/opt/Stirling-PDF
106134ExecStart=/usr/bin/java -jar Stirling-PDF.jar
107135ExecStop=/bin/kill -15 %n
136+ Restart=always
137+ RestartSec=10
108138
109139[Install]
110140WantedBy=multi-user.target
111141EOF
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
113146msg_ok " Created Service"
114147
115148motd_ssh
116149customize
117150
118151msg_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
122155msg_ok " Cleaned"
0 commit comments