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