- PHP (>= 7.2)
- Icinga Web 2 (>= 2.9)
- Icinga Web 2 libraries:
- Icinga PHP Library (ipl) (>= 0.8)
- Icinga PHP Thirdparty (>= 0.10)
The module needs Google Chrome or Chromium supporting headless mode.
Add the Chrome repository from Google to yum, next to EPEL.
yum -y install epel-release
cat >/etc/yum.repos.d/google-chrome-stable.repo <<EOF
[google-chrome-stable]
name=google-chrome-stable
baseurl=http://dl.google.com/linux/chrome/rpm/stable/\$basearch
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub
EOF
yum makecache
Install Chrome and additional dependencies (optional).
yum install google-chrome-stable
yum install mesa-libOSMesa mesa-libOSMesa-devel gnu-free-sans-fonts ipa-gothic-fonts ipa-pgothic-fonts
Add the Chrome repository from Google to apt.
apt-get -y install apt-transport-https gnupg wget
wget -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -
echo "deb http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list
apt-get update
Install Chrome.
apt-get install google-chrome-stable
-
Install it like any other module. Use
pdfexport
as name. -
You might need to set the absolute path to the Google Chrome / Chromium binary, depending on your system. This can be done in
Configuration -> Modules -> pdfexport -> Chrome
This concludes the installation. PDF exports now use Google Chrome/Chromium for rendering.
As an alternative to a local installation of Chrome/Chromium it is also possible to launch and utilize a remote instance.
Just install it as described above on a different machine and configure its connection
details in Configuration -> Modules -> pdfexport -> Chrome
.
To start a remote instance of Chrome/Chromium use the following commandline options:
google-chrome --remote-debugging-address=0.0.0.0 --remote-debugging-port=9222 --headless --keep-alive-for-test --disable-gpu --disable-dev-shm-usage --no-sandbox --bwsi --no-first-run --user-data-dir=/tmp --homedir=/tmp
Note that the browser does accept any and all connection attempts without any authentication. Keep that in mind and let it listen on a public IP (or even on 0.0.0.0) only during tests or with a proper firewall in place.