summaryrefslogtreecommitdiffstats
path: root/doc/02-Installation.md
blob: 82a63a9b19771264123aae872bb61becb9d3c462 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# Installation <a id="installation"></a>

## Requirements <a id="installation-requirements"></a>

* PHP (>= 7.2)
* Icinga Web 2 (>= 2.9)
* Icinga Web 2 libraries:
  * [Icinga PHP Library (ipl)](https://github.com/Icinga/icinga-php-library) (>= 0.8)
  * [Icinga PHP Thirdparty](https://github.com/Icinga/icinga-php-thirdparty) (>= 0.10)

## Google Chrome/Chromium Setup <a id="installation-chrome-setup"></a>

The module needs Google Chrome or Chromium supporting headless mode.

### RHEL/CentOS <a id="installation-chrome-setup-rhel"></a>

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
```

### Debian/Ubuntu <a id="installation-chrome-setup-rhel"></a>

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
```

## Module Installation <a id="installation-module"></a>

1. Install it [like any other module](https://icinga.com/docs/icinga-web-2/latest/doc/08-Modules/#installation).
Use `pdfexport` as name.

2. 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.

### Using a Remote Chrome/Chromium

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.