Administration
==============

The Administration GUI allows you to do common tasks
such as updating software packages, managing quarantine, viewing service
status, and managing mail queues. It also provides server statistics in
order to verify server health.


Server Administration
---------------------

Server status
~~~~~~~~~~~~~

[thumbnail="pmg-gui-server-status.png", big=1]

This page shows server statistics about CPU, memory, disk and network
usage. You can select the displayed time span on the upper right.

Administrators can open a terminal window using the 'Console'
button. It is also possible to trigger a server 'Restart' or
'Shutdown'.


Services
~~~~~~~~

[thumbnail="pmg-gui-service-status.png", big=1]

This panel lists all major services used for mail processing and
cluster synchronization. If necessary, you can start, stop or restart
them. The 'Syslog' button shows the system log filtered for the
selected service.

Please note that {pmg} uses {systemd} to manage services, so you can
also use the standard `systemctl` command line tool to manage or view
service status, for example:

-----
systemctl status postfix
-----


Updates
~~~~~~~

[thumbnail="pmg-gui-updates.png", big=1]

We release software updates on a regular basis, and it is recommended
to always run the latest available version. This page shows the
available updates, and administrators can run an upgrade by pressing
the 'Upgrade' button.

See section xref:pmg_package_repositories[Package Repositories] for
details abaout available package repositories.


Syslog and Tasks
~~~~~~~~~~~~~~~~

[thumbnail="pmg-gui-syslog.png", big=1]

The syslog page gives you a quick real-time log view. You can use the
xref:pmg_tracking_center[Tracking Center] to search the logs.


Quarantine
----------

Spam
~~~~

[thumbnail="pmg-gui-spam-quarantine.png", big=1]

This panel lets you inspect the mail quarantine. Emails can be safely
previewed and if desired, delivered to the original user.

The email preview on the web interface is very secure as malicious
code (attacking your operating system or email client) is removed by
{pmg}.


Virus
~~~~~

Allows administrators to inspect quarantined virus mails.


Attachment
~~~~~~~~~~

Allows administrators to inspect quarantined mails and download their
attachments or deliver/delete them.

NOTE: Use the options of the 'Remove attachment' action to control the Attachment Quarantine.


[[pmg_userblackwhitelist]]
User White- and Blacklist
~~~~~~~~~~~~~~~~~~~~~~~~~

This is mostly useful to debug or verify white- and blacklist user
settings. The administrator should not change these values because
users can manage this themselves.


[[pmg_tracking_center]]
Tracking Center
---------------

[thumbnail="pmg-gui-tracking-center.png", big=1]

Email processing is a complex task and involves several service
daemons. Each daemon logs information to the syslog service. The
problem is that a server analyzes many emails in parallel, so it is
usually very hard to find all logs corresponding to a specific mail.

The Tracking Center simplifies the search for
emails dramatically. We use highly optimized and safe Rust footnote:[A language
empowering everyone to build reliable and efficient software.
https://www.rust-lang.org/] code to search the available syslog data. This is
very fast and powerful, and works for sites processing several million emails
per day.

The result is a list of received mails, including the following data:

[cols="s,5d"]
|====
|Time | Timestamp of first found syslog entry.
|From | Envelope 'From' address (the sender).
|To   | The email receiver address.
|Status | Delivery status.
|Syslog | The corresponding syslog entries are shown if you double click such
entry, or if you press the '+' button on the left.
|====

You can specify filters, and most importantly you can set
a 'Start' and 'End' time. By default the start time is set to one hour
ago. If you still get too many entries, you can try to restrict
the search to a specific sender or receiver address, or search for a
specific text in the logs ('Filter' entry).

NOTE: Search is faster if you use a shorter time interval.

The 'Status' field summarizes what happened with an email. {pmg} is a
mail proxy, meaning that the proxy receives mails from outside,
processes them and finally sends the result to the receiver.

The first phase is receiving the mail. The proxy may reject the mail
early, or instead accepts the mail and feeds it into the filter. The filter
rules can block or accept the mail.

In the second phase, accepted mails need to be delivered to the
receiver. This action may also fail or succeed. 'Status'
combines the result from the first and second phase.

When before-queue filtering is enabled, we don't have the same delivery information as
with after-queue filtering. In this case, if the mail is accepted by the filter,
the status is shown as 'queued/accepted' instead of 'accepted/<status>'.

[options="header",cols="2s,1d,5d"]
|====
|Status |Phase |Description
|rejected             |1 | Email rejected (e.g. sender IP is listed on a IP blacklist)
|greylisted           |1 | Email temporarily rejected by greylisting
|queued/deferred      |1 | Internal Email was queued, still trying to deliver
|queued/bounced       |1 | Internal Email was queued but not accepted by the target email server (for example user unknown)
|queued/accepted      |1 | Email was accepted, no delivery information available (before-queue only, replaces accepted/<status>)
|quarantine           |1 | Email was moved to quarantine
|blocked              |1 | Email was blocked by filter rules
|accepted/deferred    |2 | Email accepted, still trying to deliver
|accepted/bounced     |2 | Email accepted but not accepted by the target email server (for example user unknown)
|accepted/delivered   |2 | Email accepted and delivered
|====


Postfix Queue Administration
----------------------------

TODO
