]> git.proxmox.com Git - pmg-docs.git/blob - pmg-installation.adoc
installation: align zfs performance tip with PVE documentation
[pmg-docs.git] / pmg-installation.adoc
1 Installation
2 ============
3
4 {pmg} is based on Debian. This is why the install disk images (ISO files)
5 provided by Proxmox include a complete Debian system as well as all necessary
6 {pmg} packages.
7
8 TIP: See the xref:faq-support-table[support table in the FAQ] for the
9 relationship between {pmg} releases and Debian releases.
10
11 The installer will guide you through the setup, allowing you to partition the local
12 disk(s), apply basic system configurations (for example, timezone, language,
13 network) and install all required packages. This process should not take more
14 than a few minutes. Installing with the provided ISO is the recommended method
15 for new and existing users.
16
17 Alternatively, {pmg} can be installed on top of an existing Debian system. This
18 option is only recommended for advanced users because detailed knowledge about
19 {pmg} is required.
20
21 include::pmg-installation-media.adoc[]
22
23 [[pmg_install_iso]]
24 Using the {pmg} Installation CD-ROM
25 -----------------------------------
26
27 The installer ISO image includes the following:
28
29 * Complete operating system (Debian Linux, 64-bit)
30
31 * The {pmg} installer, which partitions the hard drive(s) with ext4,
32 XFS or ZFS and installs the operating system
33
34 * Linux kernel
35
36 * Postfix MTA, ClamAV, Spamassassin and the {pmg} toolset
37
38 * Web-based management interface for using the toolset
39
40 NOTE: All existing data on the for installation selected drives will be removed
41 during the installation process. The installer does not add boot menu entries
42 for other operating systems.
43
44 Please insert the xref:installation_prepare_media[prepared installation media]
45 (for example, USB flash drive or CD-ROM) and boot from it.
46
47 TIP: Make sure that booting from the installation medium (for example, USB) is
48 enabled in your server's firmware settings. Secure boot needs to be disabled
49 when booting an installer prior to {pmg} version 8.1.
50
51 After choosing the correct entry (for example, Boot from USB) the {pmg} menu
52 will be displayed, and one of the following options can be selected:
53
54 image::images/installer/pmg-grub-menu.png[]
55
56 Install {pmg} (Graphical)::
57
58 Start normal installation.
59
60 TIP: It's possible to use the installation wizard with a keyboard only. Buttons
61 can be clicked by pressing the `ALT` key combined with the underlined character
62 from the respective button. For example, `ALT + N` to press a `Next` button.
63
64 Install {pmg} (Terminal UI)::
65
66 Starts the terminal-mode installation wizard. It provides the same overall
67 installation experience as the graphical installer, but has generally better
68 compatibility with very old and very new hardware.
69
70 Install {pmg} (Terminal UI, Serial Console)::
71
72 Starts the terminal-mode installation wizard, additionally setting up the Linux
73 kernel to use the (first) serial port of the machine for in- and output. This
74 can be used if the machine is completely headless and only has a serial console
75 available.
76
77 Both modes use the same code base for the actual installation process to
78 benefit from more than a decade of bug fixes and ensure feature parity.
79
80 TIP: The 'Terminal UI' option can be used in case the graphical installer does
81 not work correctly, due to e.g. driver issues.
82
83 Advanced Options: Install {pmg} (Graphical, Debug Mode)::
84
85 Starts the installation in debug mode. A console will be opened at several
86 installation steps. This helps to debug the situation if something goes wrong.
87 To exit a debug console, press `CTRL-D`. This option can be used to boot a live
88 system with all basic tools available. You can use it, for example, to repair a
89 degraded ZFS 'rpool' or fix the bootloader for an existing {pmg} setup.
90
91 Advanced Options: Install {pmg} (Terminal UI, Debug Mode)::
92
93 Same as the graphical debug mode, but preparing the system to run the
94 terminal-based installer instead.
95
96 Advanced Options: Install {pmg} (Serial Console Debug Mode)::
97
98 Same the terminal-based debug mode, but additionally sets up the Linux kernel to
99 use the (first) serial port of the machine for in- and output.
100
101 Advanced Options: Rescue Boot::
102
103 With this option you can boot an existing installation. It searches all attached
104 hard disks. If it finds an existing installation, it boots directly into that
105 disk using the Linux kernel from the ISO. This can be useful if there are
106 problems with the bootloader (GRUB/`systemd-boot`) or the BIOS/UEFI is unable to
107 read the boot block from the disk.
108
109 Advanced Options: Test Memory (memtest86+)::
110
111 Runs `memtest86+`. This is useful to check if the memory is functional and free
112 of errors. Secure Boot must be turned off in the UEFI firmware setup utility to
113 run this option.
114
115 You normally select *Install {pmg} (Graphical)* to start the installation.
116 image::images/installer/pmg-select-target-disk.png[]
117
118 The first step is to read our EULA (End User License Agreement). Following
119 this, you can select the target hard disk(s) for the installation.
120
121 CAUTION: By default, the whole server is used and all existing data is removed.
122 Make sure there is no important data on the server before proceeding with the
123 installation.
124
125 The `Options` button lets you select the target file system, which
126 defaults to `ext4`. The installer uses LVM if you select
127 `ext4` or `xfs` as a file system, and offers additional options to
128 restrict LVM space (see <<advanced_lvm_options,below>>)
129
130 If you have more than one disk, you can also use ZFS as a file system.
131 ZFS supports several software RAID levels, which is particularly useful
132 if you do not have a hardware RAID controller. The `Options` button
133 lets you choose the ZFS RAID level and select which disks will be used.
134
135 WARNING: ZFS on top of any hardware RAID is not supported and can result in data
136 loss.
137
138 image::images/installer/pmg-select-location.png[]
139
140 The next page asks for basic configuration options like your
141 location, timezone, and keyboard layout. The location is used to
142 select a nearby download server, in order to increase the speed of updates.
143 The installer is usually able to auto-detect these settings, so you only need to
144 change them in rare situations when auto-detection fails, or when you want to
145 use a keyboard layout not commonly used in your country.
146
147 image::images/installer/pmg-set-password.png[]
148
149 You then need to specify an email address and the superuser (root)
150 password. The password must have at least 5 characters, but we highly
151 recommend to use stronger passwords - here are some guidelines:
152
153 - Use a minimum password length of 12 to 14 characters.
154
155 - Include lowercase and uppercase alphabetic characters, numbers and symbols.
156
157 - Avoid character repetition, keyboard patterns, dictionary words, letter or
158 number sequences, usernames, relative or pet names, romantic links (current
159 or past) and biographical information (e.g., ID numbers, ancestors' names or
160 dates).
161
162 It is sometimes necessary to send notification to the system administrator, for
163 example:
164
165 - Information about available package updates.
166
167 - Error messages from periodic cron jobs.
168
169 All those notification mails will be sent to the specified email address.
170
171 image::images/installer/pmg-setup-network.png[]
172
173 The next step is the network configuration. Please note that you can use either
174 IPv4 or IPv6 here, but not both. If you want to configure a dual stack node,
175 you can easily do that after the installation.
176
177 image::images/installer/pmg-summary.png[]
178
179 When you press `Next`, you will see an overview of your entered configuration.
180 Please re-check every setting, you can still use the `Previous` button to go
181 back and edit any settings.
182
183 After clicking `Install`, the installer will begin to format and copy packages
184 to the target disk(s).
185
186 image::images/installer/pmg-installation.png[]
187
188 Copying the packages usually takes several minutes. When this is
189 finished, you can reboot the server.
190
191 If the installation failed, check out specific errors on the second TTY
192 (`CTRL + ALT + F2') and ensure that the systems meets the
193 xref:install_minimal_requirements[minimum requirements]. If the installation
194 is still not working, look at the xref:getting_help[how to get help chapter].
195
196 Further configuration is done via the {pmg} web interface:
197
198 [thumbnail="pmg-gui-login-window.png"]
199
200 . Point your browser to the IP address given during the installation
201 (https://youripaddress:8006).
202
203 . Log in and upload your subscription key.
204 +
205 NOTE: The default login is "root", and the password is the one chosen during the
206 installation.
207
208 . Check the IP configuration and hostname.
209
210 . Check the timezone.
211
212 . Check your xref:firewall_settings[Firewall settings].
213
214 . Configure {pmg} to forward the incoming SMTP traffic to your mail
215 server ('Configuration/Mail Proxy/Default Relay') - 'Default
216 Relay' is your email server.
217
218 . Configure your email server to send all outgoing messages through
219 your {pmg} ('Smart Host', port 26 by default).
220
221 For detailed deployment scenarios see chapter
222 xref:chapter_deployment[Planning for Deployment].
223
224 After the installation, you have to route all your incoming and
225 outgoing email traffic to {pmg}. For incoming traffic, you
226 have to configure your firewall and/or DNS settings. For outgoing
227 traffic you need to change the existing email server configuration.
228
229
230 [[advanced_lvm_options]]
231 Advanced LVM Configuration Options
232 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
233
234 The installer creates a Volume Group (VG) called `pmg`, and additional
235 Logical Volumes (LVs) called `root` and `swap`. The size of
236 those volumes can be controlled with:
237
238 `hdsize`::
239
240 Defines the total disk size to be used. This way you can save free
241 space on the disk for further partitioning (i.e. for an additional PV
242 and VG on the same disk that can be used for LVM storage).
243
244 `swapsize`::
245
246 Defines the size of the `swap` volume. The default is the size of the
247 installed memory. The minimum is 4 GB and the maximum is 8 GB. The resulting
248 value cannot be greater than `hdsize/8`.
249
250 `minfree`::
251
252 Defines the amount of free space that should be left in the LVM volume group
253 `pmg`. With more than 128GB storage available, the default is 16GB, otherwise
254 `hdsize/8` will be used.
255 +
256 NOTE: LVM requires free space in the VG for snapshot creation (not
257 required for lvmthin snapshots).
258
259
260 ZFS Performance Tips
261 ~~~~~~~~~~~~~~~~~~~~
262
263 ZFS works best with a lot of memory. If you intend to use ZFS make sure to have
264 enough RAM available for it. A good calculation is 4GB plus 1GB RAM for each TB
265 RAW disk space.
266
267 ZFS can use a dedicated drive as write cache, called the ZFS Intent Log (ZIL).
268 Use a fast drive (SSD) for it. It can be added after installation with the
269 following command:
270
271 ---
272 # zpool add <pool-name> log </dev/path_to_fast_ssd>
273 ---
274
275 [[pmg_install_on_debian]]
276 Install {pmg} on Debian
277 -----------------------
278
279 {pmg} ships as a set of Debian packages, so you can install it
280 on top of a normal Debian installation. After configuring the
281 xref:pmg_package_repositories[package repositories], you need to run:
282
283 [source,bash]
284 ----
285 apt update
286 apt install proxmox-mailgateway
287 ----
288
289 Installing on top of an existing Debian installation seems easy, but
290 it assumes that you have correctly installed the base system, and you
291 know how you want to configure and use the local storage. Network
292 configuration is also completely up to you.
293
294 NOTE: In general, this is not trivial, especially when you use LVM or
295 ZFS.
296
297
298 [[pmg_install_on_debian_container]]
299 Install {pmg} as a Linux Container Appliance
300 --------------------------------------------
301
302 {pmg} can also run inside a Debian-based LXC
303 instance. In order to keep the set of installed software, and thus the
304 necessary updates minimal, you can use the `proxmox-mailgateway-container`
305 meta-package. This does not depend on any Linux kernel, firmware, or components
306 used for booting from bare-metal, like GRUB.
307
308 A ready-to-use appliance template is available through the `mail` section of the
309 https://www.proxmox.com/proxmox-virtual-environment/overview[Proxmox VE]
310 appliance manager, so if you already use Proxmox VE, you can set up a {pmg}
311 instance in minutes.
312
313 NOTE: It's recommended to use a static network configuration. If DHCP must be
314 used, ensure that the container always leases the same IP, for example, by
315 reserving one with the container's network MAC address.
316
317 Additionally, you can install this on top of a container-based Debian
318 installation. After configuring the
319 xref:pmg_package_repositories[package repositories], you need to run:
320
321 [source,bash]
322 ----
323 apt update
324 apt install proxmox-mailgateway-container
325 ----
326
327 [[pmg_package_repositories]]
328 Package Repositories
329 --------------------
330
331 {pmg} uses http://en.wikipedia.org/wiki/Advanced_Packaging_Tool[APT] as its
332 package management tool like any other Debian-based system.
333
334 Repositories in {pmg}
335 ~~~~~~~~~~~~~~~~~~~~~
336
337 Repositories are a collection of software packages. They can be used to install
338 new software, but are also important to get new updates.
339
340 NOTE: You need valid Debian and Proxmox repositories to get the latest
341 security updates, bug fixes and new features.
342
343 APT Repositories are defined in the file `/etc/apt/sources.list` and in `.list`
344 files placed in `/etc/apt/sources.list.d/`.
345
346 Repository Management
347 ^^^^^^^^^^^^^^^^^^^^^
348
349 [thumbnail="pmg-gui-admin-repositories.png"]
350
351 Since {pmg} 7.0 you can check the repository state in the web interface. The
352 'Dashboard' shows a high level status overview, while the separate 'Repository'
353 panel (accessible via 'Administration') shows in-depth status and list of all
354 configured repositories.
355
356 Basic repository management, for example, activating or deactivating a
357 repository, is also supported.
358
359 Sources.list
360 ^^^^^^^^^^^^
361
362 In a `sources.list` file, each line defines a package repository. The preferred
363 source must come first. Empty lines are ignored. A `#` character anywhere on a
364 line marks the remainder of that line as a comment. The available packages from
365 a repository are acquired by running `apt update`. Updates can be installed
366 directly using `apt`, or via the GUI (Administration -> Updates).
367
368 .File `/etc/apt/sources.list`
369 ----
370 # basic Debian repositories:
371 deb http://deb.debian.org/debian bookworm main contrib
372 deb http://deb.debian.org/debian bookworm-updates main contrib
373
374 # security updates
375 deb http://security.debian.org/debian-security bookworm-security main contrib
376
377 # Proxmox Mail Gateway repo required too - see below!
378 ----
379
380 {pmg} provides three different package repositories.
381
382
383 {pmg} Enterprise Repository
384 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
385
386 This is the default, stable and recommended repository, available for
387 all {pmg} subscription users. It contains the most stable packages,
388 and is suitable for production use. The `pmg-enterprise` repository is
389 enabled by default:
390
391 .File `/etc/apt/sources.list.d/pmg-enterprise.list`
392 ----
393 deb https://enterprise.proxmox.com/debian/pmg bookworm pmg-enterprise
394 ----
395
396 As soon as updates are available, the `root@pam` user is notified via
397 email about the newly available packages. From the GUI, the change-log of
398 each package can be viewed (if available), showing all details of the
399 update. Thus, you will never miss important security fixes.
400
401 Please note that you need a valid subscription key to access this
402 repository. We offer different support levels, which you can find further
403 details about at {pricing-url}.
404
405 NOTE: You can disable this repository by commenting out the above line
406 using a `#` (at the start of the line). This prevents error messages,
407 if you do not have a subscription key. Please configure the
408 `pmg-no-subscription` repository in this case.
409
410
411 {pmg} No-Subscription Repository
412 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
413
414 As the name suggests, you do not need a subscription key to access
415 this repository. It can be used for testing and non-production
416 use. It's not recommended to use this on production servers, as these
417 packages are not always heavily tested and validated.
418
419 We recommend configuring this repository in `/etc/apt/sources.list`.
420
421 .File `/etc/apt/sources.list`
422 ----
423 deb http://ftp.debian.org/debian bookworm main contrib
424 deb http://ftp.debian.org/debian bookworm-updates main contrib
425
426 # security updates
427 deb http://security.debian.org/debian-security bookworm-security main contrib
428
429 # PMG pmg-no-subscription repository provided by proxmox.com,
430 # NOT recommended for production use
431 deb http://download.proxmox.com/debian/pmg bookworm pmg-no-subscription
432 ----
433
434
435 {pmg} Test Repository
436 ~~~~~~~~~~~~~~~~~~~~~
437
438 Finally, there is a repository called `pmgtest`. This contains the
439 latest packages, and is heavily used by developers to test new
440 features. As with before, you can configure this using
441 `/etc/apt/sources.list` by adding the following line:
442
443 .sources.list entry for `pmgtest`
444 ----
445 deb http://download.proxmox.com/debian/pmg bookworm pmgtest
446 ----
447
448 WARNING: the `pmgtest` repository should only be used
449 for testing new features or bug fixes.
450
451
452 SecureApt
453 ~~~~~~~~~
454
455 We use GnuPG to sign the `Release` files inside these repositories,
456 and APT uses these signatures to verify that all packages are from a
457 trusted source.
458
459 The key used for verification is already installed, if you install from
460 our installation CD. If you install via another means, you can manually
461 download the key by executing the following command as root user:
462
463 ----
464 # wget https://enterprise.proxmox.com/debian/proxmox-release-bookworm.gpg -O /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg
465 ----
466
467 Verify the checksum afterwards with the `sha512sum` CLI tool:
468
469 ----
470 # sha512sum /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg
471 7da6fe34168adc6e479327ba517796d4702fa2f8b4f0a9833f5ea6e6b48f6507a6da403a274fe201595edc86a84463d50383d07f64bdde2e3658108db7d6dc87 /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg
472 ----
473
474 or the `md5sum` CLI tool:
475
476 ----
477 # md5sum /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg
478 41558dc019ef90bd0f6067644a51cf5b /etc/apt/trusted.gpg.d/proxmox-release-bookworm.gpg
479 ----
480
481
482 Debian Non-Free Repository
483 ~~~~~~~~~~~~~~~~~~~~~~~~~~
484
485 Certain software cannot be made available in the `main` and `contrib`
486 areas of the {debian} archives, since it does not adhere to the Debian
487 Free Software Guidelines (DFSG). These are distributed in the
488 {debian_nonfree_archive_area}. For {pmg} two packages from the `non-free` area
489 are needed in order to support the RAR archive format:
490
491 * `p7zip-rar` for matching xref:pmg_mailfilter_what[Archive Objects] in the
492 xref:chapter_mailfilter[Rule system]
493
494 * `libclamunrar` for detecting viruses in RAR archives.
495
496 To enable the `non-free` component, run `editor /etc/apt/sources.list` and
497 append `non-free` to the end of each `.debian.org` repository line.
498
499 Following this, you can install the required packages with:
500
501 ----
502 apt update
503 apt install libclamunrar p7zip-rar
504 ----
505
506
507 [[pmg_debian_firmware_repo]]
508 Debian Firmware Repository
509 ~~~~~~~~~~~~~~~~~~~~~~~~~
510 Starting with Debian Bookworm ({pmg} 8) non-free firmware (as defined by
511 https://www.debian.org/social_contract#guidelines[DFSG]) has been moved to the
512 newly created Debian repository component `non-free-firmware`.
513
514 Enable this repository if you want to set up
515 xref:pmg_firmware_cpu[Early OS Microcode Updates] or need additional
516 xref:pmg_firmware_runtime_files[Runtime Firmware Files] not already included in
517 the pre-installed package `pve-firmware`.
518
519 To be able to install packages from this component, run
520 `editor /etc/apt/sources.list`, append `non-free-firmware` to the end of each
521 `.debian.org` repository line and run `apt update`.