This is guix.de.info, produced by makeinfo version 6.8 from
guix.de.texi.

Copyright © 2012–2025 Ludovic Courtès
Copyright © 2013, 2014, 2016, 2024 Andreas Enge
Copyright © 2013 Nikita Karetnikov
Copyright © 2014, 2015, 2016 Alex Kost
Copyright © 2015, 2016 Mathieu Lirzin
Copyright © 2014 Pierre-Antoine Rault
Copyright © 2015 Taylan Ulrich Bayırlı/Kammer
Copyright © 2015, 2016, 2017, 2019, 2020, 2021, 2023, 2025 Leo Famulari
Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023 Ricardo
Wurmus
Copyright © 2016 Ben Woodcroft
Copyright © 2016, 2017, 2018, 2021 Chris Marusich
Copyright © 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2025 Efraim
Flashner
Copyright © 2016 John Darrington
Copyright © 2016, 2017 Nikita Gillmann
Copyright © 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025
Janneke Nieuwenhuizen
Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Julien Lepiller
Copyright © 2016 Alex ter Weele
Copyright © 2016, 2017, 2018, 2019, 2020, 2021 Christopher Baines
Copyright © 2017, 2018, 2019 Clément Lassieur
Copyright © 2017, 2018, 2020, 2021, 2022 Mathieu Othacehe
Copyright © 2017 Federico Beffa
Copyright © 2017, 2018, 2024, 2025 Carlo Zancanaro
Copyright © 2017 Thomas Danckaert
Copyright © 2017 humanitiesNerd
Copyright © 2017, 2021 Christine Lemmer-Webber
Copyright © 2017, 2018, 2019, 2020, 2021, 2022 Marius Bakke
Copyright © 2017, 2019, 2020, 2022 Hartmut Goebel
Copyright © 2017, 2019–2025 Maxim Cournoyer
Copyright © 2017–2022 Tobias Geerinckx-Rice
Copyright © 2017 George Clemmer
Copyright © 2017 Andy Wingo
Copyright © 2017, 2018, 2019, 2020, 2023, 2024, 2025 Arun Isaac
Copyright © 2017 nee
Copyright © 2018 Rutger Helling
Copyright © 2018, 2021, 2023, 2025 Oleg Pykhalov
Copyright © 2018 Mike Gerwitz
Copyright © 2018 Pierre-Antoine Rouby
Copyright © 2018, 2019 Gábor Boskovits
Copyright © 2018, 2019, 2020, 2022, 2023, 2024 Florian Pelz
Copyright © 2018 Laura Lazzati
Copyright © 2018 Alex Vong
Copyright © 2019 Josh Holland
Copyright © 2019, 2020 Diego Nicola Barbato
Copyright © 2019 Ivan Petkov
Copyright © 2019 Jakob L. Kreuze
Copyright © 2019 Kyle Andrews
Copyright © 2019 Alex Griffin
Copyright © 2019, 2020, 2021, 2022 Guillaume Le Vaillant
Copyright © 2020 Liliana Marie Prikler
Copyright © 2019, 2020, 2021, 2022, 2023 Simon Tournier
Copyright © 2020 Wiktor Żelazny
Copyright © 2020 Damien Cassou
Copyright © 2020 Jakub Kądziołka
Copyright © 2020 Jack Hill
Copyright © 2020 Naga Malleswari
Copyright © 2020, 2021 Brice Waegeneire
Copyright © 2020 R Veera Kumar
Copyright © 2020, 2021, 2022 Pierre Langlois
Copyright © 2020 pinoaffe
Copyright © 2020, 2023 André Batista
Copyright © 2020, 2021 Alexandru-Sergiu Marton
Copyright © 2020 raingloom
Copyright © 2020 Daniel Brooks
Copyright © 2020 John Soo
Copyright © 2020 Jonathan Brielmaier
Copyright © 2020 Edgar Vincent
Copyright © 2021, 2022 Maxime Devos
Copyright © 2021 B. Wilson
Copyright © 2021 Xinglu Chen
Copyright © 2021 Raghav Gururajan
Copyright © 2021 Domagoj Stolfa
Copyright © 2021 Hui Lu
Copyright © 2021 pukkamustard
Copyright © 2021 Alice Brenon
Copyright © 2021-2023 Josselin Poiret
Copyright © 2021, 2023 muradm
Copyright © 2021, 2022 Andrew Tropin
Copyright © 2021 Sarah Morgensen
Copyright © 2022 Remco van ’t Veer
Copyright © 2022 Aleksandr Vityazev
Copyright © 2022 Philip M^{c}Grath
Copyright © 2022 Karl Hallsby
Copyright © 2022 Justin Veilleux
Copyright © 2022 Reily Siegel
Copyright © 2022 Simon Streit
Copyright © 2022 (
Copyright © 2022 John Kehayias
Copyright © 2022⁠–⁠2023 Bruno Victal
Copyright © 2022 Ivan Vilata-i-Balaguer
Copyright © 2023-2025 Giacomo Leidi
Copyright © 2022 Antero Mejr
Copyright © 2023 Karl Hallsby
Copyright © 2023 Nathaniel Nicandro
Copyright © 2023 Tanguy Le Carrour
Copyright © 2023-2024 Zheng Junjie
Copyright © 2023 Brian Cully
Copyright © 2023 Felix Lechner
Copyright © 2023 Foundation Devices, Inc.
Copyright © 2023 Thomas Ieong
Copyright © 2023 Saku Laesvuori
Copyright © 2023 Graham James Addis
Copyright © 2023-2025 Tomas Volf
Copyright © 2024, 2025 Herman Rimm
Copyright © 2024 Matthew Trzcinski
Copyright © 2024 Richard Sent
Copyright © 2024 Dariqq
Copyright © 2024 Denis ’GNUtoo’ Carikli
Copyright © 2024 Fabio Natali
Copyright © 2024 Arnaud Daby-Seesaram
Copyright © 2024-2025 Nigko Yerden
Copyright © 2024 Troy Figiel
Copyright © 2024 Sharlatan Hellseher
Copyright © 2024 45mg
Copyright © 2024 Greg Hogan
Copyright © 2025 Sören Tempel
Copyright © 2025 Rostislav Svoboda
Copyright © 2025 Zacchaeus
Copyright © 2025 Sergio Pastor Pérez
Copyright © 2024 Evgeny Pisemsky
Copyright © 2025 jgart
Copyright © 2025 Artur Wroblewski
Copyright © 2025 Edouard Klein
Copyright © 2025 Rodion Goritskov
Copyright © 2025 dan
Copyright © 2025 Noé Lopez

   Es ist Ihnen gestattet, dieses Dokument zu vervielfältigen,
weiterzugeben und/oder zu verändern, unter den Bedingungen der GNU Free
Documentation License, entweder gemäß Version 1.3 der Lizenz oder (nach
Ihrer Option) einer späteren Version, die von der Free Software
Foundation veröffentlicht wurde, ohne unveränderliche Abschnitte, ohne
vorderen Umschlagtext und ohne hinteren Umschlagtext. Eine Kopie der
Lizenz finden Sie im Abschnitt mit dem Titel „GNU-Lizenz für freie
Dokumentation“.
INFO-DIR-SECTION Systemadministration
START-INFO-DIR-ENTRY
* Guix.de: (guix.de).        Installierte Software und Systemkonfigurationen
                               verwalten.
* guix package: (guix.de)guix package aufrufen.  Pakete installieren,
                                                   entfernen und
                                                   aktualisieren.
* guix gc: (guix.de)guix gc aufrufen.  Unbenutzten Plattenspeicher wieder
                                         freigeben.
* guix pull: (guix.de)guix pull aufrufen.  Die Liste verfügbarer Pakete
                                             aktualisieren.
* guix system: (guix.de)guix system aufrufen.  Die
                                                 Betriebssystemkonfiguration
                                                 verwalten.
* guix deploy: (guix.de)guix deploy aufrufen.  Betriebssystemkonfigurationen
                                                 entfernter Rechner verwalten.
END-INFO-DIR-ENTRY

INFO-DIR-SECTION Softwareentwicklung
START-INFO-DIR-ENTRY
* guix shell: (guix.de)guix shell aufrufen.  Software-Umgebungen erzeugen.
* guix environment: (guix.de)guix environment aufrufen.  Umgebungen für
                                                           Entwickler
                                                           erstellen
* guix build: (guix.de)guix build aufrufen.  Erstellen von Paketen.
* guix pack: (guix.de)guix pack aufrufen.  Bündel aus Binärdateien
                                             erstellen.
END-INFO-DIR-ENTRY


File: guix.de.info,  Node: Druckdienste,  Next: Desktop-Dienste,  Prev: X Window,  Up: Dienste

11.10.8 Druckdienste
--------------------

Das Modul ‘(gnu services cups)’ stellt eine Guix-Dienstdefinition für
den CUPS-Druckdienst zur Verfügung. Wenn Sie Druckerunterstützung zu
einem Guix-System hinzufügen möchten, dann fügen Sie einen
‘cups-service’-Dienst in die Betriebssystemdefinition ein.

 -- Variable: cups-service-type
     Der Diensttyp für den CUPS-Druckserver. Als Wert muss eine gültige
     CUPS-Konfiguration angegeben werden (siehe unten). Um die
     Voreinstellungen zu verwenden, schreiben Sie einfach nur:
          (service cups-service-type)

   Mit der CUPS-Konfiguration stellen Sie die grundlegenden Merkmale
Ihrer CUPS-Installation ein: Auf welcher Schnittstelle sie lauscht, wie
mit einem fehlgeschlagenen Druckauftrag umzugehen ist, wie viel in
Protokolle geschrieben werden soll und so weiter. Um einen Drucker
hinzuzufügen, müssen Sie jedoch die URL <http://localhost:631> besuchen
oder ein Werkzeug wie die Druckereinstellungsdienste von GNOME benutzen.
Die Vorgabe ist, dass beim Konfigurieren eines CUPS-Dienstes ein
selbstsigniertes Zertifikat erzeugt wird, um sichere Verbindungen mit
dem Druckserver zu ermöglichen.

   Nehmen wir an, Sie wollen die Weboberfläche von CUPS aktivieren und
Unterstützung für Epson-Drucker über das
‘epson-inkjet-printer-escpr’-Paket und für HP-Drucker über das
‘hplip-minimal’-Paket aktivieren. Sie können das auf diese Weise gleich
machen (dazu müssen Sie vorher angeben, dass das Modul ‘(gnu packages
cups)’ benutzt werden soll):

     (service cups-service-type
              (cups-configuration
                (web-interface? #t)
                (extensions
                  (list cups-filters epson-inkjet-printer-escpr hplip-minimal))))

     Anmerkung: Wenn Sie die Qt5-basierte grafische Benutzeroberfläche
     benutzen möchten, die dem hplip-Paket beiliegt, sollten Sie das
     ‘hplip’-Paket installieren, entweder in die Konfigurationsdatei
     Ihres Betriebssystems oder für Ihr Benutzerkonto.

   Im Folgenden sehen Sie die verfügbaren Konfigurationsparameter. Vor
jeder Parameterdefinition wird ihr Typ angegeben, zum Beispiel steht
‘Zeichenketten-Liste foo’ für einen Parameter ‘foo’, der als Liste von
Zeichenketten angegeben werden muss. Sie können die Konfiguration aber
auch in einer einzigen Zeichenkette angeben, wenn Sie eine alte
‘cupsd.conf’-Datei von einem anderen System weiterbenutzen möchten;
siehe das Abschnittsende für mehr Details.

   Die verfügbaren ‘cups-configuration’-Felder sind:

 -- cups-configuration-Parameter: „package“ cups
     Das CUPS-Paket.

 -- cups-configuration-Parameter: „package“-Liste extensions (Vorgabe:
          (list brlaser cups-filters epson-inkjet-printer-escpr
          foomatic-filters hplip-minimal splix))
     Treiber und andere Erweiterungen für das CUPS-Paket.

 -- cups-configuration-Parameter: „files-configuration“
          files-configuration
     Konfiguration, wo Protokolle abgelegt werden sollen, welche
     Verzeichnisse für Druckspoolerwarteschlangen benutzt werden sollen
     und ähnliche Berechtigungen erfordernde Konfigurationsparameter.

     Verfügbare Felder einer ‘files-configuration’ sind:

      -- files-configuration-Parameter: Protokollpfad access-log
          Hiermit wird der Dateiname des Zugriffsprotokolls („Access
          Log“) festgelegt. Wenn ein leerer Name angegeben wird, wird
          kein Protokoll erzeugt. Der Wert ‘stderr’ lässt
          Protokolleinträge in die Standardfehlerdatei schreiben, wenn
          das Druckplanungsprogramm im Vordergrund läuft, oder an den
          Systemprotokolldaemon (also Syslog), wenn es im Hintergrund
          läuft. Der Wert ‘syslog’ bewirkt, dass Protokolleinträge an
          den Systemprotokolldaemon geschickt werden. Der Servername
          darf in Dateinamen als die Zeichenkette ‘%s’ angegeben werden,
          so kann etwa ‘/var/log/cups/%s-access_log’ angegeben werden.

          Die Vorgabe ist ‘"/var/log/cups/access_log"’.

      -- files-configuration-Parameter: Dateiname cache-dir
          Wo CUPS zwischengespeicherte Daten ablegen soll.

          Die Vorgabe ist ‘"/var/cache/cups"’.

      -- files-configuration-Parameter: Zeichenkette config-file-perm
          Gibt die Berechtigungen für alle Konfigurationsdateien an, die
          das Planungsprogramm schreibt.

          Beachten Sie, dass auf die Berechtigungen der Datei
          printers.conf eine Maske gelegt wird, wodurch Zugriffe nur
          durch das planende Benutzerkonto erlaubt werden (in der Regel
          der Administratornutzer „root“). Der Grund dafür ist, dass
          Druckergeräte-URIs manchmal sensible Authentisierungsdaten
          enthalten, die nicht allgemein auf dem System bekannt sein
          sollten. Es gibt keine Möglichkeit, diese Sicherheitsmaßnahme
          abzuschalten.

          Die Vorgabe ist ‘"0640"’.

      -- files-configuration-Parameter: Protokollpfad error-log
          Hiermit wird der Dateiname des Fehlerprotokolls („Error Log“)
          festgelegt. Wenn ein leerer Name angegeben wird, wird kein
          Fehlerprotokoll erzeugt. Der Wert ‘stderr’ lässt
          Protokolleinträge in die Standardfehlerdatei schreiben, wenn
          das Planungsprogramm im Vordergrund läuft, oder an den
          Systemprotokolldaemon (also Syslog), wenn es im Hintergrund
          läuft. Der Wert ‘syslog’ bewirkt, dass Protokolleinträge an
          den Systemprotokolldaemon geschickt werden. Der Servername
          darf in Dateinamen als die Zeichenkette ‘%s’ angegeben werden,
          so kann etwa ‘/var/log/cups/%s-error_log’ angegeben werden.

          Die Vorgabe ist ‘"/var/log/cups/error_log"’.

      -- files-configuration-Parameter: Zeichenkette fatal-errors
          Gibt an, bei welchen Fehlern das Druckplanungsprogramm
          terminieren soll. Die Zeichenketten für die Arten sind:

          ‘none’
               Keine Fehler führen zur Beendigung.

          ‘all’
               Jeder der im Folgenden aufgeführten Fehler terminiert den
               Druckplaner.

          ‘browse’
               Fehler bei der Suche während der Initialisierung
               terminieren den Druckplaner, zum Beispiel wenn keine
               Verbindung zum DNS-SD-Daemon aufgebaut werden kann.

          ‘config’
               Syntaxfehler in der Konfigurationsdatei terminieren den
               Druckplaner.

          ‘listen’
               Fehler beim Lauschen oder Portfehler (entsprechend der
               Direktiven „Listen“ oder „Port“) terminieren den
               Druckplaner; ausgenommen sind Fehler bei IPv6 auf
               Loopback- oder ‘any’-Adressen.

          ‘log’
               Fehler beim Erzeugen von Protokolldateien terminieren den
               Druckplaner.

          ‘permissions’
               Falsche Zugriffsberechtigungen auf zum Starten benötigten
               Dateien terminieren den Druckplaner, zum Beispiel wenn
               auf gemeinsame TLS-Zertifikats- und Schlüsseldateien von
               allen lesend zugegriffen werden kann.

          Die Vorgabe ist ‘"all -browse"’.

      -- files-configuration-Parameter: Boolescher-Ausdruck file-device?
          Gibt an, welches Pseudogerät für neue Druckerwarteschlangen
          benutzt werden kann. Die URI <file:///dev/null> wird immer
          zugelassen.

          Vorgegeben ist ‘#f’.

      -- files-configuration-Parameter: Zeichenkette group
          Gibt Namen oder Identifikator der Benutzergruppe an, die zum
          Ausführen von externen Programmen verwendet wird.

          Die Vorgabe ist ‘"lp"’.

      -- files-configuration-Parameter: Zeichenkette log-file-group
          Gibt Namen oder Identifikator der Benutzergruppe an, mit der
          Protokolldateien gespeichert werden.

          Die Vorgabe ist ‘"lpadmin"’.

      -- files-configuration-Parameter: Zeichenkette log-file-perm
          Gibt die Berechtigungen für alle Protokolldateien an, die das
          Planungsprogramm schreibt.

          Die Vorgabe ist ‘"0644"’.

      -- files-configuration-Parameter: log-location page-log
          Hiermit wird der Dateiname des Seitenprotokolls („Page Log“)
          festgelegt. Wenn ein leerer Name angegeben wird, wird kein
          Seitenprotokoll erzeugt. Der Wert ‘stderr’ lässt
          Protokolleinträge in die Standardfehlerdatei schreiben, wenn
          das Planungsprogramm im Vordergrund läuft, oder an den
          Systemprotokolldaemon (also Syslog), wenn es im Hintergrund
          läuft. Der Wert ‘syslog’ bewirkt, dass Protokolleinträge an
          den Systemprotokolldaemon geschickt werden. Der Servername
          darf in Dateinamen als die Zeichenkette ‘%s’ angegeben werden,
          so kann etwa ‘/var/log/cups/%s-page_log’ angegeben werden.

          Die Vorgabe ist ‘"/var/log/cups/page_log"’.

      -- files-configuration-Parameter: Zeichenkette remote-root
          Gibt den Benutzernamen an, der für unauthentifizierte Zugriffe
          durch Clients verwendet wird, die sich als der
          Administratornutzer „root“ anmelden. Vorgegeben ist ‘remroot’.

          Die Vorgabe ist ‘"remroot"’.

      -- files-configuration-Parameter: Dateiname request-root
          Gibt das Verzeichnis an, in dem Druckaufträge und andere Daten
          zu HTTP-Anfragen abgelegt werden.

          Die Vorgabe ist ‘"/var/spool/cups"’.

      -- files-configuration-Parameter: Isolierung sandboxing
          Gibt die Stufe der Sicherheitsisolierung („Sandboxing“) an,
          die auf Druckfilter, Hintergrundsysteme (Backends) und andere
          Kindprozesse des Planungsprogramms angewandt wird; entweder
          ‘relaxed’ („locker“) oder ‘strict’ („strikt“). Diese Direktive
          wird zurzeit nur auf macOS benutzt/unterstützt.

          Die Vorgabe ist ‘strict’.

      -- files-configuration-Parameter: Dateiname server-keychain
          Gibt an, wo TLS-Zertifikate und private Schlüssel gespeichert
          sind. CUPS wird in diesem Verzeichnis öffentliche und private
          Schlüssel suchen: ‘.crt’-Dateien für PEM-kodierte Zertifikate
          und zugehörige ‘.key’-Dateien für PEM-kodierte private
          Schlüssel.

          Die Vorgabe ist ‘"/etc/cups/ssl"’.

      -- files-configuration-Parameter: Dateiname server-root
          Gibt das Verzeichnis an, das die Serverkonfigurationsdateien
          enthält.

          Die Vorgabe ist ‘"/etc/cups"’.

      -- files-configuration-Parameter: Boolescher-Ausdruck
               sync-on-close?
          Gibt an, ob das Planungsprogramm fsync(2) aufrufen soll,
          nachdem es in Konfigurations- oder Zustandsdateien geschrieben
          hat.

          Vorgegeben ist ‘#f’.

      -- files-configuration-Parameter:
               Leerzeichengetrennte-Zeichenketten-Liste system-group
          Gibt die Benutzergruppe(n) an, die als die ‘@SYSTEM’-Gruppen
          für die Authentisierung benutzt werden können.

      -- files-configuration-Parameter: Dateiname temp-dir
          Gibt das Verzeichnis an, in das temporäre Dateien gespeichert
          werden.

          Die Vorgabe ist ‘"/var/spool/cups/tmp"’.

      -- files-configuration-Parameter: Zeichenkette user
          Gibt den Benutzernamen oder -identifikator an, mit dessen
          Benutzerkonto externe Programme ausgeführt werden.

          Die Vorgabe ist ‘"lp"’.

      -- files-configuration-Parameter: Zeichenkette set-env
          Legt die angegebene Umgebungsvariable auf einen Wert (englisch
          „Value“) fest, die an Kindprozesse übergeben wird.

          Die Vorgabe ist ‘"variable value"’.

 -- cups-configuration-Parameter: Zugriffsprotokollstufe
          access-log-level
     Gibt an, mit welcher Detailstufe das Protokoll in der
     AccessLog-Datei geführt wird. Bei der Stufe ‘config’ wird
     protokolliert, wenn Drucker und Klassen hinzugefügt, entfernt oder
     verändert werden, und wenn auf Konfigurationsdateien zugegriffen
     oder sie aktualisiert werden. Bei der Stufe ‘actions’ wird
     protokolliert, wenn Druckaufträge eingereicht, gehalten,
     freigegeben, geändert oder abgebrochen werden sowie alles, was bei
     ‘config’ Protokollierung auslöst. Bei der Stufe ‘all’ wird jede
     Anfrage protokolliert.

     Die Vorgabe ist ‘actions’.

 -- cups-configuration-Parameter: Boolescher-Ausdruck auto-purge-jobs?
     Gibt an, ob Daten über den Auftragsverlauf automatisch gelöscht
     werden sollen, wenn Sie nicht mehr zur Berechnung von
     Druckkontingenten benötigt werden.

     Vorgegeben ist ‘#f’.

 -- cups-configuration-Parameter: Kommagetrennte-Zeichenketten-Liste
          browse-dns-sd-sub-types
     Gibt eine Liste von DNS-SD-Subtypen an, die anderen für jeden
     geteilten Drucker mitgeteilt werden sollen.

     Vorgegeben ist ‘(list "_cups" "_print" "_universal")’, wodurch den
     Netzwerk-Clients mitgeteilt wird, dass sowohl Teilen zwischen CUPS
     als auch IPP Everywhere, AirPrint und Mopria unterstützt werden.

 -- cups-configuration-Parameter: Protokolle-zur-lokalen-Suche
          browse-local-protocols
     Gibt an, welche Protokolle zum lokalen Teilen („Freigeben“) von
     Druckern benutzt werden sollen.

     Die Vorgabe ist ‘dnssd’.

 -- cups-configuration-Parameter: Boolescher-Ausdruck browse-web-if?
     Gibt an, ob die Weboberfläche von CUPS anderen mitgeteilt wird.

     Vorgegeben ist ‘#f’.

 -- cups-configuration-Parameter: Boolescher-Ausdruck browsing?
     Gibt an, ob geteilte Drucker bei Druckersuchen mitgeteilt werden.

     Vorgegeben ist ‘#f’.

 -- cups-configuration-Parameter: Voreingestelle-Authentifizierungsart
          default-auth-type
     Gibt an, wie man nach Voreinstellung authentifiziert wird.

     Die Vorgabe ist ‘Basic’.

 -- cups-configuration-Parameter: Voreingestellte-Verschlüsselung
          default-encryption
     Gibt an, ob für authentifizierte Anfragen Verschlüsselung benutzt
     wird.

     Die Vorgabe ist ‘Required’.

 -- cups-configuration-Parameter: Zeichenkette default-language
     Gibt an, welche Sprache für Text und Weboberfläche voreingestellt
     benutzt werden soll.

     Die Vorgabe ist ‘"en"’.

 -- cups-configuration-Parameter: Zeichenkette default-paper-size
     Gibt das voreingestellte Papierformat für neue Druckwarteschlangen
     an. Bei ‘"Auto"’ wird eine der Locale entsprechende Voreinstellung
     gewählt, während bei ‘"None"’ kein Papierformat voreingestellt ist.
     Verfügbare Formatbezeichnungen sind typischerweise ‘"Letter"’ oder
     ‘"A4"’.

     Die Vorgabe ist ‘"Auto"’.

 -- cups-configuration-Parameter: Zeichenkette default-policy
     Gibt die voreingestellte Zugriffsrichtlinie an, die benutzt werden
     soll.

     Die Vorgabe ist ‘"default"’.

 -- cups-configuration-Parameter: Boolescher-Ausdruck default-shared?
     Gibt an, ob lokale Drucker nach Voreinstellung geteilt werden
     sollen.

     Die Vorgabe ist ‘#t’.

 -- cups-configuration-Parameter: Nichtnegative-ganze-Zahl
          dirty-clean-interval
     Gibt an, mit welcher Verzögerung Konfigurations- und
     Zustandsdateien aktualisiert werden sollen. Der Wert 0 lässt die
     Aktualisierung so bald wie möglich stattfinden, in der Regel nach
     ein paar Millisekunden.

     Die Vorgabe ist ‘30’.

 -- cups-configuration-Parameter: Fehlerrichtlinie error-policy
     Gibt an, wie beim Auftreten eines Fehlers verfahren werden soll.
     Mögliche Werte sind ‘abort-job’, wodurch der fehlgeschlagene
     Druckauftrag verworfen wird, ‘retry-job’, wodurch der Druckauftrag
     später erneut versucht wird, ‘retry-current-job’, wodurch der
     fehlgeschlagene Druckauftrag sofort erneut versucht wird, und
     ‘stop-printer’, wodurch der Drucker angehalten wird.

     Die Vorgabe ist ‘stop-printer’.

 -- cups-configuration-Parameter: Nichtnegative-ganze-Zahl filter-limit
     Gibt die Maximalkosten von Filtern an, die nebenläufig ausgeführt
     werden, wodurch Probleme durch Platten-, Arbeitsspeicher- und
     Prozessorressourcennutzung minimiert werden können. Eine
     Beschränkung von 0 deaktiviert die Filterbeschränkung. Ein
     durchschnittlicher Druck mit einem Nicht-PostScript-Drucker
     erfordert eine Filterbeschränkung von mindestens ungefähr 200. Ein
     PostScript-Drucker erfordert eine halb so hohe Filterbeschränkung
     (100). Wird die Beschränkung unterhalb dieser Schwellwerte
     angesetzt, kann das Planungsprogramm effektiv nur noch einen
     einzelnen Druckauftrag gleichzeitig abarbeiten.

     Die Vorgabe ist ‘0’.

 -- cups-configuration-Parameter: Nichtnegative-ganze-Zahl filter-nice
     Gibt die Planungspriorität von Filtern an, die zum Drucken eines
     Druckauftrags ausgeführt werden. Der nice-Wert kann zwischen 0, der
     höchsten Priorität, und 19, der niedrigsten Priorität, liegen.

     Die Vorgabe ist ‘0’.

 -- cups-configuration-Parameter: Rechnernamensauflösungen
          host-name-lookups
     Gibt an, ob inverse Namensauflösungen („Reverse Lookups“) bei sich
     verbindenden Clients durchgeführt werden sollen. Die Einstellung
     ‘double’ lässt ‘cupsd’ verifizieren, dass der anhand der Adresse
     aufgelöste Rechnername zu einer der für den Rechnernamen
     zurückgelieferten Adressen passt. „Double“-Namensauflösungen
     verhindern auch, dass sich Clients mit unregistrierten Adressen mit
     Ihrem Server verbinden können. Setzen Sie diese Option nur dann auf
     ‘#t’ oder ‘double’, wenn es unbedingt notwendig ist.

     Vorgegeben ist ‘#f’.

 -- cups-configuration-Parameter: Nichtnegative-ganze-Zahl
          job-kill-delay
     Gibt die Anzahl an Sekunden an, wie lange vor dem Abwürgen der mit
     einem abgebrochenen oder gehaltenen Druckauftrag assoziierten
     Filter- und Hintergrundprozesse (dem „Backend“) gewartet wird.

     Die Vorgabe ist ‘30’.

 -- cups-configuration-Parameter: Nichtnegative-ganze-Zahl
          job-retry-interval
     Gibt das Zeitintervall zwischen erneuten Versuchen von
     Druckaufträgen in Sekunden an. Dies wird in der Regel für
     Fax-Warteschlangen benutzt, kann aber auch für normale
     Druckwarteschlangen benutzt werden, deren Fehlerrichtlinie
     ‘retry-job’ oder ‘retry-current-job’ ist.

     Die Vorgabe ist ‘30’.

 -- cups-configuration-Parameter: Nichtnegative-ganze-Zahl
          job-retry-limit
     Gibt die Anzahl an, wie oft ein Druckauftrag erneut versucht wird.
     Dies wird in der Regel für Fax-Warteschlangen benutzt, kann aber
     auch für normale Druckwarteschlangen benutzt werden, deren
     Fehlerrichtlinie ‘retry-job’ oder ‘retry-current-job’ ist.

     Die Vorgabe ist ‘5’.

 -- cups-configuration-Parameter: Boolescher-Ausdruck keep-alive?
     Gibt an, ob HTTP-„keep-alive“ für Verbindungen unterstützt wird.

     Die Vorgabe ist ‘#t’.

 -- cups-configuration-Parameter: Nichtnegative-ganze-Zahl
          limit-request-body
     Gibt die Maximalgröße von zu druckenden Dateien, IPP-Anfragen und
     HTML-Formulardaten an. Eine Beschränkung von 0 deaktiviert die
     Beschränkung.

     Die Vorgabe ist ‘0’.

 -- cups-configuration-Parameter: Mehrzeilige-Zeichenketten-Liste listen
     Lauscht auf den angegebenen Schnittstellen auf Verbindungen.
     Gültige Werte haben die Form ADRESSE:PORT, wobei die ADRESSE
     entweder eine von eckigen Klammern umschlossene IPv6-Adresse, eine
     IPv4-Adresse oder ‘*’ ist; letztere steht für alle Adressen. Werte
     können auch Dateinamen lokaler UNIX-Sockets sein. Die
     Listen-Direktive ähnelt der Port-Direktive, macht es aber möglich,
     den Zugriff für bestimmte Schnittstellen oder Netzwerke
     einzuschränken.

 -- cups-configuration-Parameter: „location-access-controls“-Liste
          location-access-controls
     Gibt eine Liste zusätzlicher Zugriffssteuerungen („Access
     Controls“) an.

     Verfügbare ‘location-access-controls’-Felder sind:

      -- location-access-controls-Parameter: Dateiname path
          Gibt den URI-Pfad an, für den die Zugriffssteuerung gilt.

      -- location-access-controls-Parameter: Zugriffssteuerungs-Liste
               access-controls
          Zugriffssteuerungen für jeden Zugriff auf diesen Pfad, im
          selben Format wie die ‘access-controls’ bei
          ‘operation-access-control’.

          Die Vorgabe ist ‘'()’.

      -- location-access-controls-Parameter:
               „method-access-controls“-Liste method-access-controls
          Zugriffssteuerungen für methodenspezifische Zugriffe auf
          diesen Pfad.

          Die Vorgabe ist ‘'()’.

          Verfügbare ‘method-access-controls’-Felder sind:

           -- method-access-controls-Parameter: Boolescher-Ausdruck
                    reverse?
               Falls dies ‘#t’ ist, gelten die Zugriffssteuerungen für
               alle Methoden außer den aufgelisteten Methoden.
               Andernfalls gelten sie nur für die aufgelisteten
               Methoden.

               Vorgegeben ist ‘#f’.

           -- method-access-controls-Parameter: Methoden-Liste methods
               Methoden, für die diese Zugriffssteuerung gilt.

               Die Vorgabe ist ‘'()’.

           -- method-access-controls-Parameter: Zugriffssteuerungs-Liste
                    access-controls
               Zugriffssteuerungsdirektiven als eine Liste von
               Zeichenketten. Jede Zeichenkette steht für eine Direktive
               wie z.B. ‘"Order allow,deny"’.

               Die Vorgabe ist ‘'()’.

 -- cups-configuration-Parameter: Nichtnegative-ganze-Zahl
          log-debug-history
     Gibt die Anzahl der Nachrichten zur Fehlersuche an, die für
     Protokolle vorgehalten werden, wenn ein Fehler in einem
     Druckauftrag auftritt. Nachrichten zur Fehlersuche werden
     unabhängig von der LogLevel-Einstellung protokolliert.

     Die Vorgabe ist ‘100’.

 -- cups-configuration-Parameter: Protokollstufe log-level
     Gibt die Stufe der Protokollierung in die ErrorLog-Datei an. Der
     Wert ‘none’ stoppt alle Protokollierung, während ‘debug2’ alles
     protokollieren lässt.

     Die Vorgabe ist ‘info’.

 -- cups-configuration-Parameter: Protokollzeitformat log-time-format
     Gibt das Format von Datum und Uhrzeit in Protokolldateien an. Der
     Wert ‘standard’ lässt ganze Sekunden ins Protokoll schreiben,
     während bei ‘usecs’ Mikrosekunden protokolliert werden.

     Die Vorgabe ist ‘standard’.

 -- cups-configuration-Parameter: Nichtnegative-ganze-Zahl max-clients
     Gibt die Maximalzahl gleichzeitig bedienter Clients an, die vom
     Planer zugelassen werden.

     Die Vorgabe ist ‘100’.

 -- cups-configuration-Parameter: Nichtnegative-ganze-Zahl
          max-clients-per-host
     Gibt die Maximalzahl gleichzeitiger Clients von derselben Adresse
     an, die zugelassen werden.

     Die Vorgabe ist ‘100’.

 -- cups-configuration-Parameter: Nichtnegative-ganze-Zahl max-copies
     Gibt die Maximalzahl der Kopien an, die ein Nutzer vom selben
     Druckauftrag ausdrucken lassen kann.

     Die Vorgabe ist ‘9999’.

 -- cups-configuration-Parameter: Nichtnegative-ganze-Zahl max-hold-time
     Gibt die maximale Zeitdauer an, die ein Druckauftrag im
     Haltezustand ‘indefinite’ bleiben darf, bevor er abgebrochen wird.
     Ein Wert von 0 deaktiviert ein Abbrechen gehaltener Druckaufträge.

     Die Vorgabe ist ‘0’.

 -- cups-configuration-Parameter: Nichtnegative-ganze-Zahl max-jobs
     Gibt die Maximalzahl gleichzeitiger Druckaufträge an, die noch
     zugelassen wird. Wenn Sie es auf 0 setzen, wird die Anzahl
     Druckaufträge _nicht_ beschränkt.

     Die Vorgabe ist ‘500’.

 -- cups-configuration-Parameter: Nichtnegative-ganze-Zahl
          max-jobs-per-printer
     Gibt die Maximalzahl gleichzeitiger Druckaufträge an, die pro
     Drucker zugelassen werden. Ein Wert von 0 lässt bis zu
     ‘max-jobs’-viele Druckaufträge pro Drucker zu.

     Die Vorgabe ist ‘0’.

 -- cups-configuration-Parameter: Nichtnegative-ganze-Zahl
          max-jobs-per-user
     Gibt die Maximalzahl gleichzeitiger Druckaufträge an, die pro
     Benutzer zugelassen werden. Ein Wert von 0 lässt bis zu
     ‘max-jobs’-viele Druckaufträge pro Benutzer zu.

     Die Vorgabe ist ‘0’.

 -- cups-configuration-Parameter: Nichtnegative-ganze-Zahl max-job-time
     Gibt die maximale Anzahl an, wie oft das Drucken eines
     Druckauftrags versucht werden kann, bis er abgebrochen wird, in
     Sekunden. Wenn Sie es auf 0 setzen, wird das Abbrechen
     „feststeckender“ Druckaufträge deaktiviert.

     Die Vorgabe ist ‘10800’.

 -- cups-configuration-Parameter: Nichtnegative-ganze-Zahl max-log-size
     Gibt die Maximalgröße der Protokolldateien an, bevor sie rotiert
     werden, in Bytes. Beim Wert 0 wird Protokollrotation deaktiviert.

     Die Vorgabe ist ‘1048576’.

 -- cups-configuration-Parameter: Nichtnegative-ganze-Zahl
          max-subscriptions
     Gibt die Maximalzahl gleichzeitiger
     Benachrichtigungs-Subskriptionen an, die noch zugelassen wird. Wenn
     Sie es auf ‘0’ setzen, wird die Anzahl Benachrichtigungsanmeldungen
     _nicht_ beschränkt.

     Die Vorgabe ist ‘0’.

 -- cups-configuration-Parameter: Nichtnegative-ganze-Zahl
          max-subscriptions-per-job
     Gibt die Maximalzahl gleichzeitiger
     Benachrichtigungs-Subskriptionen an, die pro Druckauftrag
     zugelassen werden. Ein Wert von ‘0’ lässt bis zu
     ‘max-subscriptions’-viele Benachrichtigungsanmeldungen pro
     Druckauftrag zu.

     Die Vorgabe ist ‘0’.

 -- cups-configuration-Parameter: Nichtnegative-ganze-Zahl
          max-subscriptions-per-printer
     Gibt die Maximalzahl gleichzeitiger
     Benachrichtigungs-Subskriptionen an, die pro Drucker zugelassen
     werden. Ein Wert von ‘0’ lässt bis zu ‘max-subscriptions’-viele
     Benachrichtigungsanmeldungen pro Drucker zu.

     Die Vorgabe ist ‘0’.

 -- cups-configuration-Parameter: Nichtnegative-ganze-Zahl
          max-subscriptions-per-user
     Gibt die Maximalzahl gleichzeitiger
     Benachrichtigungs-Subskriptionen an, die pro Benutzer zugelassen
     werden. Ein Wert von ‘0’ lässt bis zu ‘max-subscriptions’-viele
     Benachrichtigungsanmeldungen pro Benutzer zu.

     Die Vorgabe ist ‘0’.

 -- cups-configuration-Parameter: Nichtnegative-ganze-Zahl
          multiple-operation-timeout
     Gibt die maximale Zeitdauer an, wie lange es zwischen Dateien in
     einem Druckauftrag mit mehreren Dateien dauern darf, in Sekunden.

     Die Vorgabe ist ‘900’.

 -- cups-configuration-Parameter: Umgebungsvariable
          environment-variables
     Übergibt die angegebene(n) Umgebungsvariable(n) an Kindprozesse,
     als Liste von Zeichenketten.

     Die Vorgabe ist ‘'()’.

 -- cups-configuration-Parameter: „policy-configuration“-Liste policies
     Gibt die benannten Zugriffssteuerungsrichtlinien an.

     Verfügbare ‘policy-configuration’-Felder sind:

      -- policy-configuration-Parameter: Zeichenkette name
          Der Name der Richtlinie.

      -- policy-configuration-Parameter: Zeichenkette job-private-access
          Gibt eine Zugriffsliste der privaten Werte eines Druckauftrags
          an. ‘@ACL’ wird auf die Werte von requesting-user-name-allowed
          oder requesting-user-name-denied des Druckers abgebildet.
          ‘@OWNER’ wird auf den Besitzer des Druckauftrags abgebildet.
          ‘@SYSTEM’ wird auf die Gruppen abgebildet, die im
          ‘system-group’-Feld der ‘files-configuration’ aufgelistet
          sind, aus der die Datei ‘cups-files.conf(5)’ erzeugt wird. Zu
          den anderen möglichen Elementen der Zugriffsliste gehören
          Namen bestimmer Benutzerkonten und ‘@BENUTZERGRUPPE’, was für
          Mitglieder einer bestimmten Benutzergruppe steht. Die
          Zugriffsliste kann auch einfach als ‘all’ oder ‘default’
          festgelegt werden.

          Die Vorgabe ist ‘"@OWNER @SYSTEM"’.

      -- policy-configuration-Parameter: Zeichenkette job-private-values
          Gibt die Liste der Druckauftragswerte an, die geschützt werden
          sollten, oder ‘all’, ‘default’ oder ‘none’.

          Die Vorgabe ist ‘"job-name job-originating-host-name
          job-originating-user-name phone"’.

      -- policy-configuration-Parameter: Zeichenkette
               subscription-private-access
          Gibt eine Zugriffsliste für die privaten Werte eines
          Abonnements an. ‘@ACL’ wird auf die Werte von
          requesting-user-name-allowed oder requesting-user-name-denied
          des Druckers abgebildet. ‘@OWNER’ wird auf den Besitzer des
          Druckauftrags abgebildet. ‘@SYSTEM’ wird auf die Gruppen
          abgebildet, die im ‘system-group’-Feld der
          ‘files-configuration’ aufgelistet sind, aus der die Datei
          ‘cups-files.conf(5)’ erzeugt wird. Zu den anderen möglichen
          Elementen der Zugriffsliste gehören Namen bestimmer
          Benutzerkonten und ‘@BENUTZERGRUPPE’, was für Mitglieder einer
          bestimmten Benutzergruppe steht. Die Zugriffsliste kann auch
          einfach als ‘all’ oder ‘default’ festgelegt werden.

          Die Vorgabe ist ‘"@OWNER @SYSTEM"’.

      -- policy-configuration-Parameter: Zeichenkette
               subscription-private-values
          Gibt die Liste der Druckauftragswerte an, die geschützt werden
          sollten, oder ‘all’, ‘default’ oder ‘none’.

          Die Vorgabe ist ‘"notify-events notify-pull-method
          notify-recipient-uri notify-subscriber-user-name
          notify-user-data"’.

      -- policy-configuration-Parameter:
               „operation-access-controls“-Liste access-controls
          Zugriffssteuerung durch IPP-Betrieb.

          Die Vorgabe ist ‘'()’.

 -- cups-configuration-Parameter:
          Boolescher-Ausdruck-oder-Nichtnegative-ganze-Zahl
          preserve-job-files
     Gibt an, ob die Dateien eines Druckauftrags (Dokumente) erhalten
     bleiben, nachdem ein Druckauftrag ausgedruckt wurde. Wenn eine Zahl
     angegeben wird, bleiben die Dateien des Druckauftrags für die
     angegebene Zahl von Sekunden nach dem Drucken erhalten. Ein
     boolescher Wert bestimmt ansonsten, ob sie auf unbestimmte Zeit
     erhalten bleiben.

     Die Vorgabe ist ‘86400’.

 -- cups-configuration-Parameter:
          Boolescher-Ausdruck-oder-Nichtnegative-ganze-Zahl
          preserve-job-history
     Gibt an, ob der Druckauftragsverlauf nach dem Drucken eines
     Druckauftrags erhalten bleibt. Wenn eine Zahl angegeben wird,
     bleibt der Druckauftragsverlauf für die angegebene Zahl von
     Sekunden nach dem Drucken erhalten. Bei ‘#t’ bleibt der
     Druckauftragsverlauf so lange erhalten, bis die
     MaxJobs-Beschränkung erreicht wurde.

     Die Vorgabe ist ‘#t’.

 -- cups-configuration-Parameter:
          Kommagetrennte-Zeichenketten-Liste-oder-#f ready-paper-sizes
     Gibt eine Liste möglicher Papierformate an, die als bereitstehend
     gemeldet werden, also geladen sind. Die tatsächliche Liste wird nur
     diejenigen Formate umfassen, die der jeweilige Drucker unterstützt.

     Beim vorgegebenen Wert ‘#f’ verhält sich CUPS anders: Es benutzt
     ‘(list \"Letter\" \"Legal\" \"Tabloid\" \"4x6\" \"Env10\")’, wenn
     das Papierformat \"Letter\" voreingestellt ist, und benutzt
     andernfalls ‘(list \"A3\" \"A4\" \"A5\" \"A6\" \"EnvDL\")’.

 -- cups-configuration-Parameter: Nichtnegative-ganze-Zahl
          reload-timeout
     Gibt an, wie lange vor dem Neustart des Planungsprogramms auf den
     Abschluss eines Druckauftrages gewartet wird.

     Die Vorgabe ist ‘30’.

 -- cups-configuration-Parameter: Zeichenkette server-admin
     Gibt die E-Mail-Adresse des Serveradministrators an.

     Die Vorgabe ist ‘"root@localhost.localdomain"’.

 -- cups-configuration-Parameter: Rechnernamens-Liste-oder-*
          server-alias
     Die ServerAlias-Direktive wird zur Prüfung der HTTP-Host-Kopfzeile
     benutzt, wenn sich Clients mit dem Planungsprogramm über externe
     Schnittstellen verbinden. Wenn der besondere Name ‘*’ benutzt wird,
     könnte Ihr System möglicherweise bekannten browserbasierten
     DNS-Rebinding-Angriffen ausgesetzt werden, selbst wenn auf die
     Angebote nur über eine Firewall zugegriffen wird. Wenn alternative
     Namen nicht automatisch erkannt werden, empfehlen wir, jeden
     alternativen Namen in der ServerAlias-Direktive aufzulisten, statt
     ‘*’ zu benutzen.

     Die Vorgabe ist ‘*’.

 -- cups-configuration-Parameter: Zeichenkette server-name
     Gibt den vollständigen Rechnernamen („Fully-Qualified Host Name“)
     des Servers an.

     Die Vorgabe ist ‘"localhost"’.

 -- cups-configuration-Parameter: Server-Tokens server-tokens
     Gibt an, welche Informationen in der Server-Kopfzeile von
     HTTP-Antworten vorkommen. ‘None’ deaktiviert die Server-Kopfzeile.
     ‘ProductOnly’ liefert ‘CUPS’. ‘Major’ liefert ‘CUPS 2’. ‘Minor’
     liefert ‘CUPS 2.0’. ‘Minimal’ liefert ‘CUPS 2.0.0’. ‘OS’ liefert
     ‘CUPS 2.0.0 (UNAME)’, wobei UNAME die Ausgabe des Befehls ‘uname’
     ist. ‘Full’ liefert ‘CUPS 2.0.0 (UNAME) IPP/2.0’.

     Die Vorgabe ist ‘Minimal’.

 -- cups-configuration-Parameter: Mehrzeilige-Zeichenketten-Liste
          ssl-listen
     Lauscht auf den angegebenen Schnittstellen auf verschlüsselte
     Verbindungen. Gültige Werte haben die Form ADRESSE:PORT, wobei die
     ADRESSE entweder eine von eckigen Klammern umschlossene
     IPv6-Adresse, eine IPv4-Adresse oder ‘*’ ist; letztere steht für
     alle Adressen.

     Die Vorgabe ist ‘'()’.

 -- cups-configuration-Parameter: SSL-Optionen ssl-options
     Legt Verschlüsselungsoptionen fest. Nach Vorgabe unterstützt CUPS
     nur Verschlüsselung mit TLS v1.0 oder höher mit bekannten, sicheren
     „Cipher Suites“. Es ist weniger sicher, Optionen mit ‘Allow’
     („erlauben“) zu verwenden, und es erhöht die Sicherheit, Optionen
     mit ‘Deny’ („verweigern“) zu benutzen. Die Option ‘AllowRC4’
     aktiviert die 128-Bit-RC4-Cipher-Suites, die manche alten Clients
     brauchen. Die Option ‘AllowSSL3’ aktiviert SSL v3.0, das manche
     alte Clients brauchen, die TLS v1.0 nicht implementieren. Die
     Option ‘DenyCBC’ deaktiviert alle CBC-Cipher-Suites. Die Option
     ‘DenyTLS1.0’ deaktiviert Unterstützung für TLS v1.0 – dadurch wird
     TLS v1.1 zur kleinsten noch unterstützten Protokollversion.

     Die Vorgabe ist ‘'()’.

 -- cups-configuration-Parameter: Boolescher-Ausdruck
          strict-conformance?
     Gibt an, ob das Druckplanungsprogramm von Clients fordert, dass sie
     sich strikt an die IPP-Standards halten.

     Vorgegeben ist ‘#f’.

 -- cups-configuration-Parameter: Nichtnegative-ganze-Zahl timeout
     Gibt die Zeitbeschränkung für HTTP-Anfragen an, in Sekunden.

     Die Vorgabe ist ‘900’.

 -- cups-configuration-Parameter: Boolescher-Ausdruck web-interface?
     Gibt an, ob die Weboberfläche zur Verfügung gestellt wird.

     Vorgegeben ist ‘#f’.

   Mittlerweile denken Sie wahrscheinlich: „Ich bitte dich,
Guix-Handbuch, ich mag dich, aber kannst du jetzt bitte mit den
Konfigurationsoptionen aufhören?“ Damit hätten Sie recht. Allerdings
sollte ein weitere Punkt noch erwähnt werden: Vielleicht haben Sie eine
bestehende ‘cupsd.conf’, die Sie verwenden möchten. In diesem Fall
können Sie eine ‘opaque-cups-configuration’ als die Konfiguration eines
‘cups-service-type’ übergeben.

   Verfügbare ‘opaque-cups-configuration’-Felder sind:

 -- opaque-cups-configuration-Parameter: „package“ cups
     Das CUPS-Paket.

 -- opaque-cups-configuration-Parameter: Zeichenkette cupsd.conf
     Der Inhalt der Datei ‘cupsd.conf’ als eine Zeichenkette.

 -- opaque-cups-configuration-Parameter: Zeichenkette cups-files.conf
     Der Inhalt der Datei ‘cups-files.conf’ als eine Zeichenkette.

   Wenn Ihre ‘cupsd.conf’ und ‘cups-files.conf’ zum Beispiel in
Zeichenketten mit dem entsprechenden Namen definiert sind, könnten Sie
auf diese Weise einen CUPS-Dienst instanziieren:

     (service cups-service-type
              (opaque-cups-configuration
                (cupsd.conf cupsd.conf)
                (cups-files.conf cups-files.conf)))


File: guix.de.info,  Node: Desktop-Dienste,  Next: Tondienste,  Prev: Druckdienste,  Up: Dienste

11.10.9 Desktop-Dienste
-----------------------

Das Modul ‘(gnu services desktop)’ stellt Dienste zur Verfügung, die
meistens bei „Desktop“-Einrichtungen für grafische Nutzung praktisch
sind – also auf einer Maschine mit einem grafischem Anzeigeserver,
vielleicht mit einer grafischen Benutzeroberfläche, usw. Im Modul werden
auch Dienste definiert, die bestimmte Arbeitsumgebungen wie GNOME, Xfce
oder MATE bereitstellen.

   Um es einfacher zu machen, definiert das Modul auch eine Variable mit
denjenigen Diensten, die man auf einer Maschine mit einer grafischen
Umgebung und Netzwerkunterstützung erwarten würde:

 -- Variable: %desktop-services
     Dies ist eine Liste von Diensten, die ‘%base-services’ ergänzt und
     weitere Dienste hinzufügt oder bestehende anpasst, um für eine
     normale „Desktop“-Nutzung geeignet zu sein.

     Insbesondere wird eine grafische Anmeldeverwaltung hinzugefügt
     (siehe *note ‘gdm-service-type’: X Window.), ebenso Programme zur
     Bildschirmsperre, ein Werkzeug zur Netzwerkverwaltung (siehe *note
     ‘network-manager-service-type’: Netzwerkdienste.) mit Unterstützung
     für Modems (siehe *note ‘modem-manager-service-type’:
     Netzwerkdienste.), Energieverbrauchs- und Farbverwaltungsdienste,
     Anmeldungs- und Sitzungsverwaltung über ‘elogind’, der
     Berechtigungsdienst Polkit, der Ortungsdienst GeoClue, der
     AccountsService-Daemon, mit dem autorisierte Benutzer
     Systempasswörter ändern können, ein NTP-Client (siehe *note
     Netzwerkdienste::) und der Avahi-Daemon.

   Die ‘%desktop-services’-Variable kann als das ‘services’-Feld einer
‘operating-system’-Deklaration genutzt werden (siehe *note ‘services’:
„operating-system“-Referenz.).

   Daneben können die folgenden Prozeduren eine Arbeitsumgebung (oder
mehrere!) zu einem System hinzufügen.

   • ‘gnome-desktop-service-type’ fügt GNOME hinzu,
   • ‘plasma-desktop-service-type’ fügt KDE Plasma hinzu,
   • ‘enlightenment-desktop-service-type’ fügt Enlightenment hinzu,
   • ‘lxqt-desktop-service-type’ fügt LXQt hinzu,
   • ‘mate-desktop-service-type’ fügt MATE hinzu,
   • ‘xfce-desktop-service-type’ fügt Xfce hinzu.

   Diese Dienste fügen „Metapakete“ wie ‘gnome’ oder ‘plasma’ ins
Systemprofil ein. Die meisten richten auch andere nützliche Dienste ein,
was Pakete nicht bewirken können.

   Zum Beispiel können so erhöhte Berechtigungen an eine begrenzte Zahl
besonderer Systemschnittstellen und Programme verliehen werden, damit
Hilfsprogramme zur Anpassung der Hintergrundbeleuchtung, des
Energieverbrauchs, zum Sperren des Bildschirms oder andere zugehörige
Funktionen wie erwartet laufen.

 -- Variable: gnome-desktop-service-type
     Dies ist der Typ des Dienstes, der die GNOME-Arbeitsumgebung
     (https://www.gnome.org) bereitstellt. Sein Wert ist ein
     ‘gnome-desktop-configuration’-Objekt (siehe unten).

     Dieser Dienst fügt das ‘gnome’-Paket zum Systemprofil hinzu und
     erweitert Polkit um die von ‘gnome-settings-daemon’ benötigten
     Aktionen.

 -- Datentyp: gnome-desktop-configuration
     Verbundsobjekt für die Konfiguration der GNOME-Arbeitsumgebung.
     Verfügbare ‘gnome-desktop-configuration’-Felder sind:

     ‘core-services’ (Typ: Liste-von-Paketen)
          A list of packages that the GNOME Shell and applications may
          rely on.

     ‘shell’ (Typ: Liste-von-Paketen)
          Eine Liste von Paketen, die die GNOME Shell bilden, ohne
          Anwendungen.

     ‘utilities’ (Typ: Liste-von-Paketen)
          Eine Liste von Paketen, die als Anwendungen aufgesetzt auf der
          GNOME Shell dienen.

     ‘gnome’ (Typ: Vielleicht-Paket)
          Einst war dieses Feld die einzige Konfigurationsmöglichkeit
          und darin wurde ein GNOME-Metapaket festgelegt, das systemweit
          installiert wurde. Weil dieses Metapaket weder eigenen
          Quellcode noch die eigentlichen Pakete enthielt, sondern sie
          lediglich propagiert hatte. wurde es für veraltet erklärt.

     ‘extra-packages’ (Typ: Liste-von-Paketen)
          Eine Liste GNOME-bezogener Pakete, die auch hinzugenommen
          werden sollen. Dieses Feld ist dafür vorgesehen, dass Benutzer
          ihre eigenen Pakete eintragen, die für ihre GNOME-Erfahrung
          dazugehören sollen. Beachten Sie, dass hier schon Pakete im
          Vorgabewert stehen, die manche (die meisten?) GNOME-Nutzer
          verlangen werden.

     ‘udev-ignorelist’ (Vorgabe: ‘'()’) (Typ: Liste-von-Zeichenketten)
          A list of regular expressions denoting udev rules or hardware
          file names provided by any package that should not be
          installed. By default, every udev rule and hardware file
          specified by any package referenced in the other fields are
          installed.

     ‘polkit-ignorelist’ (Vorgabe: ‘'()’) (Typ: Liste-von-Zeichenketten)
          A list of regular expressions denoting polkit rules provided
          by any package that should not be installed. By default, every
          polkit rule added by any package referenced in the other
          fields are installed.

     ‘keyring’ (Typ: gnome-keyring-configuration-oder-#f)
          Ein <gnome-keyring-configuration>-Verbundsobjekt, um den
          GNOME-Schlüsselbund besser ins System zu integrieren. Siehe
          die Dokumentation zum ‘gnome-keyring-service-type’ für mehr
          Informationen. Wenn Sie lieber auf die Integration des
          GNOME-Schlüsselbunds verzichten möchten, können Sie dies auf
          ‘#f’ setzen.

 -- Variable: plasma-desktop-service-type
     Dies ist der Typ des Dienstes, mit dem die Arbeitsumgebung Plasma
     (https://kde.org/plasma-desktop/) nutzbar gemacht wird. Sein Wert
     ist ein ‘plasma-desktop-configuration’-Objekt (siehe unten).

     Dieser Dienst fügt das Paket ‘plasma’ ins Systemprofil ein.

 -- Datentyp: plasma-desktop-configuration
     Verbundstyp für Einstellungen zur Plasma-Arbeitsumgebung.

     ‘plasma’ (Vorgabe: ‘plasma’)
          Das Plasma-Paket, das benutzt werden soll.

 -- Variable: xfce-desktop-service-type
     Der Typ des Dienstes, um die Xfce-Arbeitsumgebung
     (https://xfce.org/) auszuführen. Sein Wert ist ein
     ‘xfce-desktop-configuration’-Objekt (siehe unten).

     Dieser Dienst fügt das Paket ‘xfce’ zum Systemprofil hinzu und
     erweitert Polkit, damit ‘thunar’ befähigt wird, das Dateisystem aus
     einer Benutzersitzung heraus mit Administratorrechten zu
     bearbeiten, nachdem sich der Benutzer mit dem Administratorpasswort
     authentisiert hat.

     Bedenken Sie, dass ‘xfce4-panel’ und seine Plugin-Pakete in
     dasselbe Profil installiert werden sollten, um sicherzugehen, dass
     sie kompatibel sind. Wenn Sie diesen Dienst benutzen, sollten Sie
     zusätzliche Plugins (‘xfce4-whiskermenu-plugin’,
     ‘xfce4-weather-plugin’ usw.) ins ‘packages’-Feld Ihres
     ‘operating-system’ eintragen.

 -- Datentyp: xfce-desktop-configuration
     Verbundstyp für Einstellungen zur Xfce-Arbeitsumgebung.

     ‘xfce’ (Vorgabe: ‘xfce’)
          Das Xfce-Paket, was benutzt werden soll.

 -- Variable: mate-desktop-service-type
     Dies ist der Typ des Dienstes, um die MATE-Arbeitsumgebung
     (https://mate-desktop.org/) auszuführen. Sein Wert ist ein
     ‘mate-desktop-configuration’-Objekt (siehe unten).

     Dieser Dienst fügt das Paket ‘mate’ ins Systemprofil ein und
     erweitert Polkit um die Aktionen aus dem ‘mate-settings-daemon’.

 -- Datentyp: mate-desktop-configuration
     Verbundstyp für die Einstellungen der MATE-Arbeitsumgebung.

     ‘mate’ (Vorgabe: ‘mate’)
          Das MATE-Paket, was benutzt werden soll.

 -- Variable: lxqt-desktop-service-type
     Dies ist der Typ des Dienstes, um die LXQt-Arbeitsumgebung
     (https://lxqt-project.org) auszuführen. Sein Wert ist ein
     ‘lxqt-desktop-configuration’-Objekt (siehe unten).

     Dieser Dienst fügt das Paket ‘lxqt’ ins Systemprofil ein.

 -- Datentyp: lxqt-desktop-configuration
     Verbundstyp für Einstellungen zur LXQt-Arbeitsumgebung.

     ‘lxqt’ (Vorgabe: ‘lxqt’)
          Das LXQT-Paket, was benutzt werden soll.

 -- Variable: sugar-desktop-service-type
     Dies ist der Typ des Dienstes, um die Sugar-Arbeitsumgebung
     (https://www.sugarlabs.org) auszuführen. Sein Wert ist ein
     ‘sugar-desktop-configuration’-Objekt (siehe unten).

     Dieser Dienst fügt das Paket ‘sugar’ ins Systemprofil ein und
     außerdem fügt er alle gewählten Sugar-Aktivitäten ein. Bei den
     Vorgabeeinstellungen werden nur wenige Aktivitäten eingefügt.

 -- Datentyp: sugar-desktop-configuration
     Verbundstyp für Einstellungen zur Sugar-Arbeitsumgebung.

     ‘sugar’ (Vorgabe: ‘sugar’)
          Das zu verwendende Sugar-Paket.
     ‘gobject-introspection’ (Vorgabe: ‘gobject-introspection’)
          Welches ‘gobject-introspection’-Paket benutzt werden soll. Mit
          dem Paket wird der Zugriff auf Bibliotheken ermöglicht, die
          installiert werden, weil Sugar-Aktivitäten von ihnen abhängen.
     ‘activities’ (Vorgabe: ‘(list sugar-help-activity)’)
          Welche Sugar-Aktivitäten installiert werden.

   Folgendes Beispiel stellt dar, wie die Sugar-Arbeitsumgebung mitsamt
einiger nützlicher Aktivitäten eingerichtet werden kann:

     (use-modules (gnu))
     (use-package-modules sugar)
     (use-service-modules desktop)
     (operating-system
       …
       (services (cons* (service sugar-desktop-service-type
                                 (sugar-desktop-configuration
                                   (activities (list sugar-browse-activity
                                                     sugar-help-activity
                                                     sugar-jukebox-activity
                                                     sugar-typing-turtle-activity))))
                        %desktop-services))
       …)

 -- Variable: enlightenment-desktop-service-type
     Liefert einen Dienst, der das ‘enlightenment’-Paket zum
     Systemprofil hinzufügt und D-Bus mit den Aktionen aus ‘efl’
     erweitert.

 -- Datentyp: enlightenment-desktop-service-configuration
     ‘enlightenment’ (Vorgabe: ‘enlightenment’)
          Das Enlightenment-Paket, was benutzt werden soll.

   Weil die Desktopdienste GNOME, Xfce und MATE so viele Pakete ins
System mitnehmen, gehören diese nicht zu den Vorgaben in der
‘%desktop-services’-Variablen. Um GNOME, Xfce oder MATE hinzuzufügen,
benutzen Sie einfach ‘cons’ zum Anhängen an die ‘%desktop-services’ im
‘services’-Feld Ihrer ‘operating-system’-Deklaration:

     (use-modules (gnu))
     (use-service-modules desktop)
     (operating-system
       …
       ;; cons* fügt Elemente zur Liste hinzu, die in seinem letzten Argument
       ;; übergeben wird.
       (services (cons* (service gnome-desktop-service-type)
                        (service xfce-desktop-service-type)
                        %desktop-services))
       …)

   Diese Arbeitsumgebungen stehen dann im grafischen Anmeldefenster zur
Auswahl.

   Die eigentlichen Dienstdefinitionen, die in ‘%desktop-services’
stehen und durch ‘(gnu services dbus)’ und ‘(gnu services desktop)’ zur
Verfügung gestellt werden, werden im Folgenden beschrieben.

 -- Variable: dbus-root-service-type
     Diensttyp für einen Dienst, der den Systembus von D-Bus
     ausführt(1).

     Der Wert dieses Dienstes ist ein
     ‘<dbus-configuration>’-Verbundsobjekt.

 -- Datentyp: dbus-configuration
     Datentyp, der die Konfiguration vom ‘dbus-root-service-type’
     repräsentiert.

     ‘dbus’ (Vorgabe: ‘dbus’) (Typ: dateiartig)
          Paketobjekt für dbus.

     ‘services’ (Vorgabe: ‘'()’) (Typ: Assoziative-Liste)
          Liste von Paketen, die ein Verzeichnis ‘etc/dbus-1/system.d’
          mit zusätzlichen D-Bus-Konfigurations- und Richtliniendateien
          enthalten. Damit zum Beispiel der Avahi-Daemon den Systembus
          benutzen kann, muss SERVICES gleich ‘(list avahi)’ sein.

     ‘verbose?’ (Vorgabe: ‘#f’) (Typ: Boolescher-Ausdruck)
          Wenn es auf ‘#t’ gesetzt ist, wird beim Start von D-Bus dessen
          Umgebungsvariable ‘DBUS_VERBOSE’ für ausführliche
          Protokollierung auf ‘1’ gesetzt. Damit das auch etwas bewirkt,
          muss für DBUS ein D-Bus-Paket mit Unterstützung dafür
          angegeben werden, etwa ‘dbus-verbose’. Das ausführliche
          Protokoll finden Sie in ‘/var/log/dbus-daemon.log’.

Elogind
.......

Elogind (https://github.com/elogind/elogind) ist ein Anmelde- und
Sitzungsdaemon, der zudem die meisten Energieereignisse auf Systemebene
in einem Rechner behandelt, wie etwa ein Versetzen des Systems in
Bereitschaft, wenn der Rechner zugeklappt wird, oder ein Herunterfahren
beim Drücken des Stromschalters.

   Auch stellt er eine D-Bus-Schnittstelle bereit, über die ausgelesen
werden kann, welche Benutzer angemeldet sind und welche Sitzungen sie
geöffnet haben, und außerdem das System in Bereitschaft versetzt werden
kann, der Bereitschaftsmodus unterdrückt werden kann, das System neu
gestartet werden kann und anderes.

 -- Variable: elogind-service-type
     Dies ist der Diensttyp, um ‘elogind’, einen Anmelde- und
     Sitzungsdaemon, auszuführen. Der Wert dieses Diensttyps ist ein
     ‘<elogind-configuration>’-Objekt.

 -- Datentyp: elogind-configuration
     Available ‘elogind-configuration’ fields are:

     ‘elogind’ (Vorgabe: ‘elogind’) (Typ: dateiartig)
          The elogind package to use.

     ‘system-sleep-hook-files’ (default: ‘()’) (type: list-of-file-likes)
          A list of executables (file-like objects) that will be
          installed into the ‘/etc/elogind/system-sleep’ hook directory.
          See ‘Hook directories’ in the ‘loginctl(1)’ man page for more
          information.

     ‘system-shutdown-hook-files’ (default: ‘()’) (type: list-of-file-likes)
          A list of executables (file-like objects) that will be
          installed into the ‘/etc/elogind/system-shutdown/’ hook
          directory.

     ‘allow-power-off-interrupts?’ (default: ‘#f’) (type: maybe-boolean)
          Whether the executables in elogind’s hook directories (see
          above) can cause a power-off action to be cancelled
          (interrupted) by printing an appropriate error message to
          stdout.

     ‘allow-suspend-interrupts?’ (default: ‘#f’) (type: maybe-boolean)
          Likewise as the ‘allow-power-off-interrupts?’ option, but for
          the suspend action.

     ‘broadcast-power-off-interrupts?’ (default: ‘#f’) (type: maybe-boolean)
          Whether an interrupt of a power-off action is broadcasted.

     ‘broadcast-suspend-interrupts?’ (default: ‘#f’) (type: maybe-boolean)
          Whether an interrupt of a suspend action is broadcasted.

     ‘kill-user-processes?’ (Vorgabe: ‘#f’) (Typ: Vielleicht-Boolescher-Ausdruck)
          Whether the processes of a user should be killed when the user
          logs out.

     ‘kill-only-users’ (type: maybe-list-of-user-names)
          Usernames whose processes should be killed, regardless the
          value of ‘kill-user-processes?’.

     ‘kill-exclude-users’ (default: ‘("root")’) (type: maybe-list-of-user-names)
          Usernames whose processes should _not_ be killed, regardless
          the value of ‘kill-user-processes?’.

     ‘inhibit-delay-max-seconds’ (Vorgabe: ‘5’) (Typ: Vielleicht-Nichtnegative-ganze-Zahl)
          The maximum time a system shutdown or sleep request is delayed
          due to an inhibitor lock of type delay being active before the
          inhibitor is ignored and the operation executes anyway.

     ‘handle-power-key’ (default: ‘poweroff’) (type: maybe-action)
          The action done when the power key is pressed. The compiled
          default is ‘'poweroff’.

     ‘handle-suspend-key’ (default: ‘suspend’) (type: maybe-action)
          The action done when the suspend key is pressed. The

     ‘handle-hibernate-key’ (default: ‘hibernate’) (type: maybe-action)
          The action done when the hibernate key is pressed.

     ‘handle-lid-switch’ (default: ‘suspend’) (type: maybe-action)
          The action done when the lid is closed.

     ‘handle-lid-switch-docked’ (default: ‘ignore’) (type: maybe-action)
          The action done when the lid is closed and the device docked.

     ‘handle-lid-switch-external-power’ (default: ‘suspend’) (type: maybe-action)
          The action done when the lid is closed and the device is
          externally powered.

     ‘power-key-ignore-inhibited?’ (default: ‘#f’) (type: maybe-boolean)
          Whether to ignore high-level inhibitor locks (shutdown,
          reboot, sleep or idle) when the power key is pressed.

     ‘suspend-key-ignore-inhibited?’ (Vorgabe: ‘#f’) (Typ: Vielleicht-Boolescher-Ausdruck)
          Whether to ignore high-level inhibitor locks (shutdown,
          reboot, sleep or idle) when the suspend key is pressed.

     ‘hibernate-key-ignore-inhibited?’ (Vorgabe: ‘#f’) (Typ: Vielleicht-Boolescher-Ausdruck)
          Whether to ignore high-level inhibitor locks (shutdown,
          reboot, sleep or idle) when the hibernate key is pressed.

     ‘lid-switch-ignore-inhibited?’ (Vorgabe: ‘#f’) (Typ: Vielleicht-Boolescher-Ausdruck)
          Whether to ignore high-level inhibitor locks (shutdown,
          reboot, sleep or idle) when the lid is closed.

     ‘holdoff-timeout-seconds’ (Vorgabe: ‘30’) (Typ: Vielleicht-Nichtnegative-ganze-Zahl)
          Specifies the number of seconds after system startup or system
          resume during which elogind will hold off on reacting to lid
          events.

     ‘idle-action’ (default: ‘ignore’) (type: maybe-action)
          Action to take when the system is idle.

     ‘idle-action-seconds’ (type: maybe-non-negative-integer)
          The delay after which the action configured in ‘idle-action’
          is taken after the system is idle.

     ‘runtime-directory-size-percent’ (type: maybe-percent)
          Set the size limit, in percent, on the ‘XDG_RUNTIME_DIR’
          runtime directory for each user who logs in. This specifies
          the per-user size limit relative to the amount of physical RAM
          (read access memory). This value takes precedence over that
          specified via ‘runtime-directory-size’.

     ‘runtime-directory-size’ (type: maybe-non-negative-integer)
          Set the size limit, in bytes, on the ‘XDG_RUNTIME_DIR’ runtime
          directory for each user who logs in.

     ‘remove-ipc?’ (Vorgabe: ‘#t’) (Typ: Vielleicht-Boolescher-Ausdruck)
          Whether IPC (inter-process communication) objects belonging to
          the user shall be removed when the user fully logs out.

     ‘suspend-state’ (default: ‘(mem standby freeze)’) (type: maybe-list-of-suspend-states)
          The suspend state values to be write to ‘/sys/power/state’ by
          elogind when suspending the system. They will be tried in
          turn, until one is written without error.

     ‘suspend-mode’ (type: maybe-list-of-suspend-modes)
          The suspend mode values to write to ‘/sys/power/mem_sleep’ by
          elogind when suspending the system.

     ‘suspend-estimation-seconds’ (default: ‘3600’) (type: maybe-non-negative-integer)
          Cause the RTC alarm to wake the system after the specified
          time span to measure the system battery capacity level and
          estimate the battery discharging rate, which is used for
          estimating the time span until the system battery charge level
          goes down to 5%. This option is only used by elogind when
          using the ‘'suspend-then-hibernate’ action.

     ‘hibernate-mode’ (default: ‘(platform shutdown)’) (type: maybe-list-of-hibernation-modes)
          The hibernation mode values to write to ‘/sys/power/disk’ by
          elogind when hibernating the system.

     ‘hibernate-delay-seconds’ (Typ: Vielleicht-Nichtnegative-ganze-Zahl)
          The amount of time the system spends in suspend mode before
          the system is automatically put into hibernate mode.

     ‘hibernate-state’ (type: maybe-list-of-strings)
          Diese Option ist veraltet und wird demnächst verschwinden.

     ‘hybrid-sleep-state’ (type: maybe-list-of-strings)
          Diese Option ist veraltet und wird demnächst verschwinden.

     ‘hybrid-sleep-mode’ (type: maybe-list-of-strings)
          Diese Option ist veraltet und wird demnächst verschwinden.

 -- Variable: accountsservice-service-type
     Diensttyp für einen Dienst, der AccountsService ausführt. Dabei
     handelt es sich um einen Systemdienst, mit dem verfügbare
     Benutzerkonten aufgelistet und deren Passwörter geändert werden
     können, und Ähnliches. AccountsService arbeitet mit PolicyKit
     zusammen, um es Benutzern ohne besondere Berechtigungen zu
     ermöglichen, ihre Systemkonfiguration zu ändern. Siehe den
     Webauftritt von AccountsService
     (https://www.freedesktop.org/wiki/Software/AccountsService/) für
     weitere Informationen.

     Der Wert dieses Dienstes ist ein dateiartiges Objekt; vorgegeben
     ist ‘accountsservice’ (das Paketobjekt für AccountsService).

 -- Variable: polkit-service-type
     Diensttyp für einen Dienst, der Polkit
     (https://www.freedesktop.org/wiki/Software/polkit/) zur Verwaltung
     von Berechtigungen ausführt, wodurch Systemadministratoren auf
     strukturierte Weise den Zugang zu „privilegierten“ Operationen
     gewähren können, die erweiterte Berechtigungen erfordern. Indem der
     Polkit-Dienst angefragt wird, kann eine mit Berechtigungen
     ausgestattete Systemkomponente die Information erhalten, ob
     normalen Benutzern Berechtigungen gewährt werden dürfen. Zum
     Beispiel kann einer normalen Nutzerin die Berechtigung gegeben
     werden, das System in den Bereitschaftsmodus zu versetzen, unter
     der Voraussetzung, dass sie lokal vor Ort angemeldet ist.

     Der Wert dieses Dienstes muss ein ‘<polkit-configuration>’-Objekt
     sein.

 -- Variable: polkit-wheel-service
     Dieser Dienst richtet die ‘wheel’-Benutzergruppe als
     Administratoren für den Polkit-Dienst ein. Der Zweck davon ist,
     dass Benutzer in der ‘wheel’-Benutzergruppe nach ihren eigenen
     Passwörtern gefragt werden statt dem Passwort des
     Administratornutzers ‘root’, wenn sie administrative Tätigkeiten
     durchführen, ähnlich dem, wie sich ‘sudo’ verhält.

 -- Variable: upower-service-type
     Typ des Dienstes, der ‘upowerd’ (https://upower.freedesktop.org/)
     ausführt, ein Programm zur systemweiten Überwachung des
     Energieverbrauchs und der Akkuladung. Er hat die angegebenen
     Konfigurationseinstellungen.

     Er implementiert die D-Bus-Schnittstelle ‘org.freedesktop.UPower’.
     Insbesondere wird UPower auch von GNOME benutzt.

 -- Datentyp: upower-configuration
     Repräsentiert die Konfiguration von UPower.

     ‘upower’ (Vorgabe: UPOWER)
          Das Paket, das für ‘upower’ benutzt werden soll.

     ‘watts-up-pro?’ (Vorgabe: ‘#f’)
          Aktiviert das Watts-Up-Pro-Gerät.

     ‘poll-batteries?’ (Vorgabe: ‘#t’)
          Aktiviert das regelmäßige Abfragen des Kernels bezüglich
          Änderungen am Stand der Akku-Ladung.

     ‘ignore-lid?’ (Vorgabe: ‘#f’)
          Ignorieren, ob der Rechner zugeklappt ist. Das kann gewünscht
          sein, wenn Auf- und Zuklappen nicht richtig erkannt werden.

     ‘use-percentage-for-policy?’ (Vorgabe: ‘#t’)
          Ob sich die Richtlinie am Akku-Ladestand in Prozent statt an
          der verbleibenden Zeit orientieren soll. Eine Richtlinie, die
          den Prozentstand als Orientierung nimmt, ist in der Regel
          zuverlässiger.

     ‘percentage-low’ (Vorgabe: ‘20’)
          Wenn ‘use-percentage-for-policy?’ auf ‘#t’ gesetzt ist, wird
          hiermit der Prozentstand festgelegt, ab dem der Akku-Ladestand
          als niedrig gilt.

     ‘percentage-critical’ (Vorgabe: ‘5’)
          Wenn ‘use-percentage-for-policy?’ auf ‘#t’ gesetzt ist, wird
          hiermit der Prozentstand festgelegt, ab dem der Akku-Ladestand
          als kritisch gilt.

     ‘percentage-action’ (Vorgabe: ‘2’)
          Wenn ‘use-percentage-for-policy?’ auf ‘#t’ gesetzt ist, wird
          hiermit der Prozentstand festgelegt, ab dem Maßnahmen
          eingeleitet werden.

     ‘time-low’ (Vorgabe: ‘1200’)
          Wenn ‘use-percentage-for-policy?’ auf ‘#f’ gesetzt ist, wird
          hiermit die verbleibende Zeit in Sekunden festgelegt, ab der
          der Akku-Ladestand als niedrig gilt.

     ‘time-critical’ (Vorgabe: ‘300’)
          Wenn ‘use-percentage-for-policy?’ auf ‘#f’ gesetzt ist, wird
          hiermit die verbleibende Zeit in Sekunden festgelegt, ab der
          der Akku-Ladestand als kritisch gilt.

     ‘time-action’ (Vorgabe: ‘120’)
          Wenn ‘use-percentage-for-policy?’ auf ‘#f’ gesetzt ist, wird
          hiermit die verbleibende Zeit in Sekunden festgelegt, ab der
          Maßnahmen eingeleitet werden.

     ‘critical-power-action’ (Vorgabe: ‘'hybrid-sleep’)
          Welche Maßnahme eingeleitet wird, wenn die ‘percentage-action’
          oder ‘time-action’ erreicht wurde (je nachdem, wie
          ‘use-percentage-for-policy?’ eingestellt wurde).

          Mögliche Werte sind:

             • ‘'power-off’

             • ‘'hibernate’

             • ‘'hybrid-sleep’.

 -- Variable: udisks-service-type
     Diensttyp für den Dienst für UDisks
     (https://udisks.freedesktop.org/docs/latest/), einen Daemon zur
     “Datenträgerverwaltung”, der Benutzeroberflächen mit
     Benachrichtigungen und Möglichkeiten zum Einbinden und Aushängen
     von Datenträgern versorgt. Zu den Programmen, die mit UDisks
     kommunizieren, gehört der Befehl ‘udisksctl’, der Teil von UDisks
     ist, sowie GNOME Disks. Beachten Sie, dass Udisks über den Befehl
     ‘mount’ funktioniert; man kann damit also nur die
     Dateisystemwerkzeuge benutzen, die ins Systemprofil installiert
     sind. Wenn Sie also NTFS-Dateisysteme zum Lesen und Schreiben
     öffnen können möchten, müssen Sie ‘ntfs-3g’ systemweit installiert
     haben.

     Der Wert dieses Dienstes muss ein ‘<udisks-configuration>’-Objekt
     sein.

 -- Datentyp: udisks-configuration
     Datentyp, der die Konfiguration vom ‘udisks-service-type’
     repräsentiert.

     ‘udisks’ (Vorgabe: ‘udisks’) (Typ: dateiartig)
          Paketobjekt von UDisks.

 -- Variable: gvfs-service-type
     Type for the service that provides virtual file systems for GIO
     applications, which enables support for ‘trash://’, ‘ftp://’,
     ‘sftp://’ and many other location schemas in file managers like
     Nautilus (GNOME Files) and Thunar.

     Der Wert dieses Dienstes muss ein ‘<gvfs-configuration>’-Objekt
     sein.

 -- Datentyp: gvfs-configuration
     Datentyp, der die Konfiguration vom ‘gvfs-service-type’
     repräsentiert.

     ‘gvfs’ (Vorgabe: ‘gvfs’) (Typ: dateiartig)
          Paketobjekt für GVfs.

 -- Variable: colord-service-type
     Dies ist der Typ des Dienstes, der ‘colord’ ausführt. Dabei handelt
     es sich um einen Systemdienst mit einer D-Bus-Schnittstelle, um die
     Farbprofile von Ein- und Ausgabegeräten wie Bildschirmen oder
     Scannern zu verwalten. Insbesondere wird colord vom grafischen
     GNOME-Farbverwaltungswerkzeug benutzt. Siehe den Webauftritt von
     colord (https://www.freedesktop.org/software/colord/) für weitere
     Informationen.

 -- Variable: sane-service-type
     Mit diesem Dienst wird Zugriff auf Scanner über SANE
     (http://www.sane-project.org) möglich, indem er die nötigen
     udev-Regeln und zusätzliche Backends installiert. Er ist Teil von
     ‘%desktop-services’ (siehe *note Desktop-Dienste::) und verwendet
     in den Vorgabeeinstellungen das Paket ‘sane-backends’ (siehe unten)
     für die Hardwareunterstützung.

 -- Data Type: sane-configuration
     Data type representing the configuration for SANE.

     ‘sane’ (default: ‘sane’)
          Package containing SANE library.

     ‘backends’ (default: ‘(sane-backends)’)
          List of packages with pluggable SANE backends:

             • ‘sane-backends’: The default backend collection which
               supports many recent scanners,

             • ‘sane-airscan’: A backend that enables network scanners
               supporting eSCL (Apple) or WSD, (Microsoft) protocols

             • ‘hplip’: A backend containing drivers for older
               Hewlett-Packard scanners,

             • ‘utsushi’: A backend containing drivers for older Epson
               devices.

   Um weitere Scanner-Backends auf einem System zu benutzen, das auf den
‘%desktop-services’ aufbaut, können Sie ‘modify-services’ benutzen
(siehe *note ‘modify-services’: Service-Referenz.), etwa so:

     (use-modules (gnu))
     (use-service-modules
       …
       desktop)
     (use-package-modules
       …
       scanner)

     (define %my-desktop-services
       ;; Alternative Diensteliste wie %desktop-services mit Unterstützung
       ;; für mehr Scanner.
       (modify-services %desktop-services
         (sane-service-type _ =>
           (sane-configuration
             (backends (list sane-backends sane-airscan))))))

     (operating-system
       …
       (services %my-desktop-services))

 -- Prozedur: geoclue-application Name [#:allowed? #t] [#:system? #f]
          [#:users '()]
     Liefert eine Konfiguration, mit der eine Anwendung auf Ortungsdaten
     von GeoClue zugreifen kann. Als NAME wird die Desktop-ID der
     Anwendung angegeben, ohne die Pfadkomponente mit ‘.desktop’-Endung.
     Wenn ALLOWED? wahr ist, hat die Anwendung standardmäßig Zugriff auf
     Ortungsinformationen. Der boolesche Wert SYSTEM? zeigt an, ob die
     Anwendung eine Systemkomponente ist oder nicht. Zum Schluss wird
     für USERS eine Liste von Benutzeridentifikatoren (UIDs) aller
     Benutzerkonten angegeben, für die diese Anwendung Zugriff auf
     Ortungsinformationen gewährt bekommt. Eine leere Benutzerliste
     bedeutet, dass dies für alle Benutzer gewährt wird.

 -- Variable: %standard-geoclue-applications
     Die Standardliste wohlbekannter GeoClue-Anwendungskonfigurationen,
     mit der das GNOME-Werkzeug für Datum und Uhrzeit die Berechtigung
     bekommt, den aktuellen Ort abzufragen, um die Zeitzone festzulegen,
     und die Webbrowser IceCat und Epiphany Ortsinformationen abfragen
     dürfen. IceCat und Epiphany fragen beide zuerst beim Benutzer nach,
     bevor sie einer Webseite gestatten, den Ort des Benutzer
     abzufragen.

 -- Variable: geoclue-service-type
     Diensttyp für einen Dienst, der den Ortungsdienst GeoClue
     (https://wiki.freedesktop.org/www/Software/GeoClue/) ausführt.
     Dieser Dienst bietet eine D-Bus-Schnittstelle an, mit der
     Anwendungen Zugriff auf den physischen Ort eines Benutzers anfragen
     können, und optional Informationen in Online-Ortsdatenbanken
     eintragen können.

     Der Wert dieses Dienstes muss ein ‘<geoclue-configuration>’-Objekt
     sein.

 -- Variable: iio-sensor-proxy-service-type
     Type for the service that runs IIO sensor proxy
     (https://gitlab.freedesktop.org/hadess/iio-sensor-proxy), a daemon
     that proxies low-level sensor data from Industrial I/O (IIO)
     devices into a D-Bus interface. It enables user-space applications,
     such as desktop environments like GNOME and KDE, and services like
     GeoClue, to access data from various sensors commonly found in
     devices like ultrabooks and 2-in-1s. This allows for:

        • Automatic screen rotation based on accelerometer data.
        • Ambient brightness adjustment using light sensor data.
        • Compass/direction information for location services (via
          GeoClue).

     The value for this service is a ‘<iio-sensor-proxy-configuration>’
     object.

 -- Data Type: iio-sensor-proxy-configuration
     Data type representing the configuration for
     ‘iio-sensor-proxy-service-type’.

     ‘iio-sensor-proxy’ (default: ‘iio-sensor-proxy’) (type: file-like)
          Package object of iio-sensor-proxy.

 -- Variable: bluetooth-service-type
     Dies ist der Diensttyp für das System zum
     Linux-Bluetooth-Protokollstapel (https://bluez.org/) (BlueZ), das
     die Konfigurationsdatei ‘/etc/bluetooth/main.conf’ erzeugt. Der
     Wert für diesen Diensttyp ist ein
     ‘bluetooth-configuration’-Verbundsobjekt wie in diesem Beispiel:

          (service bluetooth-service-type)

     Siehe unten für Details zur ‘bluetooth-configuration’.

 -- Datentyp: bluetooth-configuration
     Repräsentiert die Konfiguration für den ‘bluetooth-service-type’.

     ‘bluez’ (Vorgabe: ‘bluez’)
          Zu benutzendes ‘bluez’-Paket.

     ‘name’ (Vorgabe: ‘"BlueZ"’)
          Welchen Namen Sie für den Adapter als Voreinstellung geben.

     ‘class’ (Vorgabe: ‘#x000000’)
          Welche Geräteklasse Sie als Voreinstellung geben. Nur die Bits
          für „major device class“ und „minor device class“ werden
          beachtet.

     ‘discoverable-timeout’ (Vorgabe: ‘180’)
          Wie lange der Adapter erkennbar bleiben soll („discoverable
          mode“), bevor die Erkennbarkeit endet. Der Wert wird in
          Sekunden angegeben.

     ‘always-pairable?’ (Vorgabe: ‘#f’)
          Koppeln von Geräten immer zulassen, so dass kein Agent
          registriert sein muss.

     ‘pairable-timeout’ (Vorgabe: ‘0’)
          Wie lange Koppeln möglich sein soll („pairable mode“), bevor
          die Erkennbarkeit endet. Der Wert wird in Sekunden angegeben.

     ‘device-id’ (Vorgabe: ‘#f’)
          Dieses Gerät mit dieser Geräteidentifikatorbezugsquelle
          („vendor id source“, d.h. Assigner), Geräteidentifikator,
          Produkt- sowie Versionsinformationen im Device-ID-Profil
          ausweisen. Die Werte für ASSIGNER, VID, PID und VERSION werden
          durch ":" getrennt.

          Mögliche Werte sind:

             • ‘#f’, um nichts festzulegen.

             • ‘"assigner:1234:5678:abcd"’, wobei ASSIGNER entweder
               ‘usb’ ist (die Voreinstellung) oder ‘bluetooth’.

     ‘reverse-service-discovery?’ (Vorgabe: ‘#t’)
          Bluetooth-Dienste auf Geräten erkennen, die sich mit unserem
          Gerät verbinden. Bei BR/EDR braucht man diese Option
          eigentlich nur für den Qualifizierungsprozess, weil der
          BITE-Tester in manchen Testfällen etwas gegen inverses SDP
          hat; bei LE wird hiermit die Funktion als GATT-Client
          deaktiviert, was sinnvoll ist, wenn unser System nur als
          Peripheriegerät eingesetzt wird.

     ‘name-resolving?’ (Vorgabe: ‘#t’)
          Namensauflösung bei Gerätesuche („Inquiry“) aktivieren. Legen
          Sie es auf ‘#f’ fest, wenn Sie die Namen der entfernten Geräte
          nicht brauchen und Erkennungszyklen beschleunigen möchten.

     ‘debug-keys?’ (Vorgabe: ‘#f’)
          Ob „debug link keys“ für die Laufzeit persistent gespeichert
          werden. Vorgegeben ist ‘#f’; sie bleiben also nur gültig,
          solange die Verbindung mit ihnen anhält.

     ‘controller-mode’ (Vorgabe: ‘'dual’)
          Schränkt die Controller auf das angegebene Transportprotokoll
          ein. Bei ‘'dual’ werden sowohl BR/EDR als auch LE benutzt
          (wenn die Hardware sie unterstützt).

          Mögliche Werte sind:

             • ‘'dual’

             • ‘'bredr’

             • ‘'le’

     ‘multi-profile’ (Vorgabe: ‘'off’)
          Unterstützung für Multi Profile Specification aktivieren.
          Hiermit kann eingestellt werden, ob ein System nur in
          Konfigurationen von Multiple Profiles Single Device (MPSD)
          laufen kann oder sowohl mit Konfigurationen in Multiple
          Profiles Single Device (MPSD) als auch Konfigurationen in
          Multiple Profiles Multiple Devices (MPMD) umgehen kann.

          Mögliche Werte sind:

             • ‘'off’

             • ‘'single’

             • ‘'multiple’

     ‘fast-connectable?’ (Vorgabe: ‘#f’)
          Dauerhaft eine beschleunigte Verbindung („Fast Connectable“)
          bei Adaptern, die sie unterstützen, ermöglichen. Ist dies
          aktiviert, können sich andere Geräte schneller mit unserem
          verbinden, jedoch steigt der Stromverbrauch. Diese Funktion
          steht nur auf Kernel-Version 4.1 und neuer vollständig zur
          Verfügung.

     ‘privacy’ (Vorgabe: ‘'off’)
          Die Voreinstellung zur Verfolgbarkeit.

             • ‘'off’: Nicht privat stellen.

             • ‘'network/on’: Ein Gerät nimmt nur Mitteilungen
               („advertising packets“) von anderen Geräten an, die
               private Adressen enthalten. Mit manchen alten Geräten
               funktioniert das vielleicht nicht, weil es voraussetzt,
               dass für alles RPA(s) benutzt werden.

             • ‘'device’: Auf „device privacy mode“ gestellte Geräte
               schützen nur vor Nachverfolgbarkeit des jeweiligen
               Geräts, aber wenn Mitteilungen von anderen Geräten deren
               Identity Address preisgeben, werden sie genauso
               akzeptiert wie eine private Adresse. Das gilt auch bei
               anderen Geräten, die in der Vergangenheit ihre IRK
               mitgeteilt hatten.

          Des Weiteren gibt es folgende Möglichkeiten, wenn
          CONTROLLER-MODE auf ‘'dual’ gesetzt ist:

             • ‘'limited-network’: Limited Discoverable Mode für
               Mitteilungen einsetzen, wodurch wie bei BR/EDR die
               Identity Address mitgeteilt wird, wenn das Gerät
               erkennbar ist, aber Network Privacy Mode beim Scannen
               nach Geräten gilt.

             • ‘'limited-network’: Limited Discoverable Mode für
               Mitteilungen einsetzen, wodurch wie bei BR/EDR die
               Identity Address mitgeteilt wird, wenn das Gerät
               erkennbar ist, aber Device Privacy Mode beim Scannen nach
               Geräten gilt.

     ‘just-works-repairing’ (Vorgabe: ‘'never’)
          Wie auf einen vom anderen Gerät ausgelösten JUST-WORKS-Vorgang
          reagiert werden soll. Bei ‘'always’ wird das andere Gerät
          akzeptiert, bei ‘'never’ abgelehnt und bei ‘'confirm’
          nachgefragt.

          Mögliche Werte sind:
             • ‘'never’

             • ‘'confirm’

             • ‘'always’

     ‘temporary-timeout’ (Vorgabe: ‘30’)
          Wie lange ein temporäres Gerät koppelbar bleibt. Der Wert wird
          in Sekunden angegeben. Bei ‘0’ läuft die Zeit nie aus.

     ‘refresh-discovery?’ (Vorgabe: ‘#t’)
          Zulassen, dass das Gerät eine SDP-Anfrage schickt, um bekannte
          Dienste zu ermitteln, sobald eine Verbindung hergestellt
          wurde.

     ‘experimental’ (Vorgabe: ‘#f’)
          Experimentelle Funktionen und Schnittstellen bereitstellen.
          Sie können auch als Liste von UUIDs angegeben werden.

          Mögliche Werte sind:

             • ‘#t’

             • ‘#f’

             • ‘(list (uuid <uuid-1>) (uuid <uuid-2>) …)’.

          Die Liste der möglichen UUIDs:
             • ‘d4992530-b9ec-469f-ab01-6c481c47da1c’: BlueZ
               Experimental Debug,

             • ‘671b10b5-42c0-4696-9227-eb28d1b049d6’: BlueZ
               Experimental Simultaneous Central and Peripheral,

             • ‘15c0a148-c273-11ea-b3de-0242ac130004’: BlueZ
               Experimental LL privacy,

             • ‘330859bc-7506-492d-9370-9a6f0614037f’: BlueZ
               Experimental Bluetooth Quality Report,

             • ‘a6695ace-ee7f-4fb9-881a-5fac66c629af’: BlueZ
               Experimental Offload Codecs.

     ‘remote-name-request-retry-delay’ (Vorgabe: ‘300’)
          Wie lange nach einer fehlgeschlagenen Namensauflösung _keine_
          erneute Auflösung des Namens des anderen Geräts versucht
          werden soll.

     ‘page-scan-type’ (Vorgabe: ‘#f’)
          Auf welche Art die Erkennung („Scan“) von Verbindungsversuchen
          („Paging“) bei BR/EDR durchgeführt wird.

     ‘page-scan-interval’ (Vorgabe: ‘#f’)
          Aktivitätsintervall zwischen Anfängen von Erkennungsphasen von
          Verbindungsversuchen bei BR/EDR.

     ‘page-scan-window’ (Vorgabe: ‘#f’)
          Aktivitätsfenster jeder Erkennungsphase von
          Verbindungsversuchen bei BR/EDR.

     ‘inquiry-scan-type’ (Vorgabe: ‘#f’)
          Auf welche Art die Erkennung von Gerätesuchen („Inquiry“) bei
          BR/EDR durchgeführt wird.

     ‘inquiry-scan-interval’ (Vorgabe: ‘#f’)
          Aktivitätsintervall zwischen Anfängen von Erkennungsphasen von
          Gerätesuchen bei BR/EDR.

     ‘inquiry-scan-window’ (Vorgabe: ‘#f’)
          Aktivitätsfenster jeder Erkennungsphase von Gerätesuchen bei
          BR/EDR.

     ‘link-supervision-timeout’ (Vorgabe: ‘#f’)
          Zeitbegrenzung, ab der eine inaktive Verbindung bei BR/EDR als
          getrennt gilt.

     ‘page-timeout’ (Vorgabe: ‘#f’)
          Zeitbegrenzung, ab der ein unbeantworteter Verbindungsversuch
          bei BR/EDR als gescheitert gilt.

     ‘min-sniff-interval’ (Vorgabe: ‘#f’)
          Minimale Intervalllänge im Sniff-Modus bei BR/EDR.

     ‘max-sniff-interval’ (Vorgabe: ‘#f’)
          Maximale Intervalllänge im Sniff-Modus bei BR/EDR.

     ‘min-advertisement-interval’ (Vorgabe: ‘#f’)
          Minimale Intervalllänge zwischen Mitteilungen bei LE (nur für
          Legacy Advertisement).

     ‘max-advertisement-interval’ (Vorgabe: ‘#f’)
          Maximale Intervalllänge zwischen Mitteilungen bei LE (nur für
          Legacy Advertisement).

     ‘multi-advertisement-rotation-interval’ (Vorgabe: ‘#f’)
          Wenn verschiedene Mitteilungen ausgegeben werden, mit welchem
          Intervall dazwischen rotiert wird, bei LE.

     ‘scan-interval-auto-connect’ (Vorgabe: ‘#f’)
          Intervall zwischen Anfängen von Erkennungsphasen bei passiven
          Erkennungen zur Unterstützung für autonome Verbindung, bei LE.

     ‘scan-window-auto-connect’ (Vorgabe: ‘#f’)
          Länge jedes Erkennungsfensters bei passiven Erkennungen zur
          Unterstützung für autonome Verbindung, bei LE.

     ‘scan-interval-suspend’ (Vorgabe: ‘#f’)
          Intervall zwischen Anfängen von Erkennungsphasen bei aktiven
          Erkennungen zur Unterstützung für Wake-from-Suspend, bei LE.

     ‘scan-window-suspend’ (Vorgabe: ‘#f’)
          Länge jedes Erkennungsfensters bei aktiven Erkennungen zur
          Unterstützung für Wake-from-Suspend, bei LE.

     ‘scan-interval-discovery’ (Vorgabe: ‘#f’)
          Intervall zwischen Anfängen von Erkennungsphasen bei aktiven
          Erkennungen von sich mitteilenden Geräten, bei LE.

     ‘scan-window-discovery’ (Vorgabe: ‘#f’)
          Länge jedes Erkennungsfensters bei aktiven Erkennungen von
          sich mitteilenden Geräten, bei LE.

     ‘scan-interval-adv-monitor’ (Vorgabe: ‘#f’)
          Intervall zwischen Anfängen von Erkennungsphasen bei passiven
          Erkennungen zur Unterstützung der
          Advertisement-Monitor-Programmschnittstellen, bei LE.

     ‘scan-window-adv-monitor’ (Vorgabe: ‘#f’)
          Länge jedes Erkennungsfensters bei passiven Erkennungen zur
          Unterstützung der
          Advertisement-Monitor-Programmschnittstellen, bei LE.

     ‘scan-interval-connect’ (Vorgabe: ‘#f’)
          Intervall zwischen Anfängen von Erkennungsphasen beim
          Verbindungsaufbau.

     ‘scan-window-connect’ (Vorgabe: ‘#f’)
          Länge jedes Erkennungsfensters beim Verbindungsaufbau.

     ‘min-connection-interval’ (Vorgabe: ‘#f’)
          Kleinstes gewünschtes Intervall für eine Verbindung, bei LE.
          Demgegenüber hat Vorrang, wenn ein Wert über die Schnittstelle
          Load Connection Parameters bestimmt wird.

     ‘max-connection-interval’ (Vorgabe: ‘#f’)
          Größtes gewünschtes Intervall für eine Verbindung, bei LE.
          Demgegenüber hat Vorrang, wenn ein Wert über die Schnittstelle
          Load Connection Parameters bestimmt wird.

     ‘connection-latency’ (Vorgabe: ‘#f’)
          Gewünschte Latenz für eine Verbindung, bei LE. Demgegenüber
          hat Vorrang, wenn ein Wert über die Schnittstelle Load
          Connection Parameters bestimmt wird.

     ‘connection-supervision-timeout’ (Vorgabe: ‘#f’)
          Gewünschte Zeitbegrenzung, ab der eine inaktive Verbindung als
          getrennt gilt, bei LE. Demgegenüber hat Vorrang, wenn ein Wert
          über die Schnittstelle Load Connection Parameters bestimmt
          wird.

     ‘autoconnect-timeout’ (Vorgabe: ‘#f’)
          Gewünschte Zeitbegrenzung für autonome Verbindungsversuche,
          bei LE. Demgegenüber hat Vorrang, wenn ein Wert über die
          Schnittstelle Load Connection Parameters bestimmt wird.

     ‘adv-mon-allowlist-scan-duration’ (Vorgabe: ‘300’)
          Dauer der Erkennungsphasen für Geräte auf der Liste erlaubter
          Geräte bei verzahnten Arten der Erkennungsphase („Interleaving
          Scan“). Wird nur bei Erkennungsphasen für Advertisement
          Monitors benutzt. Gemessen in Millisekunden.

     ‘adv-mon-no-filter-scan-duration’ (Vorgabe: ‘500’)
          Dauer der Erkennungsphasen für ungefiltert alle Geräte bei
          verzahnten Arten der Erkennungsphase („Interleaving Scan“).
          Wird nur bei Erkennungsphasen für Advertisement Monitors
          benutzt. Gemessen in Millisekunden.

     ‘enable-adv-mon-interleave-scan?’ (Vorgabe: ‘#t’)
          Verzahnte Arten der Erkennungsphasen für Advertisement
          Monitors benutzen, was beim Energiesparen hilft.

     ‘cache’ (Vorgabe: ‘'always’)
          GATT-Attribute-Zwischenspeicher.

          Mögliche Werte sind:
             • ‘'always’: Immer Attribute zwischenspeichern, selbst von
               nicht gekoppelten Geräten. So klappt die Zusammenarbeit
               mit Geräten am besten, die Dauer für eine erneute
               Verbindung bleibt konsistent und man kann
               Benachrichtigungen für alle Geräte nachvollziehen.

             • ‘'yes’: Nur für gekoppelte Geräte deren Attribute
               speichern.

             • ‘'no’: Niemals Attribute zwischenspeichern.

     ‘key-size’ (Vorgabe: ‘0’)
          Kleinste von diesem Gerät eingeforderte Schlüsselgröße
          („Encryption Key Size“), um auf die gesicherten
          Charakteristika zuzugreifen.

          Mögliche Werte sind:
             • ‘0’: Keine Anforderungen.

             • ‘7 <= N <= 16’

     ‘exchange-mtu’ (Vorgabe: ‘517’)
          Wie groß die „Exchange MTU“ für GATT sein soll. Mögliche Werte
          sind:

             • ‘23 <= N <= 517’

     ‘att-channels’ (Vorgabe: ‘3’)
          Anzahl der ATT-Kanäle. Mögliche Werte sind:

             • ‘1’: EATT ist deaktiviert.

             • ‘2 <= N <= 5’

     ‘session-mode’ (Vorgabe: ‘'basic’)
          Für AVDTP der Modus des L2CAP-Signaling-Kanals.

          Mögliche Werte sind:

             • ‘'basic’: L2CAP Basic Mode benutzen.

             • ‘'ertm’: L2CAP Enhanced Retransmission Mode benutzen.

     ‘stream-mode’ (Vorgabe: ‘'basic’)
          Für AVDTP der Modus des L2CAP Transport Channel.

          Mögliche Werte sind:

             • ‘'basic’: L2CAP Basic Mode benutzen.

             • ‘'streaming’: L2CAP Streaming Mode benutzen.

     ‘reconnect-uuids’ (Vorgabe: ‘'()’)
          Als die ReconnectUUIDs definieren Sie diejenigen Dienste
          entfernter Geräte, mit denen eine neue Verbindung aufgebaut
          werden soll, wenn die Verbindung abreißt (durch „link
          supervision timeout“, d.h. die Zeitbegrenzung, ab der eine
          inaktive Verbindung als getrennt gilt). Im Policy-Plugin
          sollte eine vernünftige Voreinstellung zu finden sein. Die
          Liste hier hat Vorrang. Wenn Sie die leere Liste angeben,
          werden Verbindungen _nicht_ neu aufgebaut.

          Mögliche Werte sind:

             • ‘'()’

             • ‘(list (uuid <uuid-1>) (uuid <uuid-2>) …)’.

     ‘reconnect-attempts’ (Vorgabe: ‘7’)
          Wie oft bei einem Verbindungsverlust versucht werden soll,
          eine neue Verbindung aufzubauen. Für den Wert 0 wird
          Neuverbinden deaktiviert.

     ‘reconnect-intervals’ (Vorgabe: ‘'(1 2 4 8 16 32 64)’)
          Definiert eine Liste von Zeitintervallen in Sekunden, wie
          lange nach jedem Versuch gewartet wird. Wenn die in
          RECONNECT-ATTEMPTS festgelegte Anzahl Versuche größer ist als
          die Liste der Zeitintervalle lang ist, wird das letzte
          Intervall wiederholt, bis alle Versuche ausgeschöpft sind.

     ‘auto-enable?’ (Vorgabe: ‘#f’)
          Ob alle erkannten Controller sofort aktiviert werden sollen.
          Dazu zählen Adapter, die beim Hochfahren schon verfügbar sind,
          wie auch Adapter, die später erst eingesteckt werden.

     ‘resume-delay’ (Vorgabe: ‘2’)
          Audio-Geräte, die durch einen Ruhezustand getrennt wurden,
          werden beim Aufwecken neu verbunden. Mit RESUME-DELAY wird
          festgelegt, wie lange nach dem Aufwecken des Controllers mit
          einem Neuverbindungsversuch gewartet wird. Wenn mit der
          Neuverbindung länger gewartet wird, gibt es weniger Probleme
          mit gleichzeitig genutztem WLAN. Der Wert wird in Sekunden
          angegeben.

     ‘rssi-sampling-period’ (Vorgabe: ‘#xFF’)
          Voreinstellung für die RSSI-Abtastperiode. Sie wird benutzt,
          wenn ein Client einen Advertisement Monitor registriert und
          die RSSISamplingPeriod _nicht_ vorgibt.

          Mögliche Werte sind:
             • ‘#x0’: Alle Mitteilungen melden.

             • ‘N = #xXX’: Mitteilungen alle N x 100 msec melden (aus
               dem Bereich: #x01 to #xFE)

             • ‘#xFF’: In der Beobachtungsphase nur eine Mitteilung pro
               Gerät melden.

 -- Variable: gnome-keyring-service-type
     Dies ist der Typ des Dienstes, der den GNOME-Schlüsselbund
     (https://wiki.gnome.org/Projects/GnomeKeyring) bereitstellt. Sein
     Wert ist ein ‘gnome-keyring-configuration’-Objekt (siehe unten).
     Wir weisen darauf hin, dass Sie diesen Dienst _nicht_ benutzen
     müssen, wenn Sie ‘gnome-desktop-service-type’ benutzen, was ihn
     einbindet.

     Dieser Dienst fügt das ‘gnome-keyring’-Paket zum Systemprofil hinzu
     und erweitert PAM um Einträge zur Nutzung von
     ‘pam_gnome_keyring.so’, wodurch der Schlüsselbund von Nutzern
     entsperrt wird, wenn sie sich anmelden, und passwd auch das
     Passwort des Schlüsselbunds festlegt.

 -- Datentyp: gnome-keyring-configuration
     Verbundsobjekt für die Konfiguration des
     GNOME-Schlüsselbunddienstes.

     ‘keyring’ (Vorgabe: ‘gnome-keyring’)
          Welches GNOME-Schlüsselbund-Paket benutzt werden soll.

     ‘pam-services’
          Eine Liste von Paaren aus ‘(DIENST . TYP)’, die zu erweiternde
          PAM-Dienste bezeichnen. Dabei steht DIENST für den Namen eines
          bestehenden Dienstes, der erweitert werden soll, und als TYP
          kann ‘login’ oder ‘passwd’ angegeben werden.

          Wenn ‘login’ angegeben wird, wird ein optionales
          ‘pam_gnome_keyring.so’ zum Auth-Block ohne Argumente und zum
          Session-Block mit ‘auto_start’ hinzugefügt. Wenn ‘passwd’
          angegeben wird, wird ein optionales ‘pam_gnome_keyring.so’ zum
          Password-Block ohne Argumente hinzugefügt.

          Der vorgegebene Inhalt ist „gdm-password“ mit dem Wert ‘login’
          und „passwd“ mit dem Wert ‘passwd’.

 -- Variable: kwallet-service-type
     This is the type of the service that adds the KWallet keyring
     (https://invent.kde.org/plasma/kwallet-pam). Its value is a
     ‘kwallet-configuration’ object (see below). Note that, contrary to
     ‘gnome-desktop-service-type’, which includes the respective keyring
     for that service, ‘gnome-keyring-service-type’,
     ‘plasma-desktop-service-type’ does not include
     ‘kwallet-service-type’.

     This service adds the ‘kwallet-pam’ package to the system profile
     and extends PAM with entries using ‘pam_kwallet5.so’. It can unlock
     the user’s login keyring or set their password with ‘passwd’ at the
     time they log in.

 -- Data Type: kwallet-configuration
     Verbundsobjekt für die Konfiguration des
     KWallet-Schlüsselbunddienstes.

     ‘keyring’ (default: ‘kwallet-pam’)
          Welches KWallet-Schlüsselbund-Paket benutzt werden soll.

     ‘pam-services’
          Eine Liste von Paaren aus ‘(DIENST . TYP)’, die zu erweiternde
          PAM-Dienste bezeichnen. Dabei steht DIENST für den Namen eines
          bestehenden Dienstes, der erweitert werden soll, und als TYP
          kann eines der Symbole ‘login’ oder ‘passwd’ angegeben werden.

          Wenn ‘login’ angegeben wird, wird ein optionales
          ‘pam_kwallet5.so’ zum Auth-Block ohne Argumente und zum
          Session-Block mit ‘auto_start’ hinzugefügt. Wenn ‘passwd’
          angegeben wird, wird ein optionales ‘pam_kwallet5.so’ zum
          Password-Block ohne Argumente hinzugefügt.

          By default, it takes for value an alist associating the
          ‘"sddm"’ key with the ‘'login’ value, and the ‘"passwd"’ key
          with the ‘'passwd’ value.

 -- Variable: seatd-service-type
     seatd (https://sr.ht/~kennylevinsen/seatd/) ist ein minimaler
     Daemon zur Sitzungsverwaltung.

     Sitzungsverwaltung bedeutet, dass der Zugriff auf gemeinsame Geräte
     (Grafik, Eingabegeräte) vermittelt wird, ohne dass die Anwendungen,
     die zugreifen wollen, Administratorrechte brauchen.

          (append
            (list
             ;; damit seatd läuft
             (service seatd-service-type))

            ;; normalerweise zusammen mit %base-services
            %base-services)


     ‘seatd’ funktioniert über einen Unix-Socket. Dabei stellt ‘libseat’
     den clientseitigen Teil des Protokolls bereit. Wenn Anwendungen
     über ‘seatd’ Zugriff auf die gemeinsamen Ressourcen brauchen (z.B.
     ‘sway’), dann müssen sie Zugriff auf diesen Socket haben. Um das zu
     bewerkstelligen, kann man das Benutzerkonto, mit dem sie laufen,
     zur Gruppe hinzufügen, der der Socket von ‘seatd’ gehört (in der
     Regel die Gruppe „seat“). Das geht so:

          (user-account
            (name "alice")
            (group "users")
            (supplementary-groups '("wheel"   ;zur sudo-Nutzung usw. berechtigen
                                    "seat"    ;Sitzungsverwaltung
                                    "audio"   ;Soundkarte
                                    "video"   ;Videogeräte wie Webcams
                                    "cdrom")) ;die gute alte CD-ROM
            (comment "Bobs Schwester"))

     Je nachdem, wie Sie das System einrichten, müssen Sie nicht nur
     normale Benutzer, sondern auch Systembenutzerkonten, zu dieser
     Gruppe hinzufügen. Zum Beispiel verlangen manche greetd-Greeter,
     dass Grafik zur Verfügung steht, also müssen auch diese
     Benutzerkonten das mit seatd aushandeln können.

 -- Datentyp: seatd-configuration
     Verbundsobjekt für die Konfiguration des seatd-Daemon-Dienstes.

     ‘seatd’ (Vorgabe: ‘seatd’)
          Das zu benutzende seatd-Paket.

     ‘group’ (Vorgabe: ‘"seat"’)
          Die Gruppe, die den seatd-Socket besitzt.

     ‘socket’ (Vorgabe: ‘"/run/seatd.sock"’)
          Wo der seatd-Socket erzeugt wird.

     ‘logfile’ (Vorgabe: ‘"/var/log/seatd.log"’)
          In welche Protokolldatei geschrieben wird.

     ‘loglevel’ (Vorgabe: ‘"error"’)
          Die Protokollierungsstufe, wie ausführlich die Ausgaben ins
          Protokoll sind. Mögliche Werte: ‘"silent"’ (keine Ausgaben),
          ‘"error"’ (nur Fehler), ‘"info"’ und ‘"debug"’ (zur
          Fehlersuche).

   ---------- Footnotes ----------

   (1) D-Bus (https://dbus.freedesktop.org/) ist eine Einrichtung zur
Interprozesskommunikation. Deren Systembus wird benutzt, damit
Systemdienste miteinander kommunizieren können und damit sie bei
systemweiten Ereignissen benachrichtigt werden können.


File: guix.de.info,  Node: Tondienste,  Next: Dateisuch-Dienste,  Prev: Desktop-Dienste,  Up: Dienste

11.10.10 Tondienste
-------------------

Das Modul ‘(gnu services sound)’ stellt einen Dienst zur Verfügung, um
das Advanced-Linux-Sound-Architecture-System (ALSA) zu konfigurieren, so
dass PulseAudio als bevorzugter ALSA-Ausgabetreiber benutzt wird.

 -- Variable: alsa-service-type
     Dies ist der Typ des Dienstes für das als Advanced Linux Sound
     Architecture (ALSA) (https://alsa-project.org/) bekannte System,
     das die Konfigurationsdatei ‘/etc/asound.conf’ erzeugt. Der Wert
     für diesen Diensttyp ist ein ‘alsa-configuration’-Verbundsobjekt
     wie in diesem Beispiel:

          (service alsa-service-type)

     Siehe die folgenden Details zur ‘alsa-configuration’.

 -- Datentyp: alsa-configuration
     Repräsentiert die Konfiguration für den Dienst ‘alsa-service’.

     ‘alsa-plugins’ (Vorgabe: ALSA-PLUGINS)
          ‘alsa-plugins’-Paket, was benutzt werden soll.

     ‘pulseaudio?’ (Vorgabe: #T)
          Ob ALSA-Anwendungen transparent den PulseAudio-Audioserver
          (https://www.pulseaudio.org/) benutzen sollen.

          Wenn PulseAudio benutzt wird, können Sie gleichzeitig mehrere
          Anwendungen mit Tonausgabe ausführen und sie unter anderem mit
          ‘pavucontrol’ einzeln einstellen.

     ‘extra-options’ (Vorgabe: "")
          Die Zeichenkette, die an die Datei ‘/etc/asound.conf’
          angehängt werden soll.

   Wenn einzelne Benutzer von ALSAs Systemkonfiguration abweichende
Einstellungen vornehmen möchten, können Sie das mit der
Konfigurationsdatei ‘~/.asoundrc’ tun:

     # In Guix müssen wir den absoluten Pfad von Plugins angeben.
     pcm_type.jack {
       lib "/home/alice/.guix-profile/lib/alsa-lib/libasound_module_pcm_jack.so"
     }

     # ALSA an jack weiterleiten:
     # <http://jackaudio.org/faq/routing_alsa.html>.
     pcm.rawjack {
       type jack
       playback_ports {
         0 system:playback_1
         1 system:playback_2
       }

       capture_ports {
         0 system:capture_1
         1 system:capture_2
       }
     }

     pcm.!default {
       type plug
       slave {
         pcm "rawjack"
       }
     }

   Siehe <https://www.alsa-project.org/main/index.php/Asoundrc> für die
Details.

 -- Variable: pulseaudio-service-type
     Dies ist der Diensttyp für den PulseAudio-Soundserver
     (https://www.pulseaudio.org/). Mit ihm können die Voreinstellungen
     systemweit abgeändert werden. Dazu benutzen Sie eine
     ‘pulseaudio-configuration’, siehe unten.

          Warnung: This service overrides per-user configuration files.
          If you want PulseAudio to honor configuration files in
          ‘~/.config/pulse’, you have to unset the environment variables
          ‘PULSE_CONFIG’ and ‘PULSE_CLIENTCONFIG’ in your
          ‘~/.bash_profile’.

          Warnung: Dieser Dienst sorgt alleine noch nicht dafür, dass
          auf ihrer Maschine das ‘pulseaudio’-Paket vorliegt. Er fügt
          bloß Konfigurationsdateien dafür hinzu, wie im Folgenden
          beschrieben. Für den (zugegebenermaßen unwahrscheinlichen)
          Fall, dass Ihnen ein ‘pulseaudio’-Paket fehlt, möchten Sie es
          vielleicht durch den oben genannten ‘alsa-service-type’
          aktivieren.

 -- Datentyp: pulseaudio-configuration
     Repräsentiert die Konfiguration für den Dienst
     ‘pulseaudio-service’.

     ‘client-conf’ (Vorgabe: ‘'()’)
          Eine Liste der Einstellungen, die in ‘client.conf’ vorgenommen
          werden. Hierfür wird eine Liste von entweder Zeichenketten
          oder Symbol-Wert-Paaren akzeptiert. Eine Zeichenkette wird so,
          wie sie ist, eingefügt, mit einem Zeilenumbruch danach. Ein
          Paar wird als „Schlüssel = Wert“ formatiert, auch hier gefolgt
          von einem Zeilenumbruch.

     ‘daemon-conf’ (Vorgabe: ‘'((flat-volumes . no))’)
          Eine Liste der Einstellungen, die in ‘daemon.conf’ vorgenommen
          werden, im gleichen Format wie CLIENT-CONF.

     ‘script-file’ (Vorgabe: ‘(file-append pulseaudio "/etc/pulse/default.pa")’)
          Eine Datei mit dem als ‘default.pa’ zu nutzenden Skript. Wenn
          Sie das Feld ‘extra-script-files’ von weiter unten benutzen,
          wird ans Ende des angegebenen Skripts eine
          ‘.include’-Direktive angehängt, die auf
          ‘/etc/pulse/default.pa.d’ zeigt.

     ‘extra-script-files’ (Vorgabe: ‘'()’)
          Eine Liste dateiartiger Objekte, die zusätzliche
          PulseAudio-Skripte definieren, die bei der Initialisierung des
          ‘pulseaudio’-Daemons ausgeführt werden, nachdem das
          Hauptskript aus ‘script-file’ durchgelaufen ist. Die Skripte
          werden im Verzeichnis ‘/etc/pulse/default.pa.d’ abgelegt und
          sollten als Dateinamenserweiterung ebenso ‘.pa’ haben. Eine
          Referenz der verfügbaren Befehle bekommen Sie durch Ausführen
          von ‘man pulse-cli-syntax’.

     ‘system-script-file’ (Vorgabe: ‘(file-append pulseaudio "/etc/pulse/system.pa")’)
          Welche Skriptdatei als ‘system.pa’ verwendet werden soll.

     Im folgenden Beispiel werden das Standard-PulseAudio-Kartenprofil,
     das Standard-Ziel und die Standard-Quelle für eine alte
     SoundBlaster-Audigy-Soundkarte eingerichtet:
          (pulseaudio-configuration
           (extra-script-files
            (list (plain-file "audigy.pa"
                              (string-append "\
          set-card-profile alsa_card.pci-0000_01_01.0 \
            output:analog-surround-40+input:analog-mono
          set-default-source alsa_input.pci-0000_01_01.0.analog-mono
          set-default-sink alsa_output.pci-0000_01_01.0.analog-surround-40\n")))))

     Wir merken an, dass ‘pulseaudio-service-type’ zu
     ‘%desktop-services’ dazugehört. Wenn Ihre Betriebssystemdeklaration
     also von einer der „Desktop“-Vorlagen abstammt, dann werden Sie das
     obige Beispiel anpassen wollen, damit stattdessen der in
     ‘%desktop-services’ bestehende ‘pulseaudio-service-type’-Dienst
     modifiziert wird mit ‘modify-services’ (siehe *note
     ‘modify-services’: Service-Referenz.) und kein neuer Dienst
     angelegt wird.

 -- Variable: ladspa-service-type
     This service sets the LADSPA_PATH variable, so that programs, which
     respect it, e.g. PulseAudio, can load LADSPA plugins.

     Das folgende Beispiel wird den Dienst so einrichten, dass Module
     aus dem ‘swh-plugins’-Paket aktiviert werden:

          (service ladspa-service-type
                   (ladspa-configuration (plugins (list swh-plugins))))

     Siehe <http://plugin.org.uk/ladspa-swh/docs/ladspa-swh.html> für
     die Details.

Speaker Safety Daemon System Service
....................................

Speaker Safety Daemon (https://github.com/AsahiLinux/speakersafetyd) is
a user-space daemon that implements an analogue of the Texas Instruments
Smart Amp speaker protection model. It can be used to protect the
speakers on Apple Silicon devices.

 -- Variable: speakersafetyd-service-type
     This is the type for the ‘speakersafetyd’ system service, whose
     value is a ‘speakersafetyd-configuration’ record.

          (service speakersafetyd-service-type)

     See below for details about ‘speakersafetyd-configuration’.

 -- Data Type: speakersafetyd-configuration
     Available ‘speakersafetyd-configuration’ fields are:

     ‘blackbox-directory’ (default: ‘"/var/lib/speakersafetyd/blackbox"’) (type: string)
          The directory to which blackbox files are written when the
          speakers are getting too hot. The blackbox files contain audio
          and debug information which the developers of ‘speakersafetyd’
          might ask for when reporting bugs.

     ‘configuration-directory’ (type: file-like)
          The base directory as a G-expression (*note G-Ausdrücke::)
          that contains the configuration files of the speaker models.

     ‘group’ (default: ‘"speakersafetyd"’) (type: string)
          The group to run the Speaker Safety Daemon as.

     ‘log-file’ (default: ‘"/var/log/speakersafetyd.log"’) (type: string)
          The file name to the Speaker Safety Daemon log file.

     ‘maximum-gain-reduction’ (default: ‘7’) (type: integer)
          Maximum gain reduction before panicking, useful for debugging.

     ‘speakersafetyd’ (default: ‘speakersafetyd’) (type: file-like)
          The Speaker Safety Daemon package to use.

     ‘user’ (default: ‘"speakersafetyd"’) (type: string)
          The user to run the Speaker Safety Daemon as.


File: guix.de.info,  Node: Dateisuch-Dienste,  Next: Datenbankdienste,  Prev: Tondienste,  Up: Dienste

11.10.11 Dateisuch-Dienste
--------------------------

Die Dienste in diesem Abschnitt tragen Informationen in eine
“Dateidatenbank” ein, mit deren Hilfe Dateien auf Ihrer Maschine schnell
gefunden werden können. Diese Dienste werden vom Modul ‘(gnu services
admin)’ zur Verfügung gestellt.

   Als Erstes gibt es ‘file-database-service-type’, wodurch regelmäßig
der altehrwürdige Befehl ‘updatedb’ aufgerufen wird (siehe *note
(find)Invoking updatedb::). Durch den Befehl werden Dateinamen in einer
Datenbank gesammelt, die mit dem Befehl ‘locate’ durchsucht werden kann
(siehe *note (find)Invoking locate::) wie im Beispiel hier:

     locate wichtige-notizen.txt

   Sie können diesen Dienst mit seinen Vorgabeeinstellungen aktivieren,
indem Sie folgendes Schnipsel zu den Diensten in Ihrer
Betriebssystemkonfiguration eintragen:

     (service file-database-service-type)

   Dann wird die Datenbank einmal pro Woche aktualisiert; dabei werden
Dateien aus ‘/gnu/store’ ignoriert – solche sucht man besser mit ‘guix
locate’ (siehe *note Aufruf von guix locate::). Es ist Ihnen natürlich
auch möglich, eine eigene Konfiguration wie unten beschrieben anzugeben.

 -- Variable: file-database-service-type
     Der Diensttyp des Dateidatenbank-Dienstes, der regelmäßig
     ‘updatedb’ aufruft. Sein Wert muss ein
     ‘file-database-configuration’-Verbundsobjekt sein, wie im Folgenden
     beschrieben.

 -- Datentyp: file-database-configuration
     Der Verbundsdatentyp, der die Konfiguration von
     ‘file-database-service-type’ repräsentiert, mit den folgenden
     Feldern:

     ‘package’ (Vorgabe: ‘findutils’)
          Das Paket, dessen Befehl ‘updatedb’ verwendet werden soll.
          Beispiele solcher Pakete sind GNU Findutils und Plocate.

     ‘schedule’ (Vorgabe: ‘%default-file-database-update-schedule’)
          This is the schedule of database updates, expressed as a
          string in traditional cron syntax or as a gexp evaluating to a
          Shepherd calendar event (*note (shepherd)Timers::).

     ‘excluded-directories’ (Vorgabe: ‘%default-file-database-excluded-directories’)
          Eine Liste, welche Verzeichnisse _nicht_ in die Dateidatenbank
          eingetragen werden sollen, als reguläre Ausdrücke. Vorgegeben
          ist, ‘/tmp’ und ‘/gnu/store’ zu ignorieren; ‘/gnu/store’ macht
          man besser durch ‘guix locate’ suchbar (siehe *note Aufruf von
          guix locate::). Diese Liste wird über die Befehlszeilenoption
          ‘--prunepaths’ an ‘updatedb’ übergeben (siehe *note
          (find)Invoking updatedb::).

   Der zweite Dienst ‘package-database-service-type’ macht Einträge in
die Datenbank für ‘guix locate’, mit der Sie nach Paketen suchen können,
die die angegebene Datei enthalten (siehe *note Aufruf von guix
locate::). Über den Dienst wird eine systemweite Datenbank regelmäßig
aktualisiert, die jedem, der auf dem System ‘guix locate’ aufruft, zur
Verfügung steht. Um diesen Dienst mit seinen Vorgabeeinstellungen zu
aktivieren, fügen Sie folgendes Schnipsel zu den Diensten in Ihrer
Betriebssystemkonfiguration hinzu:

     (service package-database-service-type)

   Dadurch wird ‘guix locate --update’ einmal die Woche aufgerufen.

 -- Variable: package-database-service-type
     Dies ist der Diensttyp für regelmäßige Aktualisierungen von ‘guix
     locate’ (siehe *note Aufruf von guix locate::). Sein Wert muss ein
     ‘package-database-configuration’-Verbundsobjekt sein, wie im
     Folgenden gezeigt.

 -- Datentyp: package-database-configuration
     Der Datentyp, um die regelmäßige Aktualisierung der Datenbank mit
     Paketinformationen einzustellen. Er hat die folgenden Felder:

     ‘package’ (Vorgabe: ‘guix’)
          Das zu verwendende Guix-Paket.

     ‘schedule’ (Vorgabe: ‘%default-package-database-update-schedule’)
          This is the schedule of the periodic ‘guix locate --update’
          job, expressed as a string in traditional cron syntax or as a
          gexp evaluating to a Shepherd calendar event (*note
          (shepherd)Timers::).

     ‘method’ (Vorgabe: ‘'store’)
          Nach welcher Methode ausgewählt werden soll, welche Pakete in
          den Index aufgenommn werden. Beim Vorgabewert ‘'store’ wird
          eine eher vollständige Datenbank unter größerer Auslastung von
          Prozessor und Ein- und Ausgaben angelegt.

     ‘channels’ (Vorgabe: ‘#~%default-channels’)
          Ein G-Ausdruck, welche Kanäle beim Aktualisieren der Datenbank
          benutzt werden sollen (siehe *note Kanäle::).


File: guix.de.info,  Node: Datenbankdienste,  Next: Mail-Dienste,  Prev: Dateisuch-Dienste,  Up: Dienste

11.10.12 Datenbankdienste
-------------------------

Das Modul ‘(gnu services databases)’ stellt die folgenden Dienste zur
Verfügung.

PostgreSQL
..........

 -- Variable: postgresql-service-type
     Der Diensttyp für den PostgreSQL-Datenbankserver. Sein Wert muss
     ein gültiges ‘postgresql-configuration’-Objekt sein, wie unten
     beschrieben. Das folgende Beispiel zeigt einen PostgreSQL-Dienst in
     seiner Vorgabekonfiguration.

          (service postgresql-service-type
                   (postgresql-configuration
                    (postgresql postgresql)))

     Wenn diese Dienste nicht starten können, ist vielleicht bereits ein
     inkompatibler Datenbankverbund („Cluster“) in DATA-DIRECTORY
     vorhanden. Ändern Sie dann den Wert dafür (oder falls Sie den
     Verbund nicht mehr brauchen, löschen Sie DATA-DIRECTORY einfach)
     und starten Sie den Dienst neu.

     Nach Voreinstellung müssen sich normale Benutzerkonten des
     Guix-Systems, die mit PostgreSQL kommunizieren, sogenannte „Peers“,
     zunächst authentifizieren. Allerdings ist für das
     ‘postgres’-Benutzerkonto keine Shell eingestellt (außer
     ‘allow-login?’ ist ‘#t’), wodurch keine ‘psql’-Befehle durch diesen
     Benutzer ausgeführt werden können. Um ‘psql’ benutzen zu können,
     können Sie sich vorläufig als der ‘postgres’-Nutzer unter Angabe
     einer Shell anmelden, ein Konto für einen PostgreSQL-Administrator
     (einen „Superuser“) mit demselben Namen wie einer der Benutzer des
     Systems einrichten und dann die zugehörige Datenbank erstellen.

          sudo -u postgres -s /bin/sh
          createuser --interactive
          createdb $BENUTZER_ANMELDENAME  # muss angepasst werden

 -- Datentyp: postgresql-configuration
     Der Datentyp repräsentiert die Konfiguration für den
     ‘postgresql-service-type’.

     ‘postgresql’
          Das PostgreSQL-Paket, was für diesen Dienst benutzt werden
          soll.

     ‘port’ (Vorgabe: ‘5432’)
          Der Port, auf dem PostgreSQL lauschen soll.

     ‘locale’ (Vorgabe: ‘"en_US.utf8"’)
          Welche Regions- und Spracheinstellung („Locale“) beim
          Erstellen des Datenbankverbunds voreingestellt werden soll.

     ‘config-file’ (Vorgabe: ‘(postgresql-config-file)’)
          Aus welcher Konfigurationsdatei die Laufzeitkonfiguration von
          PostgreSQL geladen werden soll. Vorgegeben ist, die
          Einstellungen aus einem postgresql-config-file-Verbundsobjekt
          mit Vorgabewerten zu nehmen.

     ‘log-directory’ (Vorgabe: ‘"/var/log/postgresql"’)
          In welchem Verzeichnis die Ausgabe von ‘pg_ctl’ in eine Datei
          namens ‘"pg_ctl.log"’ geschrieben wird. Diese Datei kann zum
          Beispiel dabei helfen, Fehler in der Konfiguration von
          PostgreSQL zu finden.

     ‘data-directory’ (Vorgabe: ‘"/var/lib/postgresql/data"’)
          Das Verzeichnis, in dem die Daten gespeichert werden sollen.

     ‘extension-packages’ (Vorgabe: ‘'()’)
          Zusätzliche Erweiterungen werden aus den unter
          EXTENSION-PACKAGES aufgeführten Paketen geladen. Erweiterungen
          sind zur Laufzeit verfügbar. Zum Beispiel kann ein Nutzer den
          postgresql-service-Dienst wie in diesem Beispiel
          konfigurieren, um eine geografische Datenbank mit Hilfe der
          ‘postgis’-Erweiterung zu erzeugen:

               (use-package-modules databases geo)

               (operating-system
                 ...
                 ;; postgresql is required to run `psql' but postgis is not required for
                 ;; proper operation.
                 (packages (cons* postgresql %base-packages))
                 (services
                   (cons*
                     (service postgresql-service-type
                              (postgresql-configuration
                               (postgresql postgresql)
                               (extension-packages (list postgis))))
                     %base-services)))

          Dann wird die Erweiterung sichtbar und Sie können eine leere
          geografische Datenbak auf diese Weise initialisieren:

               psql -U postgres
               > create database postgistest;
               > \connect postgistest;
               > create extension postgis;
               > create extension postgis_topology;

          Es ist nicht notwendig, dieses Feld für contrib-Erweiterungen
          wie hstore oder dblink hinzuzufügen, weil sie bereits durch
          postgresql geladen werden können. Dieses Feld wird nur
          benötigt, um Erweiterungen hinzuzufügen, die von anderen
          Paketen zur Verfügung gestellt werden.

     ‘create-account?’ (Vorgabe: ‘#t’)
          Ob ein Benutzer und eine Benutzergruppe ‘postgres’ angelegt
          werden soll.

     ‘allow-login?’ (default: ‘#f’)
          Whether or not to allow login into the created account.

     ‘home-directory’ (default: ‘"/var/empty"’)
          The home directory of the user. It is strongly advised to
          change this if you set ‘allow-login?’ to ‘#t’.

     ‘uid’ (Vorgabe: ‘#f’)
          Hier kann der Benutzeridentifikator (UID) für das
          Benutzerkonto des ‘postgres’-Daemons ausdrücklich angegeben
          werden. Das brauchen Sie normalerweise nicht, weil automatisch
          eine freie UID zugewiesen wird.

          Eine Situation, in der die Option doch hilfreich sein kann,
          ist, wenn DATA-DIRECTORY auf einer Netzwerkfreigabe liegt, die
          eingebunden wird.

     ‘gid’ (Vorgabe: ‘#f’)
          Hier kann der Gruppenidentifikator (GID) für die
          Benutzergruppe des ‘postgres’-Daemons ausdrücklich angegeben
          werden.

 -- Datentyp: postgresql-config-file
     Der Datentyp, der die Konfigurationsdatei von PostgreSQL
     repräsentiert. Wie im folgenden Beispiel gezeigt, kann er benutzt
     werden, um die Konfiguration von PostgreSQL anzupassen. Es sei
     darauf hingewiesen, dass Sie jeden beliebigen G-Ausdruck oder
     Dateinamen anstelle dieses Verbunds angeben können, etwa wenn Sie
     lieber eine bestehende Konfigurationsdatei benutzen möchten.

          (service postgresql-service-type
                   (postgresql-configuration
                    (config-file
                     (postgresql-config-file
                      (log-destination "stderr")
                      (hba-file
                       (plain-file "pg_hba.conf"
                                   "
          local	all	all			trust
          host	all	all	127.0.0.1/32 	md5
          host	all	all	::1/128 	md5"))
                      (extra-config
                       '(("session_preload_libraries"     "auto_explain")
                         ("random_page_cost"              2)
                         ("auto_explain.log_min_duration" "100 ms")
                         ("work_mem"                      "500 MB")
                         ("logging_collector"             #t)
                         ("log_directory"                 "/var/log/postgresql")))))))

     ‘log-destination’ (Vorgabe: ‘"syslog"’)
          Welche Protokollierungsmethode für PostgreSQL benutzt werden
          soll. Hier können mehrere Werte kommagetrennt angegeben
          werden.

     ‘hba-file’ (Vorgabe: ‘%default-postgres-hba’)
          Ein Dateiname oder G-Ausdruck für die Konfiguration der
          Authentifizierung durch den Server („Host-based
          Authentication“).

     ‘ident-file’ (Vorgabe: ‘%default-postgres-ident’)
          Ein Dateiname oder G-Ausdruck für die Konfiguration der
          Benutzernamensabbildung („User name mapping“).

     ‘socket-directory’ (Vorgabe: ‘"/var/run/postgresql"’)
          Gibt an, in welchem Verzeichnis der oder die Unix-Socket(s) zu
          finden sind, auf denen PostgreSQL auf Verbindungen von
          Client-Anwendungen lauscht. Ist dies auf ‘""’ gesetzt, so
          lauscht PostgreSQL auf gar keinem Unix-Socket, so dass
          Verbindungen zum Server nur mit TCP/IP-Sockets aufgebaut
          werden können.

          Der Vorgabewert ‘#false’ bedeutet, dass der voreingestellte
          Wert von PostgreSQL benutzt wird. Derzeit ist die
          Voreinstellung ‘/tmp’.

     ‘extra-config’ (Vorgabe: ‘'()’)
          Eine Liste zusätzlicher Schlüssel-Wert-Kombinationen, die in
          die PostgreSQL-Konfigurationsdatei aufgenommen werden sollen.
          Jeder Eintrag in der Liste muss eine Liste von Listen sein,
          deren erstes Element dem Schlüssel entspricht und deren übrige
          Elemente die Werte angeben.

          Als Werte können Zahlen, Boolesche Ausdrücke oder
          Zeichenketten dienen. Sie werden auf die Parametertypen von
          PostgreSQL, ‘Boolean’, ‘String’, ‘Numeric’, ‘Numeric with
          Unit’ und ‘Enumerated’, abgebildet, die hier
          (https://www.postgresql.org/docs/current/config-setting.html)
          beschrieben werden.

 -- Variable: postgresql-role-service-type
     Mit diesem Dienst können PostgreSQL-Rollen und -Datenbanken erzeugt
     werden, nachdem der PostgreSQL-Dienst gestartet worden ist. Hier
     ist ein Beispiel, wie man ihn benutzt.

          (service postgresql-role-service-type
                      (postgresql-role-configuration
                       (roles
                        (list (postgresql-role
                               (name "test")
                               (create-database? #t))))))

     Dieser Dienst kann mit weiteren Rollen erweitert werden, wie in
     diesem Beispiel:

          (service-extension postgresql-role-service-type
                             (const (list
                                     (postgresql-role
                                      (name "alice")
                                      (create-database? #t)))))

 -- Datentyp: postgresql-role
     PostgreSQL verwaltet Zugriffsrechte auf Datenbanken mit dem
     Rollenkonzept. Eine Rolle kann als entweder ein Datenbanknutzer
     oder eine Gruppe von Datenbanknutzern verstanden werden, je
     nachdem, wie die Rolle eingerichtet wurde. Rollen können Eigentümer
     von Datenbankobjekten sein (zum Beispiel von Tabellen) und sie
     können anderen Rollen Berechtigungen auf diese Objekte zuweisen
     oder steuern, wer auf welche Objekte Zugriff hat.

     ‘name’
          Der Rollenname.

     ‘permissions’ (Vorgabe: ‘'(createdb login)’)
          Die Liste der Berechtigungen der Rolle. Unterstützte
          Berechtigungen sind ‘bypassrls’, ‘createdb’, ‘createrole’,
          ‘login’, ‘replication’ und ‘superuser’.

     ‘create-database?’ (Vorgabe: ‘#f’)
          Ob eine Datenbank mit demselben Namen wie die Rolle erzeugt
          werden soll.

     ‘password-file’ (Vorgabe: ‘#f’)
          A string representing the path of a file that contains the
          password to be set for the role.

     ‘encoding’ (Vorgabe: ‘"UTF8"’)
          Mit welchem Zeichensatz in der Datenbank Text gespeichert
          wird.

     ‘collation’ (Vorgabe: ‘"en_US.utf8"’)
          Nach welcher Reihenfolge Zeichenketten in der Locale sortiert
          werden.

     ‘ctype’ (Vorgabe: ‘"en_US.utf8"’)
          Nach welchen Vorgaben Zeichen in der Locale klassifiziert
          werden.

     ‘template’ (Vorgabe: ‘"template1"’)
          Welche Vorlage nach Voreinstellung kopiert wird, wenn neue
          Datenbanken angelegt werden. Benutzen Sie ‘"template0"’ für
          eine unveränderte Datenbank ohne systemeigene Anpassungen.

 -- Datentyp: postgresql-role-configuration
     Der Datentyp, der die Konfiguration des
     POSTGRESQL-ROLE-SERVICE-TYPE repräsentiert.

     ‘host’ (Vorgabe: ‘"/var/run/postgresql"’)
          Mit welchem PostgreSQL-Host eine Verbindung hergestellt werden
          soll.

     ‘log’ (Vorgabe: ‘"/var/log/postgresql_roles.log"’)
          Der Dateiname der Protokolldatei.

     ‘shepherd-requirement’ (Vorgabe: ‘'(user-processes postgres)’)

          The Shepherd services dependencies to use. Add extra
          dependencies to
          ‘%default-postgresql-role-shepherd-requirement’ to extend its
          value.

     ‘roles’ (Vorgabe: ‘'()’)
          Welche PostgreSQL-Rollen von Anfang an erzeugt werden sollen.

MariaDB/MySQL
.............

 -- Variable: mysql-service-type
     Dies ist der Diensttyp für einen Datenbankserver zu MySQL oder
     MariaDB. Sein Wert ist ein ‘mysql-configuration’-Objekt, das das zu
     nutzende Paket sowie verschiedene Einstellungen für den
     ‘mysqld’-Daemon festlegt.

 -- Datentyp: mysql-configuration
     Der Datentyp, der die Konfiguration des MYSQL-SERVICE-TYPE
     repräsentiert.

     ‘mysql’ (Vorgabe: MARIADB)
          Das Paketobjekt des MySQL-Datenbankservers; es kann entweder
          MARIADB oder MYSQL sein.

          Für MySQL wird bei der Aktivierung des Dienstes ein temporäres
          Administratorpasswort („root“-Passwort) angezeigt. Für MariaDB
          ist das „root“-Passwort leer.

     ‘bind-address’ (Vorgabe: ‘"127.0.0.1"’)
          Auf welcher IP-Adresse auf Verbindungen gelauscht wird.
          Benutzen Sie ‘"0.0.0.0"’, wenn sich der Server an alle
          verfügbaren Netzwerkschnittstellen binden soll.

     ‘port’ (Vorgabe: ‘3306’)
          Der TCP-Port, auf dem der Datenbankserver auf eingehende
          Verbindungen lauscht.

     ‘socket’ (Vorgabe: ‘"/run/mysqld/mysqld.sock"’)
          Welche Socket-Datei für lokale Verbindungen (die also nicht
          über ein Netzwerk laufen) benutzt wird.

     ‘extra-content’ (Vorgabe: ‘""’)
          Weitere Einstellungen für die Konfigurationsdatei ‘my.cnf’.

     ‘extra-environment’ (Vorgabe: ‘#~'()’)
          Welche Liste von Umgebungsvariablen dem ‘mysqld’-Prozess
          mitgegeben wird.

     ‘auto-upgrade?’ (Vorgabe: ‘#t’)
          Ob nach dem Starten des Dienstes ‘mysql_upgrade’ automatisch
          ausgeführt werden soll. Das ist nötig, um das “Systemschema”
          nach „großen“ Aktualisierungen auf den neuen Stand zu bringen
          (etwa beim Umstieg von MariaDB 10.4 auf 10.5), aber Sie können
          es abschalten, wenn Sie das lieber manuell vornehmen.

Memcached
.........

 -- Variable: memcached-service-type
     Dies ist der Diensttyp für den Memcached-Dienst
     (https://memcached.org/), der einen verteilten Zwischenspeicher im
     Arbeitsspeicher (einen „In-Memory-Cache“) zur Verfügung stellt. Der
     Wert dieses Dienstes ist ein ‘memcached-configuration’-Objekt.

     (service memcached-service-type)

 -- Datentyp: memcached-configuration
     Der Datentyp, der die Konfiguration von memcached repräsentiert.

     ‘memcached’ (Vorgabe: ‘memcached’)
          Das Memcached-Paket, das benutzt werden soll.

     ‘interfaces’ (Vorgabe: ‘'("0.0.0.0")’)
          Auf welchen Netzwerkschnittstellen gelauscht werden soll.

     ‘tcp-port’ (Vorgabe: ‘11211’)
          Der Port, auf dem Verbindungen akzeptiert werden.

     ‘udp-port’ (Vorgabe: ‘11211’)
          Der Port, auf dem UDP-Verbindungen akzeptiert werden. Ist der
          Wert 0, wird _nicht_ auf einem UDP-Socket gelauscht.

     ‘additional-options’ (Vorgabe: ‘'()’)
          Zusätzliche Befehlszeilenoptionen, die an ‘memcached’
          übergeben werden.

Redis
.....

Redis (https://redis.io/) is an in-memory data store used by millions of
developers as a cache, vector database, document database, streaming
engine, and message broker. Redis has built-in replication and different
levels of on-disk persistence. It supports complex data types (for
example, strings, hashes, lists, sets, sorted sets, and JSON), with
atomic operations defined on those data types.

 -- Variable: redis-service-type
     Type of the service that runs ‘redis’, an in-memory data store. The
     value for this service is a ‘<redis-configuration>’ object.

 -- Datentyp: redis-configuration
     Available ‘redis-configuration’ fields are:

     ‘redis’ (default: ‘redis’) (type: package)
          Das zu benutzende Redis-Paket.

     ‘bind’ (default: ‘"127.0.0.1"’) (type: string)
          Die Netzwerkschnittstelle, auf der gelauscht wird.

     ‘port’ (default: ‘6379’) (type: number)
          Der Port, auf dem Verbindungen akzeptiert werden. Ist der Wert
          0, wird das Lauschen auf einem TCP-Socket deaktiviert.

     ‘working-directory’ (default: ‘"/var/lib/redis"’) (type: string)
          Das Verzeichnis, in dem die Datenbank und damit zu tun habende
          Dateien gespeichert werden.

     ‘config-file’ (type: maybe-string)
          Default location for config file.


File: guix.de.info,  Node: Mail-Dienste,  Next: Kurznachrichtendienste,  Prev: Datenbankdienste,  Up: Dienste

11.10.13 Mail-Dienste
---------------------

Das Modul ‘(gnu services mail)’ stellt Guix-Dienstdefinitionen für
E-Mail-Dienste zur Verfügung: IMAP-, POP3- und LMTP-Server sowie Mail
Transport Agents (MTAs). Jede Menge Akronyme! Auf diese Dienste wird in
den folgenden Unterabschnitten im Detail eingegangen.

Dovecot-Dienst
..............

 -- Variable: dovecot-service-type
     Diensttyp für einen Dienst, der den IMAP-/POP3-/LMTP-Mailserver
     Dovecot ausführt. Sein Wert ist ein
     ‘<dovecot-configuration>’-Objekt.

   Normalerweise muss für Dovecot nicht viel eingestellt werden; das
vorgegebene Konfigurationsobjekt, das mit ‘(dovecot-configuration)’
erzeugt wird, wird genügen, wenn Ihre Mails in ‘~/Maildir’ gespeichert
werden. Ein selbstsigniertes Zertifikat wird für durch TLS geschützte
Verbindungen generiert, aber Dovecot lauscht nach Vorgabe auch auf
unverschlüsselten Ports. Es gibt jedoch eine Reihe von Optionen, die
Mail-Administratoren unter Umständen ändern müssen, was Guix – wie auch
bei anderen Diensten – mit einer einheitlichen Scheme-Schnittstelle
möglich macht.

   Um zum Beispiel anzugeben, dass sich Mails in ‘maildir~/.mail’
befinden, würde man den Dovecot-Dienst wie folgt instanziieren:

     (service dovecot-service-type
              (dovecot-configuration
                (mail-location "maildir:~/.mail")))

   Im Folgenden sehen Sie die verfügbaren Konfigurationsparameter. Jeder
Parameterdefinition ist ihr Typ vorangestellt; zum Beispiel bedeutet
‘Zeichenketten-Liste foo’, dass der Parameter ‘foo’ als eine Liste von
Zeichenketten angegeben werden sollte. Es ist auch möglich, die
Konfiguration als Zeichenkette anzugeben, wenn Sie eine alte
‘dovecot.conf’-Datei haben, die Sie von einem anderen System übernehmen
möchten; am Ende finden Sie mehr Details dazu.

   Verfügbare ‘dovecot-configuration’-Felder sind:

 -- dovecot-configuration-Parameter: „package“ dovecot
     Das Dovecot-Paket.

 -- dovecot-configuration parameter: package-list extensions
     A list of additional Dovecot plugin packages to make available at
     runtime. During service activation, the ‘lib/dovecot’ directory
     from each specified package is combined with Dovecot’s core modules
     into a unified module directory.

     For example, to enable Sieve filtering:

          (extensions (list dovecot-pigeonhole))

     Each package in the list must provide its modules at ‘lib/dovecot’,
     as this is where ‘make-dovecot-moduledir’ expects to find its
     extensions. The service combines these directories to create a
     unified module structure.

     The default value is an empty list, providing only core Dovecot
     functionality.

 -- dovecot-configuration-Parameter: Kommagetrennte-Zeichenketten-Liste
          listen
     Eine Liste der IPs oder der Rechnernamen („Hosts“), auf denen auf
     Verbindungen gelauscht wird. ‘*’ bedeutet, auf allen
     IPv4-Schnittstellen zu lauschen; ‘::’ lässt auf allen
     IPv6-Schnittstellen lauschen. Wenn Sie nicht der Vorgabe
     entsprechende Ports oder komplexere Einstellungen festlegen
     möchten, sollten Sie die Adress- und Portfelder des ‘inet-listener’
     beim jeweiligen Dienst anpassen, für den Sie sich interessieren.

 -- dovecot-configuration-Parameter: „protocol-configuration“-Liste
          protocols
     Die Liste der Protokolle, die angeboten werden sollen. Zu den
     verfügbaren Protokollen gehören ‘imap’, ‘pop3’ und ‘lmtp’.

     Verfügbare ‘protocol-configuration’-Felder sind:

      -- protocol-configuration-Parameter: Zeichenkette name
          Der Name des Protokolls.

      -- protocol-configuration-Parameter: Zeichenkette auth-socket-path
          Der Pfad des UNIX-Sockets zum Hauptauthentifizierungsserver,
          um Benutzer zu finden. Er wird von imap (für geteilte
          Benutzer) und lda benutzt. Die Vorgabe ist
          ‘"/var/run/dovecot/auth-userdb"’.

      -- protocol-configuration-Parameter: Boolescher-Ausdruck
               imap-metadata?
          Ob die Erweiterung ‘IMAP METADATA’, definiert in RFC 5464
          (https://tools.ietf.org/html/rfc5464), aktiviert werden soll,
          mit der Clients einem Postfach („Mailbox“) nutzereigene
          Metadaten und Annotationen über IMAP zuweisen und sie abfragen
          können.

          Wenn dies ‘#t’ ist, müssen Sie auch über das Feld
          ‘mail-attribute-dict’ das zu nutzende Dictionary (eine
          Schlüssel-Wert-Datenbank) angeben.

          Vorgegeben ist ‘#f’.

      -- protocol-configuration-Parameter:
               Leerzeichengetrennte-Zeichenketten-Liste
               managesieve-notify-capabilities
          Welche NOTIFY-Capabilitys an Clients gemeldet werden, die sich
          mit dem ManageSieve-Dienst verbinden, bevor sie sich
          authentisiert haben. Sie dürfen sich von den Capabilitys
          unterscheiden, die angemeldeten Nutzern angeboten werden. Wenn
          dieses Feld leer gelassen wird, wird nach Vorgabe alles
          angegeben, was der Sieve-Interpretierer unterstützt.

          Die Vorgabe ist ‘'()’.

      -- protocol-configuration-Parameter:
               Leerzeichengetrennte-Zeichenketten-Liste
               managesieve-sieve-capability
          Welche SIEVE-Capabilitys an Clients gemeldet werden, die sich
          mit dem ManageSieve-Dienst verbinden, bevor sie sich
          authentisiert haben. Sie dürfen sich von den Capabilitys
          unterscheiden, die angemeldeten Nutzern angeboten werden. Wenn
          dieses Feld leer gelassen wird, wird nach Vorgabe alles
          angegeben, was der Sieve-Interpretierer unterstützt.

          Die Vorgabe ist ‘'()’.

      -- protocol-configuration-Parameter:
               Leerzeichengetrennte-Zeichenketten-Liste mail-plugins
          Leerzeichengetrennte Liste der zu ladenden Plugins.

      -- protocol-configuration-Parameter: Nichtnegative-ganze-Zahl
               mail-max-userip-connections
          Die Maximalzahl der IMAP-Verbindungen, die jeder Nutzer von
          derselben IP-Adresse aus benutzen kann. _Anmerkung_: Beim
          Vergleichen des Benutzernamens wird Groß- und Kleinschreibung
          unterschieden. Die Vorgabe ist ‘10’.

 -- dovecot-configuration-Parameter: „service-configuration“-Liste
          services
     Die Liste der zu aktivierenden Dienste. Zu den verfügbaren Diensten
     gehören ‘imap’, ‘imap-login’, ‘pop3’, ‘pop3-login’, ‘auth’ und
     ‘lmtp’.

     Verfügbare ‘service-configuration’-Felder sind:

      -- service-configuration-Parameter: Zeichenkette kind
          Die Dienstart (englisch „kind“). Zu den gültigen Werten
          gehören ‘director’, ‘imap-login’, ‘pop3-login’, ‘lmtp’,
          ‘imap’, ‘pop3’, ‘auth’, ‘auth-worker’, ‘dict’, ‘tcpwrap’,
          ‘quota-warning’ oder alles andere.

      -- service-configuration-Parameter: „listener-configuration“-Liste
               listeners
          „Listener“ für den Dienst, also Lauscher auf neue
          Verbindungen. Als Listener kann entweder eine
          ‘unix-listener-configuration’, eine
          ‘fifo-listener-configuration’ oder eine
          ‘inet-listener-configuration’ angegeben werden. Die Vorgabe
          ist ‘'()’.

          Verfügbare ‘unix-listener-configuration’-Felder sind:

           -- unix-listener-configuration-Parameter: Zeichenkette path
               Der Pfad zur Datei, relativ zum Feld ‘base-dir’. Er wird
               auch als der Abschnittsname verwendet.

           -- unix-listener-configuration-Parameter: Zeichenkette mode
               Der Zugriffsmodus des Sockets. Die Vorgabe ist ‘"0600"’.

           -- unix-listener-configuration-Parameter: Zeichenkette user
               Der Benutzer, dem der Socket gehört. Die Vorgabe ist
               ‘""’.

           -- unix-listener-configuration-Parameter: Zeichenkette group
               Die Gruppe, der der Socket gehört. Die Vorgabe ist ‘""’.

          Verfügbare ‘fifo-listener-configuration’-Felder sind:

           -- fifo-listener-configuration-Parameter: Zeichenkette path
               Der Pfad zur Datei, relativ zum Feld ‘base-dir’. Er wird
               auch als der Abschnittsname verwendet.

           -- fifo-listener-configuration-Parameter: Zeichenkette mode
               Der Zugriffsmodus des Sockets. Die Vorgabe ist ‘"0600"’.

           -- fifo-listener-configuration-Parameter: Zeichenkette user
               Der Benutzer, dem der Socket gehört. Die Vorgabe ist
               ‘""’.

           -- fifo-listener-configuration-Parameter: Zeichenkette group
               Die Gruppe, der der Socket gehört. Die Vorgabe ist ‘""’.

          Verfügbare ‘inet-listener-configuration’-Felder sind:

           -- inet-listener-configuration-Parameter: Zeichenkette
                    protocol
               Das Protokoll, auf das gelauscht wird.

           -- inet-listener-configuration-Parameter: Zeichenkette
                    address
               Die Adresse, auf der gelauscht wird. Bleibt das Feld
               leer, wird auf allen Adressen gelauscht. Die Vorgabe ist
               ‘""’.

           -- inet-listener-configuration-Parameter:
                    Nichtnegative-ganze-Zahl port
               Der Port, auf dem gelauscht werden soll.

           -- inet-listener-configuration-Parameter: Boolescher-Ausdruck
                    ssl?
               Ob für diesen Dienst SSL benutzt werden kann: ‘yes’ für
               ja, ‘no’ für nein oder ‘required’ für „verpflichtend“.
               Die Vorgabe ist ‘#t’.

      -- service-configuration-Parameter: Nichtnegative-ganze-Zahl
               client-limit
          Die maximale Anzahl gleichzeitiger Verbindungen mit Clients
          pro Prozess. Sobald diese Anzahl von Verbindungen eingegangen
          ist, bewirkt das Eingehen der nächsten Verbindung, dass
          Dovecot einen weiteren Prozess startet. Ist sie auf 0 gesetzt,
          benutzt Dovecot stattdessen ‘default-client-limit’.

          Die Vorgabe ist ‘0’.

      -- service-configuration-Parameter: Nichtnegative-ganze-Zahl
               service-count
          Die Anzahl Verbindungen, die behandelt werden, bevor ein neuer
          Prozess gestartet wird. Typischerweise sind die einzig
          sinnvollen Werte 0 (unbeschränkt) oder 1. 1 ist sicherer, aber
          0 ist schneller. Siehe <doc/wiki/LoginProcess.txt>. Die
          Vorgabe ist ‘1’.

      -- service-configuration-Parameter: Nichtnegative-ganze-Zahl
               process-limit
          Die maximale Anzahl von Prozessen, die für diesen Dienst
          existieren können. Wenn sie auf 0 gesetzt ist, benutzt Dovecot
          stattdessen ‘default-process-limit’.

          Die Vorgabe ist ‘0’.

      -- service-configuration-Parameter: Nichtnegative-ganze-Zahl
               process-min-avail
          Die Anzahl der Prozesse, mit denen immer auf neue Verbindungen
          gewartet wird. Die Vorgabe ist ‘0’.

      -- service-configuration-Parameter: Nichtnegative-ganze-Zahl
               vsz-limit
          Wenn Sie ‘service-count 0’ festlegen, müssen Sie hierfür
          wahrscheinlich eine größere Zahl wählen. Die Vorgabe ist
          ‘256000000’.

 -- dovecot-configuration-Parameter: dict-configuration dict
     Die Wörterbuchkonfiguration, wie sie der
     ‘dict-configuration’-Konstruktor erzeugt.

     Verfügbare ‘dict-configuration’-Felder sind:

      -- dict-configuration-Parameter: Formlose-Felder entries
          Eine Liste von Schlüssel-Wert-Paaren, die in diesem Wörterbuch
          enthalten sein sollen. Die Vorgabe ist ‘'()’.

 -- dovecot-configuration-Parameter: „passdb-configuration“-Liste
          passdbs
     Eine Liste von Passwortdatenbankkonfigurationen, die jeweils mit
     dem ‘passdb-configuration’-Konstruktor erzeugt werden.

     Verfügbare ‘passdb-configuration’-Felder sind:

      -- passdb-configuration-Parameter: Zeichenkette driver
          Der Treiber, den die Passwortdatenbank benutzen soll. Zu den
          gültigen Werten gehören ‘pam’, ‘passwd’, ‘shadow’, ‘bsdauth’
          und ‘static’. Die Vorgabe ist ‘"pam"’.

      -- passdb-configuration-Parameter:
               Leerzeichengetrennte-Zeichenketten-Liste args
          Leerzeichengetrennte Liste der Argumente an den
          Passwortdatenbanktreiber. Die Vorgabe ist ‘""’.

 -- dovecot-configuration-Parameter: „userdb-configuration“-Liste
          userdbs
     Liste der Benutzerdatenbankkonfigurationen, die jeweils mit dem
     ‘userdb-configuration’-Konstruktor erzeugt werden.

     Verfügbare ‘userdb-configuration’-Felder sind:

      -- userdb-configuration-Parameter: Zeichenkette driver
          Der Treiber, den die Benutzerdatenbank benutzen soll. Zu den
          gültigen Werten gehören ‘passwd’ und ‘static’. Die Vorgabe ist
          ‘"passwd"’.

      -- userdb-configuration-Parameter:
               Leerzeichengetrennte-Zeichenketten-Liste args
          Leerzeichengetrennte Liste der Argumente an den
          Benutzerdatenbanktreiber. Die Vorgabe ist ‘""’.

      -- userdb-configuration-Parameter: Formlose-Argumente
               override-fields
          Einträge, die Vorrang vor den Feldern aus passwd haben. Die
          Vorgabe ist ‘'()’.

 -- dovecot-configuration-Parameter: „plugin-configuration“
          plugin-configuration
     Die Plugin-Konfiguration, die vom
     ‘plugin-configuration’-Konstruktor erzeugt wird.

 -- dovecot-configuration-Parameter: „namespace-configuration“-Liste
          namespaces
     Liste der Namensräume. Jedes Objekt in der Liste wird durch den
     ‘namespace-configuration’-Konstruktor erzeugt.

     Verfügbare ‘namespace-configuration’-Felder sind:

      -- namespace-configuration-Parameter: Zeichenkette name
          Der Name dieses Namensraums.

      -- namespace-configuration-Parameter: Zeichenkette type
          Namensraum-Typ: ‘private’, ‘shared’ oder ‘public’. Die Vorgabe
          ist ‘"private"’.

      -- namespace-configuration-Parameter: Zeichenkette separator
          Welche Trennzeichen in der Hierarchie von Namensräumen benutzt
          werden sollen. Sie sollten denselben Trenner für alle
          Namensräume benutzen, sonst führt es zu Verwirrung bei manchen
          Clients. Meistens ist ‘/’ eine gute Wahl, die Voreinstellung
          ist allerdings abhängig vom darunterliegenden
          Mail-Speicher-Format. Die Vorgabe ist ‘""’.

      -- namespace-configuration-Parameter: Zeichenkette prefix
          Das Präfix, das für Zugang auf diesen Namensraum angegeben
          werden muss. Es muss für jeden Namensraum ein anderes gewählt
          werden. Ein Beispiel ist ‘Public/’. Die Vorgabe ist ‘""’.

      -- namespace-configuration-Parameter: Zeichenkette location
          Der physische Ort, an dem sich dieses Postfach („Mailbox“)
          befindet. Das Format ist dasselbe wie beim Mail-Ort („mail
          location“), der auch als Voreinstellung hierfür benutzt wird.
          Die Vorgabe ist ‘""’.

      -- namespace-configuration-Parameter: Boolescher-Ausdruck inbox?
          Es kann nur eine INBOX geben; hiermit wird festgelegt, zu
          welchem Namensraum sie gehört. Die Vorgabe ist ‘#f’.

      -- namespace-configuration-Parameter: Boolescher-Ausdruck hidden?
          Wenn der Namensraum versteckt ist, wird er Clients gegenüber
          _nicht_ über die NAMESPACE-Erweiterung mitgeteilt.
          Wahrscheinlich möchten Sie auch ‘list? #f’ festlegen. Das ist
          in erster Linie dann nützlich, wenn Sie von einem anderen
          Server mit anderen Namensräumen umziehen, die Sie ersetzen
          möchten, die aber trotzdem noch weiterhin funktionieren
          sollen. Zum Beispiel können Sie versteckte Namensräume mit
          Präfixen ‘~/mail/’, ‘~%u/mail/’ und ‘mail/’ anlegen. Die
          Vorgabe ist ‘#f’.

      -- namespace-configuration-Parameter: Boolescher-Ausdruck list?
          Ob die Postfächer („Mailboxes“) unter diesem Namensraum mit
          dem LIST-Befehl angezeigt werden können. Dadurch wird der
          Namensraum für Clients sichtbar, die die NAMESPACE-Erweiterung
          nicht unterstützen. Mit dem besonderen Wert ‘children’ werden
          auch Kind-Postfächer aufgelistet, aber das Namensraumpräfix
          verborgen. Die Vorgabe ist ‘#t’.

      -- namespace-configuration-Parameter: Boolescher-Ausdruck
               subscriptions?
          Die Abonnements werden im Namensraum selbst behandelt. Wenn es
          auf ‘#f’ gesetzt ist, werden sie im Elternnamensraum
          behandelt. Das leere Präfix sollte hier immer ‘#t’ haben. Die
          Vorgabe ist ‘#t’.

      -- namespace-configuration-Parameter:
               „mailbox-configuration“-Liste mailboxes
          Die Liste der in diesem Namensraum vordefinierten Postfächer.
          Die Vorgabe ist ‘'()’.

          Verfügbare ‘mailbox-configuration’-Felder sind:

           -- mailbox-configuration-Parameter: Zeichenkette name
               Der Name dieses Postfachs (dieser „Mailbox“).

           -- mailbox-configuration-Parameter: Zeichenkette auto
               Bei ‘create’ wird dieses Postfach automatisch erzeugt.
               Bei ‘subscribe’ wird dieses Postfach sowohl automatisch
               erzeugt als auch automatisch abonniert. Die Vorgabe ist
               ‘"no"’.

           -- mailbox-configuration-Parameter:
                    Leerzeichengetrennte-Zeichenketten-Liste special-use
               Liste der ‘SPECIAL-USE’-Attribute von IMAP, wie sie im
               RFC 6154 festgelegt wurden. Gültige Werte sind ‘\All’,
               ‘\Archive’, ‘\Drafts’, ‘\Flagged’, ‘\Junk’, ‘\Sent’ und
               ‘\Trash’. Die Vorgabe ist ‘'()’.

 -- dovecot-configuration-Parameter: Dateiname base-dir
     Das Basisverzeichnis, in dem Laufzeitdaten gespeichert werden. Die
     Vorgabe ist ‘"/var/run/dovecot/"’.

 -- dovecot-configuration-Parameter: Zeichenkette login-greeting
     Begrüßungsnachricht für Clients. Die Vorgabe ist ‘"Dovecot
     ready."’.

 -- dovecot-configuration-Parameter:
          Leerzeichengetrennte-Zeichenketten-Liste
          login-trusted-networks
     Die Liste der Netzwerkbereiche, denen vertraut wird. Für
     Verbindungen von diesen IP-Adressen können abweichende IP-Adressen
     und Ports angegeben werden (zur Protokollierung und zur
     Authentifizierung). ‘disable-plaintext-auth’ wird für diese
     Netzwerke außerdem ignoriert. Normalerweise würden Sie hier Ihre
     IMAP-Proxy-Server eintragen. Die Vorgabe ist ‘'()’.

 -- dovecot-configuration-Parameter:
          Leerzeichengetrennte-Zeichenketten-Liste login-access-sockets
     Die Liste der Sockets zur Zugriffsprüfung beim Anmelden (z.B.
     tcpwrap). Die Vorgabe ist ‘'()’.

 -- dovecot-configuration-Parameter: Boolescher-Ausdruck
          verbose-proctitle?
     Ausführlichere Prozessnamen anzeigen (mit „ps“). Nach
     Voreinstellung werden Benutzername und IP-Adresse angezeigt. Die
     Einstellung ist nützlich, wenn man sehen können will, wer
     tatsächlich IMAP-Prozesse benutzt (z.B. gemeinsam genutzte
     Postfächer oder wenn derselbe Benutzeridentifikator/„UID“ für
     mehrere Konten benutzt wird). Die Vorgabe ist ‘#f’.

 -- dovecot-configuration-Parameter: Boolescher-Ausdruck
          shutdown-clients?
     Ob alle Prozesse erzwungen beendet werden sollen, wenn der
     Haupt-Dovecot-Prozess terminiert. Ist dies auf ‘#f’ gesetzt, kann
     Dovecot aktualisiert werden, ohne dass bestehende
     Client-Verbindungen zwangsweise geschlossen werden (jedoch kann das
     problematisch sein, wenn die Aktualisierung z.B. eine
     Sicherheitslücke schließen soll). Die Vorgabe ist ‘#t’.

 -- dovecot-configuration-Parameter: Nichtnegative-ganze-Zahl
          doveadm-worker-count
     Ist dies _nicht_ null, werden Mail-Befehle über die angegebene
     Anzahl von Verbindungen an den doveadm-Server geschickt, statt sie
     direkt im selben Prozess auszuführen. Die Vorgabe ist ‘0’.

 -- dovecot-configuration-Parameter: Zeichenkette doveadm-socket-path
     Der UNIX-Socket oder das „Host:Port“-Paar, mit dem Verbindungen zum
     doveadm-Server hergestellt werden. Die Vorgabe ist
     ‘"doveadm-server"’.

 -- dovecot-configuration-Parameter:
          Leerzeichengetrennte-Zeichenketten-Liste import-environment
     Die Liste der Umgebungsvariablen, die beim Starten von Dovecot
     erhalten bleiben und allen Kindprozessen davon mitgegeben werden.
     Sie können auch „Schlüssel=Wert“-Paare angeben, um wie immer
     bestimmte Zuweisungen festzulegen.

 -- dovecot-configuration-Parameter: Boolescher-Ausdruck
          disable-plaintext-auth?
     Deaktiviert den LOGIN-Befehl und alle anderen
     Klartext-Authentisierungsverfahren, solange kein SSL/TLS benutzt
     wird (die LOGINDISABLED-Capability). Beachten Sie, dass, wenn die
     entfernte IP-Adresse mit der lokalen IP-Adresse identisch ist (Sie
     sich also vom selben Rechner aus verbinden), die Verbindung als
     sicher aufgefasst und Klartext-Authentisierung möglich ist. Siehe
     auch die „ssl=required“-Einstellung. Die Vorgabe ist ‘#t’.

 -- dovecot-configuration-Parameter: Nichtnegative-ganze-Zahl
          auth-cache-size
     Die Größe des Zwischenspeichers für Authentifizierungen (z.B.
     ‘#e10e6’). Bei 0 ist er deaktiviert. Beachten Sie, dass für
     bsdauth, PAM und vpopmail die Einstellung ‘cache-key’ festgelegt
     sein muss, damit ein Zwischenspeicher benutzt wird. Die Vorgabe ist
     ‘0’.

 -- dovecot-configuration-Parameter: Zeichenkette auth-cache-ttl
     Wie lange Daten im Zwischenspeicher gültig bleiben („Time to
     live“). Nachdem die TTL ausläuft, wird der zwischengespeicherte
     Eintrag nicht mehr benutzt, _außer_ wenn eine Auflösung über die
     Hauptdatenbank zu einem internen Fehler führt. Dovecot versucht
     zudem, Passwortänderungen automatisch zu behandeln: Wenn die letzte
     Authentisierung erfolgreich war, diese jetzt aber nicht, wird der
     Zwischenspeicher _nicht_ benutzt. Derzeit funktioniert dies nur bei
     Klartext-Authentisierung. Die Vorgabe ist ‘"1 hour"’ für 1 Stunde.

 -- dovecot-configuration-Parameter: Zeichenkette
          auth-cache-negative-ttl
     TTL beim Zwischenspeichern negativer Ergebnisse („negative Hits“,
     z.B. wenn der Benutzer nicht gefunden wurde oder das Passwort nicht
     stimmt). 0 deaktiviert das Zwischenspeichern davon vollständig. Die
     Vorgabe ist ‘"1 hour"’ für 1 Stunde.

 -- dovecot-configuration-Parameter:
          Leerzeichengetrennte-Zeichenketten-Liste auth-realms
     Die Liste der Administrationsbereiche („Realms“) für
     SASL-Authentisierungsmechanismen, die solche benötigen. Sie können
     dieses Feld leer lassen, wenn Sie _keine_ Unterstützung für mehrere
     Administrationsbereiche wollen. Viele Clients benutzen den ersten
     hier aufgelisteten Administrationsbereich, also sollte der als
     Voreinstellung gewünschte Bereich vorne stehen. Die Vorgabe ist
     ‘'()’.

 -- dovecot-configuration-Parameter: Zeichenkette auth-default-realm
     Der voreingestellte Administrationsbereich bzw. die Domain, falls
     keiner angegeben wurde. Dies wird sowohl für
     SASL-Administrationsbereiche als auch zum Anhängen von @domain an
     den Benutzernamen bei Klartextanmeldungen benutzt. Die Vorgabe ist
     ‘""’.

 -- dovecot-configuration-Parameter: Zeichenkette auth-username-chars
     Die Liste der in Benutzernamen zulässigen Zeichen. Wenn der vom
     Benutzer angegebene Benutzername ein hier nicht aufgelistetes
     Zeichen enthält, wird die Authentisierung automatisch abgelehnt.
     Dies dient bloß als eine weitere Überprüfung, um zu gewährleisten,
     dass mögliche Schwachstellen bei der Maskierung von
     Anführungszeichen in SQL-/LDAP-Datenbanken nicht ausgenutzt werden
     können. Wenn Sie alle Zeichen zulassen möchten, setzen Sie dieses
     Feld auf eine leere Zeichenkette. Die Vorgabe ist
     ‘"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@"’.

 -- dovecot-configuration-Parameter: Zeichenkette
          auth-username-translation
     Wie Zeichen in Benutzernamen ersetzt werden sollen, bevor der Name
     mit Datenbanken aufgelöst wird. Der Wert besteht aus einer Reihe
     von Angaben, welches Zeichen durch welches zu ersetzen ist. Zum
     Beispiel werden für ‘#@/@’ die Zeichen ‘#’ und ‘/’ beide durch ‘@’
     ersetzt. Die Vorgabe ist ‘""’.

 -- dovecot-configuration-Parameter: Zeichenkette auth-username-format
     Formatierungsanweisungen, die auf jeden Benutzernamen angewandt
     werden, bevor er mit einer Datenbank aufgelöst wird. Sie können
     hierzu die Standardvariablen verwenden, z.B. würde %Lu den
     Benutzernamen in Kleinbuchstaben umschreiben („lowercase“), %n
     würde den Domainnamen weglassen, wenn einer angegeben wurde, und
     ‘%n-AT-%d’ würde alle ‘@’ durch ‘-AT-’ ersetzen. Diese Übersetzung
     wird durchgeführt, nachdem die Änderungen aus
     ‘auth-username-translation’ angewandt wurden. Die Vorgabe ist
     ‘"%Lu"’.

 -- dovecot-configuration-Parameter: Zeichenkette
          auth-master-user-separator
     Wenn Sie es für „Master“-Benutzer erlauben möchten, sich durch
     Angeben des Master-Benutzernamens als Teil einer normalen
     Benutzernamens-Zeichenkette als jemand anders anzumelden (also ohne
     Verwendung der Unterstützung davon durch den SASL-Mechanismus),
     können Sie hier die Trennzeichen dazwischen angeben. Das Format ist
     dann <Benutzername><Trenner><Master-Benutzername>. UW-IMAP benutzt
     ‘*’ als Trennzeichen, also könnte das eine gute Wahl sein. Die
     Vorgabe ist ‘""’.

 -- dovecot-configuration-Parameter: Zeichenkette
          auth-anonymous-username
     Der Benutzername, der verwendet wird, wenn sich Benutzer mit dem
     SASL-Mechanismus „ANONYMOUS“ anmelden. Die Vorgabe ist
     ‘"anonymous"’.

 -- dovecot-configuration-Parameter: Nichtnegative-ganze-Zahl
          auth-worker-max-count
     Die maximale Anzahl von dovecot-auth-Arbeiterprozessen. Diese
     werden benutzt, um blockierende Anfragen an die Passwortdatenbank
     („passdb“) und an die Benutzerdatenbank („userdb“) zu stellen (z.B.
     MySQL und PAM). Sie werden automatisch erzeugt und gelöscht, je
     nachdem, wann sie gebraucht werden. Die Vorgabe ist ‘30’.

 -- dovecot-configuration-Parameter: Zeichenkette auth-gssapi-hostname
     Der Rechnername, der in GSSAPI-Prinzipalnamen benutzt wird. Nach
     Voreinstellung wird der durch gethostname() zurückgelieferte Name
     verwendet. Benutzen Sie ‘$ALL’ (mit Anführungszeichen), damit alle
     Einträge in der Schlüsseltabelle („Keytab“) akzeptiert werden. Die
     Vorgabe ist ‘""’.

 -- dovecot-configuration-Parameter: Zeichenkette auth-krb5-keytab
     Kerberos-Schlüsseltabelle („Keytab“), die für den
     GSSAPI-Mechanismus benutzt werden soll. Wenn sie nicht angegeben
     wird, wird die Voreinstellung des Systems benutzt (in der Regel
     ‘/etc/krb5.keytab’). Eventuell müssen Sie den Auth-Dienst als
     Administratornutzer „root“ ausführen lassen, um Lesezugriffe auf
     diese Datei zu ermöglichen. Die Vorgabe ist ‘""’.

 -- dovecot-configuration-Parameter: Boolescher-Ausdruck
          auth-use-winbind?
     NTLM-Authentifizierung und GSS-SPNEGO-Authentifizierung mit dem
     winbind-Daemon und dem ‘ntlm-auth’-Hilfsprogramm von Samba
     durchführen. Siehe
     <doc/wiki/Authentication/Mechanisms/Winbind.txt>. Die Vorgabe ist
     ‘#f’.

 -- dovecot-configuration-Parameter: Dateiname auth-winbind-helper-path
     Der Pfad zur Binärdatei ‘ntlm-auth’ von Samba. Die Vorgabe ist
     ‘"/usr/bin/ntlm_auth"’.

 -- dovecot-configuration-Parameter: Zeichenkette auth-failure-delay
     Die Zeit, wie lange vor der Antwort auf eine fehlgeschlagene
     Authentisierung gewartet wird. Die Vorgabe ist ‘"2 secs"’ für 2
     Sekunden.

 -- dovecot-configuration-Parameter: Boolescher-Ausdruck
          auth-ssl-require-client-cert?
     Es wird ein gültiges SSL-Client-Zertifikat verlangt, andernfalls
     schlägt die Authentisierung fehl. Die Vorgabe ist ‘#f’.

 -- dovecot-configuration-Parameter: Boolescher-Ausdruck
          auth-ssl-username-from-cert?
     Ob der Benutzername aus dem SSL-Zertifikat des Clients ausgelesen
     werden soll, indem ‘X509_NAME_get_text_by_NID()’ benutzt wird, um
     den Distinguished Name („DN“) als Gebräuchlicher Name
     („CommonName“) des Zertifikatinhabers („Subject“) auszulesen. Die
     Vorgabe ist ‘#f’.

 -- dovecot-configuration-Parameter:
          Leerzeichengetrennte-Zeichenketten-Liste auth-mechanisms
     Die Liste der erwünschten Authentisierungsmechanismen. Unterstützte
     Mechanismen sind: ‘plain’, ‘login’, ‘digest-md5’, ‘cram-md5’,
     ‘ntlm’, ‘rpa’, ‘apop’, ‘anonymous’, ‘gssapi’, ‘otp’, ‘skey’ und
     ‘gss-spnego’. Siehe auch die Einstellung zu
     ‘disable-plaintext-auth’.

 -- dovecot-configuration-Parameter:
          Leerzeichengetrennte-Zeichenketten-Liste director-servers
     Die Liste der IP-Adressen oder Rechnernamen („Hostnames“) für alle
     Direktorserver, einschließlich dieses Servers selbst. Ports können
     wie in „IP:Port“ angegeben werden. Der voreingestellte Port ist
     derselbe wie der, der beim ‘inet-listener’ des Direktordienstes
     benutzt wird. Die Vorgabe ist ‘'()’.

 -- dovecot-configuration-Parameter:
          Leerzeichengetrennte-Zeichenketten-Liste director-mail-servers
     Die Liste der IP-Adressen oder Rechnernamen („Hostnames“), um alle
     Hintergrund-Mailserver zu erreichen. Auch Bereiche können angegeben
     werden, wie 10.0.0.10-10.0.0.30. Die Vorgabe ist ‘'()’.

 -- dovecot-configuration-Parameter: Zeichenkette director-user-expire
     Wie lange Benutzer zum selben Server weitergeleitet werden, sobald
     dieser keine Verbindungen mehr hat. Die Vorgabe ist ‘"15 min"’.

 -- dovecot-configuration-Parameter: Zeichenkette director-username-hash
     Wie der Benutzername umgeschrieben wird, bevor er gehasht wird. Zu
     den sinnvollen Werten gehören %Ln, wenn der Nutzer sich mit oder
     ohne @domain anmelden kann, oder %Ld, wenn Postfächer innerhalb der
     Domain gemeinsam genutzt werden. Die Vorgabe ist ‘"%Lu"’.

 -- dovecot-configuration-Parameter: Zeichenkette log-path
     Die Protokolldatei, die für Fehlermeldungen benutzt werden soll.
     Bei ‘syslog’ wird das Protokoll an syslog geschrieben, bei
     ‘/dev/stderr’ an die Standardfehlerausgabe. Die Vorgabe ist
     ‘"syslog"’.

 -- dovecot-configuration-Parameter: Zeichenkette info-log-path
     Die Protokolldatei, die für Informationsmeldungen benutzt werden
     soll. Die Voreinstellung ist ‘log-path’. Die Vorgabe ist ‘""’.

 -- dovecot-configuration-Parameter: Zeichenkette debug-log-path
     Die Protokolldatei, die für Meldungen zur Fehlersuche benutzt
     werden soll. Die Voreinstellung ist ‘info-log-path’. Die Vorgabe
     ist ‘""’.

 -- dovecot-configuration-Parameter: Zeichenkette syslog-facility
     Als welche Syslog-Einrichtung Protokolle an Syslog übermittelt
     werden sollen. Falls Sie ‘mail’ hierbei _nicht_ benutzen wollen,
     eignen sich normalerweise local0–local7. Andere
     Standardeinrichtungen werden auch unterstützt. Die Vorgabe ist
     ‘"mail"’.

 -- dovecot-configuration-Parameter: Boolescher-Ausdruck auth-verbose?
     Ob gescheiterte Anmeldeversuche und die Gründe, warum diese nicht
     erfolgreich waren, protokolliert werden sollen. Die Vorgabe ist
     ‘#f’.

 -- dovecot-configuration-Parameter: Zeichenkette auth-verbose-passwords
     Ob bei falschen Passwörtern das versuchte falsche Passwort ins
     Protokoll geschrieben werden soll. Gültige Werte sind "no"
     („nein“), "plain" (als Klartext) und "sha1". Den SHA1-Hash zu
     speichern kann nützlich sein, um zu erkennen, wenn jemand versucht,
     sehr viele Passwörter durchzuprobieren (ein „Brute-Force“-Angriff)
     oder ob Benutzer einfach nur dasselbe Passwort immer wieder
     probieren. Sie können auch nur die ersten n Zeichen des Wertes
     protokollieren, indem Sie ":n" anhängen (z.B. sha1:6). Die Vorgabe
     ist ‘"no"’.

 -- dovecot-configuration-Parameter: Boolescher-Ausdruck auth-debug?
     Ob zur Fehlersuche noch ausführlichere Protokolle geschrieben
     werden sollen. Zum Beispiel werden SQL-Anfragen protokolliert. Die
     Vorgabe ist ‘#f’.

 -- dovecot-configuration-Parameter: Boolescher-Ausdruck
          auth-debug-passwords?
     Ob bei falschen Passwörtern das versuchte falsche Passwort und das
     benutzte Passwortschema ins Protokoll geschrieben werden soll,
     damit das Problem untersucht werden kann. Wenn dies aktiviert wird,
     wird auch ‘auth-debug’ aktiviert. Die Vorgabe ist ‘#f’.

 -- dovecot-configuration-Parameter: Boolescher-Ausdruck mail-debug?
     Ob die Fehlersuche beim Mail-Prozess ermöglicht werden soll. Dies
     kann Ihnen dabei helfen, herauszufinden, warum Dovecot Ihre E-Mails
     nicht findet. Die Vorgabe ist ‘#f’.

 -- dovecot-configuration-Parameter: Boolescher-Ausdruck verbose-ssl?
     SSL-Fehler auf Protokollebene anzeigen. Die Vorgabe ist ‘#f’.

 -- dovecot-configuration-Parameter: Zeichenkette log-timestamp
     Das Präfix für jede Zeile, die ins Protokoll geschrieben wird.
     %-Codes sind im Format von strftime(3). Die Vorgabe ist ‘"\"%b %d
     %H:%M:%S \""’.

 -- dovecot-configuration-Parameter:
          Leerzeichengetrennte-Zeichenketten-Liste
          login-log-format-elements
     Eine Liste der Elemente, die protokolliert werden sollen. Die
     Elemente, deren Variablenwerte nicht leer sind, werden zu einer
     kommagetrennten Zeichenkette zusammengefügt.

 -- dovecot-configuration-Parameter: Zeichenkette login-log-format
     Das Format des Anmeldeprogramms. %s umfasst die Zeichenkette
     ‘login-log-format-elements’, %$ enthält die Daten, die man
     protokollieren lassen möchte. Die Vorgabe ist ‘"%$: %s"’.

 -- dovecot-configuration-Parameter: Zeichenkette mail-log-prefix
     Das Präfix, das Protokollen für Mailprozesse vorangestellt wird.
     Siehe doc/wiki/Variables.txt für eine Liste der benutzbaren
     Variablen. Die Vorgabe ist ‘"\"%s(%u)<%{pid}><%{session}>: \""’.

 -- dovecot-configuration-Parameter: Zeichenkette deliver-log-format
     Welches Format zur Protokollierung von Mailzustellungen verwendet
     werden soll. Sie können die folgenden Variablen benutzen:
     ‘%$’
          Zustellungsstatusnachricht (z.B. ‘saved to INBOX’)
     ‘%m’
          Nachrichtenidentifikator („Message-ID“)
     ‘%s’
          Betreff („Subject“)
     ‘%f’
          Absendeadresse („From“)
     ‘%p’
          Physische Größe
     ‘%w’
          Virtuelle Größe.
     Die Vorgabe ist ‘"msgid=%m: %$"’.

 -- dovecot-configuration-Parameter: Zeichenkette mail-location
     Wo die Postfächer (die „Mailboxes“) der Benutzer gespeichert sind.
     Die Vorgabe ist die leere Zeichenkette, was bedeutet, dass Dovecot
     die Postfächer automatisch zu finden versucht. Das funktioniert
     nur, wenn der Nutzer bereits E-Mails gespeichert hat, also sollten
     Sie Dovecot den vollständigen Pfad mitteilen.

     Wenn Sie das mbox-Format benutzen, genügt es _nicht_, den Pfad zur
     INBOX-Datei (z.B. ‘/var/mail/%u’) anzugeben. Sie müssen Dovecot
     _auch_ mitteilen, wo die anderen Postfächer gespeichert sind.
     Dieses Verzeichnis nennt sich _Wurzelmailverzeichnis_ („Root Mail
     Directory“) und es muss als erster Pfad in der
     ‘mail-location’-Einstellung angegeben werden.

     Es gibt ein paar besondere Variable, die Sie verwenden können,
     z.B.:

     ‘%u’
          Benutzername
     ‘%n’
          Benutzerteil in Benutzer@Domain; sonst dasselbe wie %u, wenn
          es keine Domain gibt
     ‘%d’
          Domainteil in Benutzer@Domain; sonst leer, wenn es keine
          Domain gibt
     ‘%h’
          Persönliches Verzeichnis

     Siehe doc/wiki/Variables.txt für die vollständige Liste. Einige
     Beispiele:
     ‘maildir:~/Maildir’
     ‘mbox:~/mail:INBOX=/var/mail/%u’
     ‘mbox:/var/mail/%d/%1n/%n:INDEX=/var/indexes/%d/%1n/%’
     Die Vorgabe ist ‘""’.

 -- dovecot-configuration-Parameter: Zeichenkette mail-uid
     Systembenutzer und -gruppe, die benutzt werden sollen, um auf Mails
     zuzugreifen. Wenn Sie mehrere Benutzerkonten verwenden, kann auch
     die Benutzerdatenbank „userdb“ vorrangig verwendet werden, indem
     sie zu Benutzer- oder Gruppenidentifikatoren (UIDs und GIDs)
     auflöst. Sie können hier Zahlen oder Namen angeben. Siehe
     <doc/wiki/UserIds.txt>. Die Vorgabe ist ‘""’.

 -- dovecot-configuration-Parameter: Zeichenkette mail-gid

     Die Vorgabe ist ‘""’.

 -- dovecot-configuration-Parameter: Zeichenkette mail-privileged-group
     Die Benutzergruppe, die zwischenzeitlich benutzt wird, um
     Operationen mit besonderen Berechtigungen auszuführen. Derzeit wird
     dies nur mit dem INBOX-Postfach benutzt, wenn dessen anfängliche
     Erzeugung oder Sperrung per „Dotlocking“-Datei fehlschlägt.
     Typischerweise wird es auf ‘"mail"’ gesetzt, damit Zugriffe auf
     ‘/var/mail’ möglich sind. Die Vorgabe ist ‘""’.

 -- dovecot-configuration-Parameter: Zeichenkette mail-access-groups
     Mail-Prozessen Zugriff auf diese zusätzlichen Benutzergruppen
     gewähren. Typischerweise werden sie benutzt, um gemeinsam genutzte
     Postfächer („Mailboxes“) so einzurichten, dass alle aus der Gruppe
     zugreifen können. Beachten Sie, dass es gefährlich sein kann, dies
     zu erlauben, wenn Benutzer symbolische Verknüpfungen einrichten
     können (z.B. kann jeder, wenn hier die ‘mail’-Gruppe festgelegt
     wurde, ‘ln -s /var/mail ~/mail/var’ benutzen, um die Postfächer der
     anderen zu löschen, oder ‘ln -s /secret/shared/box ~/mail/mybox’,
     um sie zu lesen). Die Vorgabe ist ‘""’.

 -- dovecot-configuration-Parameter: Zeichenkette mail-attribute-dict
     Der Ort, wo ein Dictionary (eine Schlüssel-Wert-Datenbank) zu
     finden ist, mit dem IMAP-Metadaten gespeichert werden, entsprechend
     deren Definition im RFC 5464 (https://tools.ietf.org/html/rfc5464).

     Die IMAP-METADATA-Befehle stehen nur zur Verfügung, wenn in der
     Protokollkonfiguration von „imap“ das Feld ‘imap-metadata?’ auf
     ‘#t’ gesetzt ist.

     Die Vorgabe ist ‘""’.

 -- dovecot-configuration-Parameter: Boolescher-Ausdruck
          mail-full-filesystem-access?
     Clients vollen Dateisystemzugriff gestatten. Damit gibt es keine
     Zugriffsüberprüfungen mehr, abgesehen von denen, die das
     Betriebssystem für die aktiven Benutzer- und Gruppenidentifikatoren
     (UID und GID) durchführt. Es ist sowohl für maildir- als auch
     mbox-Formate verwendbar und Sie können dadurch für Namen von
     Postfächern („Mailboxes“) Präfixe wie z.B. ‘/pfad/’ oder
     ‘~benutzer/’ wählen. Die Vorgabe ist ‘#f’.

 -- dovecot-configuration-Parameter: Boolescher-Ausdruck mmap-disable?
     Überhaupt kein ‘mmap()’ benutzen. Das ist erforderlich, wenn Sie
     Indexe auf geteilten Dateisystemen speichern (wie NFS oder
     Cluster-Dateisystemen). Die Vorgabe ist ‘#f’.

 -- dovecot-configuration-Parameter: Boolescher-Ausdruck
          dotlock-use-excl?
     Ob sich Dovecot darauf verlassen kann, dass ‘O_EXCL’ funktioniert,
     wenn es Sperrdateien als „Dotlock“ erstellt. NFS unterstützt
     ‘O_EXCL’ seit Version 3, also sollte es heutzutage kein Problem
     mehr sein, dies als Voreinstellung zu benutzen. Die Vorgabe ist
     ‘#t’.

 -- dovecot-configuration-Parameter: Zeichenkette mail-fsync
     Wann fsync() oder fdatasync() aufgerufen werden soll:
     ‘optimized’
          Wann immer es nötig ist, um keine wichtigen Daten zu verlieren
     ‘always’
          Praktisch bei z.B. NFS, wenn Schreibzugriffe mit ‘write()’
          verzögert sind
     ‘never’
          Niemals benutzen (ist am schnellsten, aber Abstürze können zu
          Datenverlusten führen)
     Die Vorgabe ist ‘"optimized"’.

 -- dovecot-configuration-Parameter: Boolescher-Ausdruck
          mail-nfs-storage?
     Mails werden in NFS gespeichert. Setzen Sie dies auf ja, damit
     Dovecot NFS-Zwischenspeicher zurückschreiben kann, wann immer es
     nötig ist. Wenn Sie nur einen einzigen Mail-Server benutzen,
     brauchen Sie es _nicht_. Die Vorgabe ist ‘#f’.

 -- dovecot-configuration-Parameter: Boolescher-Ausdruck mail-nfs-index?
     Ob die Index-Dateien für Mails auch in NFS gespeichert sind. Wenn
     dies auf ja gesetzt ist, muss ‘mmap-disable? #t’ und
     ‘fsync-disable? #f’ gesetzt sein. Die Vorgabe ist ‘#f’.

 -- dovecot-configuration-Parameter: Zeichenkette lock-method
     Die Sperrmethode für Indexdateien. Die Alternativen sind fcntl,
     flock und dotlock. Bei Dotlocking werden ein paar Tricks benutzt,
     die mehr Plattenein- und -ausgaben als andere Sperrmethoden zur
     Folge haben. Für NFS-Benutzer gilt: flock funktioniert nicht, also
     denken Sie bitte daran, ‘mmap-disable’ zu ändern. Die Vorgabe ist
     ‘"fcntl"’.

 -- dovecot-configuration-Parameter: Dateiname mail-temp-dir
     Das Verzeichnis, in dem LDA/LMTP zwischenzeitlich eingehende
     E-Mails >128 kB speichert. Die Vorgabe ist ‘"/tmp"’.

 -- dovecot-configuration-Parameter: Nichtnegative-ganze-Zahl
          first-valid-uid
     Der Bereich, in dem die Benutzerkennungen („UIDs“) von sich bei
     Dovecot anmeldenden Benutzern liegen müssen. Das dient
     hauptsächlich dazu, sicherzustellen, dass sich Anwender nicht mit
     den Benutzerkonten von Daemons oder sonstigen Systembenutzerkonten
     anmelden können. Beachten Sie, dass eine Anmeldung als
     Administrator „root“ grundsätzlich vom Code des Dovecot-Programms
     verboten wird und selbst dann _nicht_ möglich ist, wenn Sie
     ‘first-valid-uid’ auf 0 setzen. Die Vorgabe ist ‘500’.

 -- dovecot-configuration-Parameter: Nichtnegative-ganze-Zahl
          last-valid-uid

     Die Vorgabe ist ‘0’.

 -- dovecot-configuration-Parameter: Nichtnegative-ganze-Zahl
          first-valid-gid
     Der Bereich, in dem die Gruppenkennungen („GIDs“) von sich bei
     Dovecot anmeldenden Benutzern liegen müssen. Benutzerkonten, deren
     primäre Gruppe keine gültige GID hat, können sich nicht anmelden.
     Wenn das Benutzerkonto zu zusätzlichen Gruppen mit ungültiger GID
     gehört, werden diese Gruppen-Berechtigungen von Dovecot wieder
     abgegeben. Die Vorgabe ist ‘1’.

 -- dovecot-configuration-Parameter: Nichtnegative-ganze-Zahl
          last-valid-gid

     Die Vorgabe ist ‘0’.

 -- dovecot-configuration-Parameter: Nichtnegative-ganze-Zahl
          mail-max-keyword-length
     Die maximale zulässige Länge eines Mail-Schlüsselwort-Namens. Sie
     wirkt sich nur aus, wenn Sie neue Schlüsselwörter anzulegen
     versuchen. Die Vorgabe ist ‘50’.

 -- dovecot-configuration-Parameter:
          Doppelpunktgetrennte-Dateinamen-Liste valid-chroot-dirs
     Die Liste der Verzeichnisse, in die Mail-Prozesse per „chroot“ das
     Wurzelverzeichnis wechseln können (d.h. für ‘/var/mail’ wird auch
     ein chroot nach ‘/var/mail/foo/bar’ möglich). Diese Einstellung hat
     keinen Einfluss auf ‘login-chroot’, ‘mail-chroot’ oder
     Authentifizierungs-„chroot“-Einstellungen. Wenn diese Einstellung
     leer gelassen wird, werden chroots per ‘/./’ in Persönlichen
     Verzeichnissen ignoriert. _Warnung_: Fügen Sie niemals
     Verzeichnisse hinzu, die lokale Benutzer verändern können, weil
     diese dann eventuell über eine Rechteausweitung Administratorrechte
     an sich reißen können. In der Regel sollte man ein solches
     Verzeichnis nur eintragen, wenn Nutzer keinen Shell-Zugriff
     erhalten können. Siehe <doc/wiki/Chrooting.txt>. Die Vorgabe ist
     ‘'()’.

 -- dovecot-configuration-Parameter: Zeichenkette mail-chroot
     Das voreingestellte „chroot“-Verzeichnis für Mail-Prozesse. Es kann
     für einzelne Nutzer in der Benutzerdatenbank außer Kraft gesetzt
     werden, indem ‘/./’ als Teil der Angabe zum Persönlichen
     Verzeichnis des Benutzers verwendet wird (z.B. lässt
     ‘/home/./benutzer’ das Wurzelverzeichnis per „chroot“ nach ‘/home’
     wechseln). Beachten Sie, dass es in der Regel _nicht_ unbedingt
     notwendig ist, Chrooting zu betreiben, weil Dovecot es Benutzern
     ohnehin nicht erlaubt, auf Dateien außerhalb ihres
     Mail-Verzeichnisses zuzugreifen. Wenn Ihren Persönlichen
     Verzeichnissen das Chroot-Verzeichnis vorangestellt ist, sollten
     Sie ‘/.’ an ‘mail-chroot’ anhängen. Siehe <doc/wiki/Chrooting.txt>.
     Die Vorgabe ist ‘""’.

 -- dovecot-configuration-Parameter: Dateiname auth-socket-path
     Der UNIX-Socket-Pfad, unter dem der Hauptauthentifizierungsserver
     zu finden ist, mit dem Nutzer gefunden werden können. Er wird von
     IMAP (für gemeinsame Benutzerkonten) und von LDA benutzt. Die
     Vorgabe ist ‘"/var/run/dovecot/auth-userdb"’.

 -- dovecot-configuration-Parameter: Dateiname mail-plugin-dir
     Das Verzeichnis, in dem Mailplugins zu finden sind. Die Vorgabe ist
     ‘"/usr/lib/dovecot"’.

 -- dovecot-configuration-Parameter:
          Leerzeichengetrennte-Zeichenketten-Liste mail-plugins
     Die Liste der Plugins, die für alle Dienste geladen werden sollen.
     Plugins, die nur für IMAP, LDA, etc. gedacht sind, werden in ihren
     eigenen .conf-Dateien zu dieser Liste hinzugefügt. Die Vorgabe ist
     ‘'()’.

 -- dovecot-configuration-Parameter: Nichtnegative-ganze-Zahl
          mail-cache-min-mail-count
     Die kleinste Anzahl an Mails in einem Postfach, bevor
     Aktualisierungen an der Zwischenspeicherdatei vorgenommen werden.
     Damit kann das Verhalten von Dovecot optimiert werden, um weniger
     Schreibzugriffe auf die Platte durchzuführen, wofür allerdings mehr
     Lesezugriffe notwendig werden. Die Vorgabe ist ‘0’.

 -- dovecot-configuration-Parameter: Zeichenkette
          mailbox-idle-check-interval
     Während der IDLE-Befehl läuft, wird ab und zu im Postfach (der
     „Mailbox“) nachgeschaut, ob es neue Mails oder andere Änderungen
     gibt. Mit dieser Einstellung wird festgelegt, wie lange zwischen
     diesen Überprüfungen höchstens gewartet wird. Dovecot kann auch
     dnotify, inotify und kqueue benutzen, um sofort über Änderungen
     informiert zu werden. Die Vorgabe ist ‘"30 secs"’.

 -- dovecot-configuration-Parameter: Boolescher-Ausdruck mail-save-crlf?
     Ob Mails mit CR+LF-Kodierung für Zeilenumbrüche statt einfacher LF
     gespeichert werden sollen. Dadurch wird das Versenden dieser Mails
     den Prozessor weniger beanspruchen, dies gilt besonders für den
     Systemaufruf sendfile() unter Linux und FreeBSD. Allerdings werden
     auch ein bisschen mehr Ein- und Ausgaben auf der Platte notwendig,
     wodurch es insgesamt langsamer werden könnte. Beachten Sie
     außerdem, dass andere Software, die die mboxes/maildirs ausliest,
     mit den CRs falsch umgehen und Probleme verursachen könnte. Die
     Vorgabe ist ‘#f’.

 -- dovecot-configuration-Parameter: Boolescher-Ausdruck
          maildir-stat-dirs?
     Nach Voreinstellung liefert der LIST-Befehl alle Einträge im
     Mailverzeichnis („Maildir“), die mit einem Punkt beginnen. Wenn
     diese Option aktiviert wird, liefert Dovecot nur solche Einträge,
     die für Verzeichnisse stehen. Dazu wird auf jedem Eintrag stat()
     aufgerufen, wodurch mehr Ein- und Ausgaben auf der Platte anfallen.
     (Bei Systemen, die einen Struktureintrag ‘dirent->d_type’ machen,
     ist diese Überprüfung unnötig, daher werden dort nur Verzeichnisse
     geliefert, egal was hier eingestellt ist.) Die Vorgabe ist ‘#f’.

 -- dovecot-configuration-Parameter: Boolescher-Ausdruck
          maildir-copy-with-hardlinks?
     Ob zum Kopieren einer Nachricht statt einer Kopie so weit möglich
     harte Verknüpfungen („Hard Links“) verwendet werden sollen. Dadurch
     wird das System wesentlich weniger ausgelastet und Nebenwirkungen
     sind unwahrscheinlich. Die Vorgabe ist ‘#t’.

 -- dovecot-configuration-Parameter: Boolescher-Ausdruck
          maildir-very-dirty-syncs?
     Ob Dovecot annehmen darf, dass es der einzige MUA ist, der auf
     Maildir zugreift. Dann wird das cur/-Verzeichnis nur bei
     unerwarteten Änderungen an seiner mtime durchsucht oder wenn die
     Mail sonst nicht gefunden werden kann. Die Vorgabe ist ‘#f’.

 -- dovecot-configuration-Parameter:
          Leerzeichengetrennte-Zeichenketten-Liste mbox-read-locks
     Welche Sperrmethoden zum Sperren des mbox-Postfachs (der „Mailbox“)
     benutzt werden. Es stehen vier Methoden zur Auswahl:

     ‘dotlock’
          Hier wird eine Datei namens <Postfach>.lock erzeugt. Es
          handelt sich um die älteste und am ehesten mit NFS verwendbare
          Lösung. Wenn Sie ein Verzeichnis wie /var/mail/ benutzen,
          müssen die Benutzer Schreibzugriff darauf haben.
     ‘dotlock-try’
          Genau wie dotlock, aber wenn es mangels Berechtigungen
          fehlschlägt oder nicht genug Plattenplatz verfügbar ist, wird
          einfach nicht gesperrt.
     ‘fcntl’
          Benutzen Sie diese Einstellung wenn möglich. Sie funktioniert
          auch mit NFS, sofern lockd benutzt wird.
     ‘flock’
          Existiert vielleicht nicht auf allen Systemen. Funktioniert
          nicht mit NFS.
     ‘lockf’
          Existiert vielleicht nicht auf allen Systemen. Funktioniert
          nicht mit NFS.

     Sie können mehrere Sperrmethoden angeben; wenn ja, dann ist deren
     Reihenfolge entscheidend, um Verklemmungen („Deadlocks“) zu
     vermeiden, wenn andere MTAs/MUAs auch mehrere Sperrmethoden
     benutzen. Manche Betriebssysteme erlauben es nicht, manche davon
     gleichzeitig zu benutzen.

 -- dovecot-configuration-Parameter:
          Leerzeichengetrennte-Zeichenketten-Liste mbox-write-locks

 -- dovecot-configuration-Parameter: Zeichenkette mbox-lock-timeout
     Wie lange höchstens auf Sperren (irgendeiner Art) gewartet wird,
     bevor abgebrochen wird. Die Vorgabe ist ‘"5 mins"’.

 -- dovecot-configuration-Parameter: Zeichenkette
          mbox-dotlock-change-timeout
     Wenn eine Dotlock-Sperrdatei existiert, das Postfach (die
     „Mailbox“) aber auf keine Weise geändert wurde, wird die Sperrdatei
     nach der hier angegebenen Zeit außer Kraft gesetzt. Die Vorgabe ist
     ‘"2 mins"’.

 -- dovecot-configuration-Parameter: Boolescher-Ausdruck
          mbox-dirty-syncs?
     Wenn sich das mbox-Postfach unerwartet ändert, müssen wir es
     gänzlich neu einlesen, um herauszufinden, was sich geändert hat.
     Wenn die mbox groß ist, kann das viel Zeit in Anspruch nehmen. Weil
     es sich bei der Änderung meistens nur um eine neu angefügte Mail
     handelt, wäre es schneller, nur die neuen Mails zu lesen. Wenn
     diese Einstellung hier aktiviert ist, arbeitet Dovecot nach dem
     eben beschriebenen Prinzip, liest aber doch die ganze mbox-Datei
     neu ein, sobald es etwas nicht wie erwartet vorfindet. Der einzige
     wirkliche Nachteil bei dieser Einstellung ist, dass es Dovecot
     nicht sofort erkennt, wenn ein anderer MUA die Statusindikatoren
     („Flags“) ändert. Beachten Sie, dass eine komplette Synchronisation
     bei den Befehlen SELECT, EXAMINE, EXPUNGE und CHECK durchgeführt
     wird. Die Vorgabe ist ‘#t’.

 -- dovecot-configuration-Parameter: Boolescher-Ausdruck
          mbox-very-dirty-syncs?
     Wie ‘mbox-dirty-syncs’, aber ohne dass komplette Synchronisationen
     selbst bei den Befehlen SELECT, EXAMINE, EXPUNGE oder CHECK
     durchgeführt werden. Wenn dies hier aktiviert ist, wird
     ‘mbox-dirty-syncs’ ignoriert. Die Vorgabe ist ‘#f’.

 -- dovecot-configuration-Parameter: Boolescher-Ausdruck
          mbox-lazy-writes?
     Ob das Schreiben von mbox-Kopfzeilen hinausgezögert wird, bis eine
     komplette Schreibsynchronisation durchgeführt wird (bei den
     Befehlen EXPUNGE und CHECK, und beim Schließen des Postfachs, d.h.
     der „Mailbox“). Das wird besonders nützlich, wenn Clients POP3
     verwenden, wo es oft vorkommt, dass die Clients alle Mails löschen.
     Der Nachteil ist, dass Dovecots Änderungen nicht sofort für andere
     MUAs sichtbar werden. Die Vorgabe ist ‘#t’.

 -- dovecot-configuration-Parameter: Nichtnegative-ganze-Zahl
          mbox-min-index-size
     Wenn die Größe des mbox-Postfaches kleiner als die angegebene Größe
     (z.B. 100k) ist, werden keine Index-Dateien geschrieben. Wenn
     bereits eine Index-Datei existiert, wird sie weiterhin gelesen und
     nur nicht aktualisiert. Die Vorgabe ist ‘0’.

 -- dovecot-configuration-Parameter: Nichtnegative-ganze-Zahl
          mdbox-rotate-size
     Die maximale Größe der dbox-Datei, bis sie rotiert wird. Die
     Vorgabe ist ‘10000000’.

 -- dovecot-configuration-Parameter: Zeichenkette mdbox-rotate-interval
     Das maximale Alter der dbox-Datei, bis sie rotiert wird.
     Typischerweise wird es in Tagen angegeben. Der Tag beginnt um
     Mitternacht, also steht 1d für heute, 2d für gestern, etc. 0 heißt,
     die Überprüfung ist abgeschaltet. Die Vorgabe ist ‘"1d"’.

 -- dovecot-configuration-Parameter: Boolescher-Ausdruck
          mdbox-preallocate-space?
     Ob beim Erstellen neuer mdbox-Postfachdateien gleich am Anfang eine
     Datei der Größe ‘mdbox-rotate-size’ vorab angelegt werden soll.
     Diese Einstellung funktioniert derzeit nur mit Linux auf manchen
     Dateisystemen (ext4, xfs). Die Vorgabe ist ‘#f’.

 -- dovecot-configuration-Parameter: Zeichenkette mail-attachment-dir
     Postfächer in den Formaten sdbox und mdbox unterstützen es,
     Mail-Anhänge in externen Dateien zu speichern, wodurch sie mit
     Einzelinstanz-Speicherung („Single-Instance Storage“) dedupliziert
     werden können. Andere Hintergrundsysteme („Backends“) bieten dafür
     noch keine Unterstützung.

     _Warnung_: Diese Funktionalität wurde noch nicht ausgiebig
     getestet. Benutzen Sie sie auf eigene Gefahr.

     Das Wurzelverzeichnis, in dem Mail-Anhänge gespeichert werden. Wenn
     es leer gelassen wird, ist es deaktiviert. Die Vorgabe ist ‘""’.

 -- dovecot-configuration-Parameter: Nichtnegative-ganze-Zahl
          mail-attachment-min-size
     Anhänge, die kleiner sind als hier angegeben, werden _nicht_ extern
     gespeichert. Es ist auch möglich, ein Plugin zu schreiben, das
     externes Speichern bestimmter Anhänge deaktiviert. Die Vorgabe ist
     ‘128000’.

 -- dovecot-configuration-Parameter: Zeichenkette mail-attachment-fs
     Ein Dateisystemhintergrundprogramm, mit dem Anhänge gespeichert
     werden:
     ‘posix’
          Dovecot führt keine Einzelinstanzspeicherung durch (aber das
          Dateisystem kann so leichter selbst deduplizieren)
     ‘sis posix’
          Einzelinstanzspeicherung wird durch einen sofortigen
          Byte-für-Byte-Vergleich beim Speichern umgesetzt
     ‘sis-queue posix’
          Einzelinstanzspeicherung mit verzögertem Vergleich und
          Deduplizierung.
     Die Vorgabe ist ‘"sis posix"’.

 -- dovecot-configuration-Parameter: Zeichenkette mail-attachment-hash
     Welches Hash-Format die Dateinamen von Anhängen bestimmt. Sie
     können beliebigen Text und Variable beifügen: ‘%{md4}’, ‘%{md5}’,
     ‘%{sha1}’, ‘%{sha256}’, ‘%{sha512}’, ‘%{size}’. Es können auch nur
     Teile der Variablen benutzt werden, z.B. liefert ‘%{sha256:80}’ nur
     die ersten 80 Bits. Die Vorgabe ist ‘"%{sha1}"’.

 -- dovecot-configuration-Parameter: Nichtnegative-ganze-Zahl
          default-process-limit

     Die Vorgabe ist ‘100’.

 -- dovecot-configuration-Parameter: Nichtnegative-ganze-Zahl
          default-client-limit

     Die Vorgabe ist ‘1000’.

 -- dovecot-configuration-Parameter: Nichtnegative-ganze-Zahl
          default-vsz-limit
     Die vorgegebene Beschränkung der VSZ („Virtual Memory Size“,
     virtuelle Speichergröße) für Dienstprozesse. Dies ist hauptsächlich
     dafür gedacht, Prozessen, die ein Speicherleck aufweisen,
     rechtzeitig Einhalt zu gebieten und sie abzuwürgen, bevor sie allen
     Speicher aufbrauchen. Die Vorgabe ist ‘256000000’.

 -- dovecot-configuration-Parameter: Zeichenkette default-login-user
     Der Anmeldebenutzer, der intern von Anmeldeprozessen benutzt wird.
     Der Anmeldebenutzer ist derjenige Benutzer im Dovecot-System, dem
     am wenigsten Vertrauen zugeschrieben wird. Er sollte auf überhaupt
     nichts Zugriff haben. Die Vorgabe ist ‘"dovenull"’.

 -- dovecot-configuration-Parameter: Zeichenkette default-internal-user
     Der interne Benutzer, der von Prozessen ohne besondere
     Berechtigungen benutzt wird. Er sollte sich vom Anmeldebenutzer
     unterscheiden, damit Anmeldeprozesse keine anderen Prozesse stören
     können. Die Vorgabe ist ‘"dovecot"’.

 -- dovecot-configuration-Parameter: Zeichenkette ssl?
     SSL/TLS-Unterstützung: yes für ja, no für nein, oder required, wenn
     SSL/TLS verpflichtend benutzt werden muss. Siehe
     <doc/wiki/SSL.txt>. Die Vorgabe ist ‘"required"’.

 -- dovecot-configuration-Parameter: Zeichenkette ssl-cert
     Das PEM-kodierte X.509-SSL/TLS-Zertifikat (der öffentliche
     Schlüssel). Die Vorgabe ist ‘"</etc/dovecot/default.pem"’.

 -- dovecot-configuration-Parameter: Zeichenkette ssl-key
     Der PEM-kodierte private Schlüssel für SSL/TLS. Der Schlüssel wird
     geöffnet, bevor Administratorrechte abgegeben werden, damit niemand
     außer dem Administratornutzer „root“ Lesezugriff auf die
     Schlüsseldatei hat. Die Vorgabe ist
     ‘"</etc/dovecot/private/default.pem"’.

 -- dovecot-configuration-Parameter: Zeichenkette ssl-key-password
     Wenn die Schlüsseldatei passwortgeschützt ist, geben Sie hier das
     Passwort an. Alternativ können Sie es angeben, wenn sie Dovecot
     starten, indem Sie es mit dem Parameter -p übergeben. Da die
     Konfigurationsdatei oftmals allgemein lesbar ist, möchten Sie es
     vielleicht in einer anderen Datei ablegen. Die Vorgabe ist ‘""’.

 -- dovecot-configuration-Parameter: Zeichenkette ssl-ca
     Die PEM-kodierte Zertifikatsautorität, die als vertrauenswürdig
     eingestuft wird. Legen Sie sie nur dann fest, wenn Sie
     ‘ssl-verify-client-cert? #t’ setzen möchten. Die Datei sollte das
     oder die Zertifikat(e) der Zertifikatsautorität („Certificate
     Authority“, kurz CA) enthalten, gefolgt von den entsprechenden
     Zertifikatsperrlisten (CRLs), z.B. ‘ssl-ca </etc/ssl/certs/ca.pem’.
     Die Vorgabe ist ‘""’.

 -- dovecot-configuration-Parameter: Boolescher-Ausdruck
          ssl-require-crl?
     Ob die Prüfung der Client-Zertifikate gegen die
     Zertifikatsperrlisten (CRLs) erfolgreich sein muss. Die Vorgabe ist
     ‘#t’.

 -- dovecot-configuration-Parameter: Boolescher-Ausdruck
          ssl-verify-client-cert?
     Ob der Client gebeten wird, ein Zertifikat zu schicken. Wenn Sie es
     auch verpflichtend machen wollen, setzen Sie
     ‘auth-ssl-require-client-cert? #t’ im Autorisierungsabschnitt. Die
     Vorgabe ist ‘#f’.

 -- dovecot-configuration-Parameter: Zeichenkette
          ssl-cert-username-field
     Welches Feld im Zertifikat den Benutzernamen angibt. In der Regel
     wählt man den Gebräuchlichen Namen „commonName“ oder den
     Eindeutigen Identifikator „x500UniqueIdentifier“ als Benutzernamen,
     wenn man Client-Zertifikate benutzt. Sie müssen dann auch
     ‘auth-ssl-username-from-cert? #t’ setzen. Die Vorgabe ist
     ‘"commonName"’.

 -- dovecot-configuration-Parameter: Zeichenkette ssl-min-protocol
     Die kleinste Version des SSL-Protokolls, die noch akzeptiert werden
     soll. Die Vorgabe ist ‘"TLSv1"’.

 -- dovecot-configuration-Parameter: Zeichenkette ssl-cipher-list
     Welche SSL-Ciphers benutzt werden dürfen. Die Vorgabe ist
     ‘"ALL:!kRSA:!SRP:!kDHd:!DSS:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK:!RC4:!ADH:!LOW@STRENGTH"’.

 -- dovecot-configuration-Parameter: Zeichenkette ssl-crypto-device
     Das SSL-Verschlüsselungsgerät („Crypto Device“), das benutzt werden
     soll. Gültige Werte bekommen Sie gezeigt, wenn Sie „openssl engine“
     ausführen. Die Vorgabe ist ‘""’.

 -- dovecot-configuration-Parameter: Zeichenkette postmaster-address
     An welche Adresse Mails versandt werden sollen, die über die
     Zurückweisung einer Mail informieren. %d wird zur Domain des
     Empfängers umgeschrieben. Die Vorgabe ist ‘"postmaster@%d"’.

 -- dovecot-configuration-Parameter: Zeichenkette hostname
     Der Rechnername, der an mehreren Stellen in versandten E-Mails
     (z.B. im Nachrichtenidentifikator „Message-Id“) und in
     LMTP-Antworten benutzt wird. Die Voreinstellung entspricht dem
     wirklichen Rechnernamen des Systems. Die Vorgabe ist ‘""’.

 -- dovecot-configuration-Parameter: Boolescher-Ausdruck
          quota-full-tempfail?
     Ob bei einem Nutzer, der sein Kontingent überschreitet, ein
     temporärer Fehler gemeldet werden soll, statt Nachrichten zurück zu
     versenden (zu „bouncen“). Die Vorgabe ist ‘#f’.

 -- dovecot-configuration-Parameter: Dateiname sendmail-path
     Welche Binärdatei zum Versenden von Mails benutzt werden soll. Die
     Vorgabe ist ‘"/usr/sbin/sendmail"’.

 -- dovecot-configuration-Parameter: Zeichenkette submission-host
     Wenn dieses Feld nicht leer ist, werden Mails an den SMTP-Server
     auf dem angegebenen „Rechner[:Port]“ statt an sendmail geschickt.
     Die Vothabe ist ‘""’.

 -- dovecot-configuration-Parameter: Zeichenkette rejection-subject
     Die Betreffkopfzeile („Subject:“), die für Mails benutzt werden
     soll, die über die Zurückweisung einer Mail informieren. Sie können
     dieselben Variablen wie beim hierunter beschriebenen
     Zurückweisungsgrund ‘rejection-reason’ benutzen. Die Vorgabe ist
     ‘"Rejected: %s"’.

 -- dovecot-configuration-Parameter: Zeichenkette rejection-reason
     Die menschenlesbare Fehlermeldung in Mails, die über die
     Zurückweisung einer Mail informieren. Sie können diese Variablen
     benutzen:

     ‘%n’
          CRLF-Zeilenumbruch
     ‘%r’
          Begründung („Reason“)
     ‘%s’
          Ursprünglicher Betreff („Subject“)
     ‘%t’
          Empfänger („To“)
     Die Vorgabe ist ‘"Your message to <%t> was automatically
     rejected:%n%r"’.

 -- dovecot-configuration-Parameter: Zeichenkette recipient-delimiter
     Trennzeichen zwischen dem eigentlichen Lokalteil („local-part“) und
     Detailangaben in der E-Mail-Adresse. Die Vorgabe ist ‘"+"’.

 -- dovecot-configuration-Parameter: Zeichenkette
          lda-original-recipient-header
     Aus welcher Kopfzeile die Adresse des Ursprünglichen Empfängers
     (SMTPs „RCPT TO:“-Adresse) genommen wird, wenn sie nicht
     anderweitig eingetragen ist. Wird die Befehlszeilenoption ‘-a’ von
     dovecot-lda angegeben, hat sie Vorrang vor diesem Feld. Oft wird
     die Kopfzeile X-Original-To hierfür verwendet. Die Vorgabe ist
     ‘""’.

 -- dovecot-configuration-Parameter: Boolescher-Ausdruck
          lda-mailbox-autocreate?
     Ob ein nicht existierendes Postfach (eine „Mailbox“) automatisch
     erzeugt werden soll, wenn eine Mail darin abgespeichert wird. Die
     Vorgabe ist ‘#f’.

 -- dovecot-configuration-Parameter: Boolescher-Ausdruck
          lda-mailbox-autosubscribe?
     Ob automatisch erzeugte Postfächer („Mailboxes“) auch automatisch
     abonniert werden sollen. Die Vorgabe ist ‘#f’.

 -- dovecot-configuration-Parameter: Nichtnegative-ganze-Zahl
          imap-max-line-length
     Die maximale Länge einer IMAP-Befehlszeile. Manche Clients erzeugen
     sehr lange Befehlszeilen bei riesigen Postfächern, daher müssen Sie
     diesen Wert gegebenenfalls anheben, wenn Sie Fehlermeldungen wie
     „Too long argument“ oder „IMAP command line too large“ häufig
     sehen. Die Vorgabe ist ‘64000’.

 -- dovecot-configuration-Parameter: Zeichenkette imap-logout-format
     Formatzeichenkette für das Abmelden bei IMAP:
     ‘%i’
          Gesamtzahl vom Client empfangener Bytes
     ‘%o’
          Gesamtzahl zum Client versandter Bytes
     Siehe ‘doc/wiki/Variables.txt’ für eine Liste aller Variablen, die
     Sie benutzen können. Die Vorgabe ist ‘"in=%i out=%o
     deleted=%{deleted} expunged=%{expunged} trashed=%{trashed}
     hdr_count=%{fetch_hdr_count} hdr_bytes=%{fetch_hdr_bytes}
     body_count=%{fetch_body_count} body_bytes=%{fetch_body_bytes}"’.

 -- dovecot-configuration-Parameter: Zeichenkette imap-capability
     Ersetzt die Antworten auf IMAP-CAPABILITY-Anfragen. Wenn der Wert
     mit „+“ beginnt, werden die angegebenen Capabilitys zu den
     voreingestellten hinzugefügt (z.B. +XFOO XBAR). Die Vorgabe ist
     ‘""’.

 -- dovecot-configuration-Parameter: Zeichenkette
          imap-idle-notify-interval
     Wie lange zwischen „OK Still here“-Benachrichtigungen gewartet
     wird, wenn der Client auf IDLE steht. Die Vorgabe ist ‘"2 mins"’.

 -- dovecot-configuration-Parameter: Zeichenkette imap-id-send
     ID-Feldnamen und -werte, die an Clients versandt werden sollen.
     Wenn * als der Wert angegeben wird, benutzt Dovecot dafür den
     voreingestellten Wert. Die folgenden Felder verfügen derzeit über
     voreingestellte Werte: name, version, os, os-version, support-url,
     support-email. Die Vorgabe ist ‘""’.

 -- dovecot-configuration-Parameter: Zeichenkette imap-id-log
     Welche vom Client übermittelten ID-Felder protokolliert werden. *
     bedeutet alle. Die Vorgabe ist ‘""’.

 -- dovecot-configuration-Parameter:
          Leerzeichengetrennte-Zeichenketten-Liste
          imap-client-workarounds
     Maßnahmen, um verschiedene Fehler in Clients zu umgehen:

     ‘delay-newmail’
          Benachrichtigungen über neue Mails mit EXISTS/RECENT nur als
          Antwort auf NOOP- und CHECK-Befehle versenden. Manche Clients
          ignorieren diese ansonsten, zum Beispiel OSX Mail (<v2.1).
          Outlook Express verhält sich noch problematischer, denn ohne
          diese Maßnahme können dem Anwender Fehlermeldungen wie „Die
          Nachricht steht nicht mehr auf dem Server zur Verfügung“
          („Message no longer in server“) angezeigt werden. Beachten
          Sie, dass OE6 auch mit dieser Maßnahme immer noch Probleme
          macht, wenn die Synchronisation auf „nur Kopfzeilen“ („Headers
          Only“) eingestellt ist.

     ‘tb-extra-mailbox-sep’
          Thunderbird kommt aus irgendeinem Grund durcheinander bei
          LAYOUT=fs (mbox und dbox) und fügt überzählige ‘/’-Suffixe an
          Postfachnamen („Mailbox“-Namen) an. Mit dieser Maßnahme
          ignoriert Dovecot zusätzliche ‘/’, statt sie als ungültige
          Postfachnamen zu behandeln.

     ‘tb-lsub-flags’
          Ob \Noselect-Flags für LSUB-Antworten mit LAYOUT=fs (z.B.
          mbox) geliefert werden. Dadurch merkt Thunderbird, dass man
          Postfächer nicht auswählen kann, und zeigt sie ausgegraut an,
          statt erst nach einiger Zeit eine Fehlermeldung einzublenden,
          sie seien nicht auswählbar.
     Die Vorgabe ist ‘'()’.

 -- dovecot-configuration-Parameter: Zeichenkette imap-urlauth-host
     Welcher Rechner in vom Client übermittelten URLAUTH-URLs zugelassen
     wird. Bei „*“ wird jeder zugelassen. Die Vorgabe ist ‘""’.

   Uff! Das waren viele Konfigurationsoptionen. Das Schöne daran ist
aber, dass Guix eine vollständige Schnittstelle für alles bietet, was
man in Dovecots Konfigurationssprache ausdrücken kann. Damit können Sie
Konfigurationen nicht nur auf schöne Art aufschreiben, sondern kann auch
reflektiven Code schreiben, der Konfigurationen aus Scheme heraus
auslesen und umschreiben kann.

   Vielleicht haben Sie aber auch einfach schon eine ‘dovecot.conf’, die
Sie mit Guix zum Laufen bringen möchten. In diesem Fall können Sie eine
‘opaque-dovecot-configuration’ im ‘#:config’-Parameter an
‘dovecot-service’ übergeben. Wie der Name schon sagt, bietet eine opake
Konfiguration keinerlei Unterstützung für Reflexion.

   Verfügbare ‘opaque-dovecot-configuration’-Felder sind:

 -- opaque-dovecot-configuration-Parameter: „package“ dovecot
     Das Dovecot-Paket.

 -- opaque-dovecot-configuration-Parameter: Zeichenkette string
     Der Inhalt der ‘dovecot.conf’ als eine Zeichenkette.

   Wenn Ihre ‘dovecot.conf’ zum Beispiel nur aus der leeren Zeichenkette
bestünde, könnten Sie einen Dovecot-Dienst wie folgt instanziieren:

     (dovecot-service #:config
                      (opaque-dovecot-configuration
                       (string "")))

OpenSMTPD-Dienst
................

 -- Variable: opensmtpd-service-type
     Dies ist der Diensttyp des OpenSMTPD-Dienstes
     (https://www.opensmtpd.org), dessen Wert ein
     ‘opensmtpd-configuration’-Objekt sein sollte, wie in diesem
     Beispiel:

          (service opensmtpd-service-type
                   (opensmtpd-configuration
                     (config-file (local-file "./my-smtpd.conf"))))

 -- Datentyp: opensmtpd-configuration
     Datentyp, der die Konfiguration von opensmtpd repräsentiert.

     ‘package’ (Vorgabe: OPENSMTPD)
          Das Paketobjekt des SMTP-Servers OpenSMTPD.

     ‘shepherd-requirement’ (Vorgabe: ‘'()’)
          Mit dieser Option können Sie als eine Liste von Symbolen
          zusätzliche Shepherd-Dienste benennen, von welchen dieser
          Dienst abhängen soll. Beispielsweise geben Sie hier
          ‘'networking’ an, damit OpenSMTPD auch auf anderen
          Schnittstellen als Loopback lauschen kann.

     ‘config-file’ (Vorgabe: ‘%default-opensmtpd-config-file’)
          Ein dateiartiges Objekt der OpenSMTPD-Konfigurationsdatei, die
          benutzt werden soll. Nach Vorgabe lauscht OpenSMTPD auf der
          Loopback-Netzwerkschnittstelle und ist so eingerichtet, dass
          Mail von Nutzern und Daemons auf der lokalen Maschine sowie
          E-Mails an entfernte Server versandt werden können. Führen Sie
          ‘man smtpd.conf’ aus, wenn Sie mehr erfahren möchten.

     ‘log-file’ (default: ‘"/var/log/mail.log"’)
          The file location for the OpenSMTPD log file. Logging occurs
          in the foreground via the Shepherd, i.e. OpenSMTPD does not
          detach. When set to ‘#f’ OpenSMTPD will instead detach and log
          to the syslog.

     ‘setgid-commands?’ (Vorgabe: ‘#t’)
          Dadurch werden die folgenden Befehle setgid als ‘smtpq’, damit
          sie ausgeführt werden können: ‘smtpctl’, ‘sendmail’,
          ‘send-mail’, ‘makemap’, ‘mailq’ und ‘newaliases’. Siehe *note
          Privilegierte Programme:: für mehr Informationen zu
          setgid-Programmen.

Exim-Dienst
...........

 -- Variable: exim-service-type
     Dies ist der Diensttyp für den Mail Transfer Agent (MTA) namens
     Exim (https://exim.org), dessen Wert ein
     ‘exim-configuration’-Objekt sein sollte, wie in diesem Beispiel:

          (service exim-service-type
                   (exim-configuration
                     (config-file (local-file "./my-exim.conf"))))

   Um einen Dienst vom Typ ‘exim-service-type’ zu benutzen, müssen Sie
auch einen Dienst ‘mail-aliases-service-type’ in Ihrer
‘operating-system’-Deklaration stehen haben (selbst wenn darin keine
Alias-Namen eingerichtet sind).

 -- Datentyp: exim-configuration
     Der Datentyp, der die Konfiguration von Exim repräsentiert.

     ‘package’ (Vorgabe: EXIM)
          Das Paketobjekt des Exim-Servers.

     ‘config-file’ (Vorgabe: ‘#f’)
          Ein dateiartiges Objekt der Exim-Konfigurationsdatei. Wenn
          sein Wert ‘#f’ ist, wird die vorgegebene Konfigurationsdatei
          aus dem als ‘package’ angegebenen Paket benutzt. Die sich
          ergebende Konfigurationsdatei wird geladen, nachdem die
          Konfigurationsvariablen ‘exim_user’ und ‘exim_group’ gesetzt
          wurden.

Getmail-Dienst
..............

 -- Variable: getmail-service-type
     Dies ist der Diensttyp des Mail-Retrievers Getmail
     (http://pyropus.ca/software/getmail/), der als Wert ein
     ‘getmail-configuration’-Objekt hat.

   Verfügbare ‘getmail-configuration’-Felder sind:

 -- getmail-configuration-Parameter: Zeichenkette name
     Ein Symbol, das den getmail-Dienst identifiziert.

     Die Vorgabe ist ‘"unset"’.

 -- getmail-configuration-Parameter: „package“ package
     Das getmail-Paket, das benutzt werden soll.

 -- getmail-configuration-Parameter: Zeichenkette user
     Das Benutzerkonto, mit dem getmail ausgeführt wird.

     Die Vorgabe ist ‘"getmail"’.

 -- getmail-configuration-Parameter: Zeichenkette group
     Die Benutzergruppe, mit der getmail ausgeführt wird.

     Die Vorgabe ist ‘"getmail"’.

 -- getmail-configuration-Parameter: Zeichenkette directory
     Welches getmail-Verzeichnis benutzt werden soll.

     Die Vorgabe ist ‘"/var/lib/getmail/default"’.

 -- getmail-configuration-Parameter: „getmail-configuration-file“ rcfile
     Die zu benutzende getmail-Konfigurationsdatei.

     Verfügbare ‘getmail-configuration-file’-Felder sind:

      -- getmail-configuration-file-Parameter:
               „getmail-retriever-configuration“ retriever
          Von welchem E-Mail-Konto Mails bezogen werden sollen und wie
          auf dieses zugegriffen werden kann.

          Verfügbare ‘getmail-retriever-configuration’-Felder sind:

           -- getmail-retriever-configuration-Parameter: Zeichenkette
                    type
               Welche Art von Mail-Retriever benutzt werden soll. Zu den
               gültigen Werten gehören ‘passwd’ und ‘static’.

               Die Vorgabe ist ‘"SimpleIMAPSSLRetriever"’.

           -- getmail-retriever-configuration-Parameter: Zeichenkette
                    server
               Der Benutzername, mit dem man sich beim Mailserver
               anmeldet.

               Die Vorgabe ist ‘unset’.

           -- getmail-retriever-configuration-Parameter: Zeichenkette
                    username
               Der Benutzername, mit dem man sich beim Mailserver
               anmeldet.

               Die Vorgabe ist ‘unset’.

           -- getmail-retriever-configuration-Parameter:
                    Nichtnegative-ganze-Zahl port
               Die Portnummer, mit der eine Verbindung hergestellt wird.

               Vorgegeben ist ‘#f’.

           -- getmail-retriever-configuration-Parameter: Zeichenkette
                    password
               Einträge, die Vorrang vor den Feldern aus passwd haben.

               Die Vorgabe ist ‘""’.

           -- getmail-retriever-configuration-Parameter: Liste
                    password-command
               Einträge, die Vorrang vor den Feldern aus passwd haben.

               Die Vorgabe ist ‘'()’.

           -- getmail-retriever-configuration-Parameter: Zeichenkette
                    keyfile
               Der Schlüssel im PEM-Format, der für das Aufbauen der
               TLS-Verbindung genutzt werden soll.

               Die Vorgabe ist ‘""’.

           -- getmail-retriever-configuration-Parameter: Zeichenkette
                    certfile
               Die Zertifikatsdatei im PEM-Format, die für das Aufbauen
               der TLS-Verbindung genutzt werden soll.

               Die Vorgabe ist ‘""’.

           -- getmail-retriever-configuration-Parameter: Zeichenkette
                    ca-certs
               Welche Zertifikate von Zertifikatsautoritäten („CA
               Certificates“) benutzt werden sollen.

               Die Vorgabe ist ‘""’.

           -- getmail-retriever-configuration-Parameter:
                    Parameter-Assoziative-Liste extra-parameters
               Weitere Parameter für den Retriever.

               Die Vorgabe ist ‘'()’.

      -- getmail-configuration-file-Parameter:
               „getmail-destination-configuration“ destination
          Was mit geholten Nachrichten geschehen soll.

          Verfügbare ‘getmail-destination-configuration’-Felder sind:

           -- getmail-destination-configuration-Parameter: Zeichenkette
                    type
               Die Art des Empfängers der Mail. Zu den gültigen Werten
               gehören ‘Maildir’, ‘Mboxrd’ und ‘MDA_external’.

               Die Vorgabe ist ‘unset’.

           -- getmail-destination-configuration-Parameter:
                    Zeichenkette-oder-Dateiartiges-Objekt path
               Entspricht der path-Option für den Mailempfänger
               („Destination“). Was hiermit bewirkt wird, hängt von der
               gewählten Empfängerart ab.

               Die Vorgabe ist ‘""’.

           -- getmail-destination-configuration-Parameter:
                    Parameter-Assoziative-Liste extra-parameters
               Weitere Empfängerparameter.

               Die Vorgabe ist ‘'()’.

      -- getmail-configuration-file-Parameter:
               „getmail-options-configuration“ options
          getmail konfigurieren.

          Verfügbare ‘getmail-options-configuration’-Felder sind:

           -- getmail-options-configuration-Parameter:
                    Nichtnegative-ganze-Zahl verbose
               Wenn es auf ‘0’ gesetzt ist, wird getmail nur Warnungen
               und Fehler ausgeben. Ein Wert von ‘1’ bedeutet, dass
               Meldungen über das Holen und Löschen von Nachrichten
               ausgegeben werden. Wenn es auf ‘2’ gesetzt ist, wird
               getmail Meldungen über jede durchgeführte Aktion
               ausgeben.

               Die Vorgabe ist ‘1’.

           -- getmail-options-configuration-Parameter:
                    Boolescher-Ausdruck read-all
               Wenn es auf wahr gesetzt ist, wird getmail alle
               verfügbaren Nachrichten holen. Andernfalls wird es nur
               solche Nachrichten holen, die es nicht bereits gesehen
               hat.

               Die Vorgabe ist ‘#t’.

           -- getmail-options-configuration-Parameter:
                    Boolescher-Ausdruck delete
               Wenn es auf wahr gesetzt ist, werden Mitteilungen vom
               Server gelöscht, nachdem sie erfolgreich geholt und
               zugestellt wurden. Andernfalls werden Nachrichten auf dem
               Server gelassen.

               Vorgegeben ist ‘#f’.

           -- getmail-options-configuration-Parameter:
                    Nichtnegative-ganze-Zahl delete-after
               Getmail wird nach der hier angegebenen Anzahl von Tagen
               Nachrichten löschen, die es gesehen hat, wenn sie
               zugestellt wurden. Dadurch werden Nachrichten diese
               Anzahl von Tagen lang auf dem Server gelassen, nachdem
               sie zugestellt wurden. Ein Wert von ‘0’ deaktiviert diese
               Funktionalität.

               Die Vorgabe ist ‘0’.

           -- getmail-options-configuration-Parameter:
                    Nichtnegative-ganze-Zahl delete-bigger-than
               Nachrichten, die größer als die angegebene Anzahl von
               Bytes sind, nach dem Holen löschen, selbst wenn die
               Optionen delete und delete-after abgeschaltet sind. Ein
               Wert von ‘0’ deaktiviert diese Funktionalität.

               Die Vorgabe ist ‘0’.

           -- getmail-options-configuration-Parameter:
                    Nichtnegative-ganze-Zahl max-bytes-per-session
               Nachrichten, die höchstens die angegebene Anzahl von
               Bytes groß sind, vor dem Beenden der Serversitzung von
               dort holen. Ein Wert von ‘0’ deaktiviert diese
               Funktionalität.

               Die Vorgabe ist ‘0’.

           -- getmail-options-configuration-Parameter:
                    Nichtnegative-ganze-Zahl max-message-size
               _Keine_ Nachrichten holen, deren Größe die angegebene
               Anzahl von Bytes überschreitet. Ein Wert von ‘0’
               deaktiviert diese Funktionalität.

               Die Vorgabe ist ‘0’.

           -- getmail-options-configuration-Parameter:
                    Boolescher-Ausdruck delivered-to
               Wenn dies auf wahr gesetzt ist, fügt getmail eine
               Delivered-To-Kopfzeile an die Nachrichten an.

               Die Vorgabe ist ‘#t’.

           -- getmail-options-configuration-Parameter:
                    Boolescher-Ausdruck received
               Wenn dies gesetzt ist, fügt getmail eine
               Received-Kopfzeile an die Nachrichten an.

               Die Vorgabe ist ‘#t’.

           -- getmail-options-configuration-Parameter: Zeichenkette
                    message-log
               Getmail wird seine Aktionen in die genannte Datei
               protokollieren. Wenn als Wert ‘""’ angegeben wird, wird
               diese Funktionalität deaktiviert.

               Die Vorgabe ist ‘""’.

           -- getmail-options-configuration-Parameter:
                    Boolescher-Ausdruck message-log-syslog
               Wenn es auf wahr gesetzt ist, wird getmail ein Protokoll
               seiner Aktionen an den Systemprotokolldienst übergeben.

               Vorgegeben ist ‘#f’.

           -- getmail-options-configuration-Parameter:
                    Boolescher-Ausdruck message-log-verbose
               Wenn dies auf wahr gesetzt ist, wird getmail
               Informationen über _nicht_ geholte Nachrichten und den
               jeweiligen Grund dafür sowie Anfang und Ende des
               Holvorgangs in Informationszeilen protokollieren.

               Vorgegeben ist ‘#f’.

           -- getmail-options-configuration-Parameter:
                    Parameter-Assoziative-Liste extra-parameters
               Weitere geltende Optionen.

               Die Vorgabe ist ‘'()’.

 -- getmail-configuration-Parameter: Liste idle
     Eine Liste der Postfächer, für die getmail beim Server auf
     Benachrichtigungen wegen neuer Mails warten soll. Diese
     Funktionalität setzt voraus, dass der Server die IDLE-Erweiterung
     unterstützt.

     Die Vorgabe ist ‘'()’.

 -- getmail-configuration-Parameter: Liste environment-variables
     Umgebungsvariable, die für getmail gelten sollen.

     Die Vorgabe ist ‘'()’.

Dienst für Mail-Alias-Namen
...........................

 -- Variable: mail-aliases-service-type
     Das ist der Typ des Dienstes, der ‘/etc/aliases’ zur Verfügung
     stellt, wo festgelegt wird, wie Mail-Nachrichten an Benutzer des
     Systems geliefert werden.

          (service mail-aliases-service-type
                   '(("postmaster" "bob")
                     ("bob" "bob@example.com" "bob@example2.com")))

   Die Konfiguration für einen Dienst vom Typ
‘mail-aliases-service-type’ ist eine assoziative Liste, die angibt, wie
beim System ankommende Mail-Nachrichten zuzustellen sind. Jeder Eintrag
hat die Form ‘(Alias Adressen ...)’, wobei das ‘Alias’ den lokalen
Alias-Namen angibt und ‘Adressen’ angibt, wo die Mail-Nachrichten für
diesen Benutzer ankommen sollen.

   Die Alias-Namen müssen nicht als Benutzerkonten auf dem lokalen
System existieren. Im Beispiel oben muss es also keinen Eintrag für
‘postmaster’ unter den ‘user-accounts’ in der
‘operating-system’-Deklaration geben, um die ‘postmaster’-Mails an ‘bob’
weiterzuleiten (von wo diese dann an ‘bob@example.com’ und
‘bob@example2.com’ weitergeschickt würden).

GNU-Mailutils-IMAP4-Daemon
..........................

 -- Variable: imap4d-service-type
     Dies ist der Diensttyp für den IMAP4-Daemon aus den GNU Mailutils
     (siehe *note (mailutils)imap4d::), dessen Wert ein
     ‘imap4d-configuration’-Objekt sein sollte, wie in diesem Beispiel:

          (service imap4d-service-type
                   (imap4d-configuration
                     (config-file (local-file "imap4d.conf"))))

 -- Datentyp: imap4d-configuration
     Datentyp, der die Konfiguration von ‘imap4d’ repräsentiert.

     ‘package’ (Vorgabe: ‘mailutils’)
          Das Paket, das ‘imap4d’ zur Verfügung stellt.

     ‘config-file’ (Vorgabe: ‘%default-imap4d-config-file’)
          Dateiartiges Objekt der zu nutzenden Konfigurationsdatei. Nach
          Vorgabe lauscht IMAP4D auf TCP-Port 143 vom lokalen Rechner
          ‘localhost’. Siehe *note (mailutils)Conf-imap4d:: für Details.

Radicale-Dienst
...............

 -- Variable: radicale-service-type
     This is the type of the Radicale (https://radicale.org)
     CalDAV/CardDAV server whose value should be a
     ‘radicale-configuration’. The default configuration matches the
     upstream documentation
     (https://radicale.org/v3.html#configuration).

 -- Datentyp: radicale-configuration
     Data type representing the configuration of ‘radicale’. Available
     ‘radicale-configuration’ fields are:

     ‘package’ (default: ‘radicale’) (type: package)
          Package that provides ‘radicale’.

     ‘auth’ (default: ‘'()’) (type: radicale-auth-configuration)
          Configuration for auth-related variables.

           -- Data Type: radicale-auth-configuration
               Data type representing the ‘auth’ section of a ‘radicale’
               configuration file. Available
               ‘radicale-auth-configuration’ fields are:

               ‘type’ (default: ‘'none’) (type: symbol)
                    The method to verify usernames and passwords.
                    Options are ‘none’, ‘htpasswd’, ‘remote-user’, and
                    ‘http-x-remote-user’. This value is tied to
                    ‘htpasswd-filename’ and ‘htpasswd-encryption’.

               ‘htpasswd-filename’ (default: ‘"/etc/radicale/users"’) (type: file-name)
                    Path to the htpasswd file. Use htpasswd or similar
                    to generate this file.

               ‘htpasswd-encryption’ (default: ‘'md5’) (type: symbol)
                    Encryption method used in the htpasswd file. Options
                    are ‘plain’, ‘bcrypt’, and ‘md5’.

               ‘delay’ (default: ‘1’) (type: non-negative-integer)
                    Average delay after failed login attempts in
                    seconds.

               ‘realm’ (default: ‘"Radicale - Password Required"’) (type: string)
                    Message displayed in the client when a password is
                    needed.

     ‘encoding’ (default: ‘'()’) (type: radicale-encoding-configuration)
          Configuration for encoding-related variables.

           -- Data Type: radicale-encoding-configuration
               Data type representing the ‘encoding’ section of a
               ‘radicale’ configuration file. Available
               ‘radicale-encoding-configuration’ fields are:

               ‘request’ (default: ‘'utf-8’) (type: symbol)
                    Encoding for responding requests.

               ‘stock’ (default: ‘'utf-8’) (type: symbol)
                    Encoding for storing local collections.

     ‘headers-file’ (default: none) (type: file-like)
          Custom HTTP headers.

     ‘logging’ (default: ‘'()’) (type: radicale-logging-configuration)
          Configuration for logging-related variables.

           -- Data Type: radicale-logging-configuration
               Data type representing the ‘logging’ section of a
               ‘radicale’ configuration file. Available
               ‘radicale-logging-configuration’ fields are:

               ‘level’ (default: ‘'warning’) (type: symbol)
                    Set the logging level. One of ‘debug’, ‘info’,
                    ‘warning’, ‘error’, or ‘critical’.

               ‘mask-passwords?’ (default: ‘#t’) (type: boolean)
                    Whether to include passwords in logs.

     ‘rights’ (default: ‘'()’) (type: radicale-rights-configuration)
          Configuration for rights-related variables. This should be a
          ‘radicale-rights-configuration’.

           -- Data Type: radicale-rights-configuration
               Data type representing the ‘rights’ section of a
               ‘radicale’ configuration file. Available
               ‘radicale-rights-configuration’ fields are:

               ‘type’ (default: ‘'owner-only’) (type: symbol)
                    Backend used to check collection access rights. The
                    recommended backend is ‘owner-only’. If access to
                    calendars and address books outside the home
                    directory of users is granted, clients won’t detect
                    these collections and will not show them to the
                    user. Choosing any other method is only useful if
                    you access calendars and address books directly via
                    URL. Options are ‘authenticate’, ‘owner-only’,
                    ‘owner-write’, and ‘from-file’.

               ‘file’ (default: ‘""’) (type: file-name)
                    File for the rights backend ‘from-file’.

     ‘server’ (default: ‘'()’) (type: radicale-server-configuration)
          Configuration for server-related variables. Ignored if WSGI is
          used.

           -- Data Type: radicale-server-configuration
               Data type representing the ‘server’ section of a
               ‘radicale’ configuration file. Available
               ‘radicale-server-configuration’ fields are:

               ‘hosts’ (default: ‘(list "localhost:5232")’) (type: list-of-ip-addresses)
                    List of IP addresses that the server will bind to.

               ‘max-connections’ (default: ‘8’) (type: non-negative-integer)
                    Maximum number of parallel connections. Set to 0 to
                    disable the limit.

               ‘max-content-length’ (default: ‘100000000’) (type: non-negative-integer)
                    Maximum size of the request body in bytes.

               ‘timeout’ (default: ‘30’) (type: non-negative-integer)
                    Socket timeout in seconds.

               ‘ssl?’ (Vorgabe: ‘#f’) (Typ: Boolescher-Ausdruck)
                    Whether to enable transport layer encryption.

               ‘certificate’ (default: ‘"/etc/ssl/radicale.cert.pem"’) (type: file-name)
                    Path of the SSL certificate.

               ‘key’ (default: ‘"/etc/ssl/radicale.key.pem"’) (type: file-name)
                    Path to the private key for SSL. Only effective if
                    ‘ssl?’ is ‘#t’.

               ‘certificate-authority’ (default: ‘""’) (type: file-name)
                    Path to CA certificate for validating client
                    certificates. This can be used to secure TCP traffic
                    between Radicale and a reverse proxy. If you want to
                    authenticate users with client-side certificates,
                    you also have to write an authentication plugin that
                    extracts the username from the certificate.

     ‘storage’ (default: ‘'()’) (type: radicale-storage-configuration)
          Configuration for storage-related variables.

           -- Data Type: radicale-storage-configuration
               Data type representing the ‘storage’ section of a
               ‘radicale’ configuration file. Available
               ‘radicale-storage-configuration’ fields are:

               ‘type’ (default: ‘'multifilesystem’) (type: symbol)
                    Backend used to store data. Options are
                    ‘multifilesystem’ and ‘multifilesystem-nolock’.

               ‘filesystem-folder’ (default: ‘"/var/lib/radicale/collections"’) (type: file-name)
                    Folder for storing local collections. Created if not
                    present.

               ‘max-sync-token-age’ (default: ‘2592000’) (type: non-negative-integer)
                    Delete sync-tokens that are older than the specified
                    time in seconds.

               ‘hook’ (default: ‘""’) (type: string)
                    Command run after changes to storage.

     ‘web-interface?’ (default: ‘#t’) (type: boolean)
          Whether to use Radicale’s built-in web interface.

Rspamd-Dienst
.............

 -- Variable: rspamd-service-type
     Dies ist der Diensttyp des Spamfiltersystems Rspamd
     (https://rspamd.com/), der als Wert ein
     ‘rspamd-configuration’-Objekt hat.

 -- Datentyp: rspamd-configuration
     Verfügbare ‘rspamd-configuration’-Felder sind:

     ‘package’ (Vorgabe: ‘rspamd’) (Typ: dateiartig)
          Das Paket, das rspamd zur Verfügung stellt.

     ‘config-file’ (Vorgabe: ‘%default-rspamd-config-file’) (Typ: dateiartig)
          File-like object of the configuration file to use. By default
          all workers are enabled except fuzzy and they are bound to
          their usual ports, e.g localhost:11334, localhost:11333 and so
          on

     ‘local.d-files’ (Vorgabe: ‘'()’) (Typ: Verzeichnisbaum)
          Die Konfigurationsdateien, die in local.d platziert werden,
          angegeben als eine Liste von zweielementigen Listen, deren
          erstes Element der dort zu benutzende Dateiname ist und deren
          zweites Element ein dateiartiges Objekt ist. Die in diesen
          Dateien hinterlegten Einstellungen ergänzen die
          Vorgabeeinstellungen.

     ‘override.d-files’ (Vorgabe: ‘'()’) (Typ: Verzeichnisbaum)
          Die Konfigurationsdateien, die in override.d platziert werden,
          angegeben als eine Liste von zweielementigen Listen, deren
          erstes Element der dort zu benutzende Dateiname ist und deren
          zweites Element ein dateiartiges Objekt ist. Die in diesen
          Dateien hinterlegten Einstellungen haben Vorrang vor den
          Vorgabeeinstellungen.

     ‘user’ (Vorgabe: ‘%default-rspamd-account’) (Typ: Benutzerkonto)
          Das Benutzerkonto, mit dem rspamd ausgeführt wird.

     ‘group’ (Vorgabe: ‘%default-rspamd-group’) (Typ: Benutzergruppe)
          Die Benutzergruppe, mit der rspamd ausgeführt wird.

     ‘debug?’ (Vorgabe: ‘#f’) (Typ: Boolescher-Ausdruck)
          Die Ausgabe von Informationen zur Fehlersuche erzwingen.

     ‘insecure?’ (Vorgabe: ‘#f’) (Typ: Boolescher-Ausdruck)
          Ob ignoriert werden soll, wenn das Benutzerkonto für
          Worker-Komponenten erhöhte Berechtigungen hat.

     ‘skip-template?’ (Vorgabe: ‘#f’) (Typ: Boolescher-Ausdruck)
          Ob Platzhalter mit der Template-Engine Jinja erkannt werden.

     ‘shepherd-requirements’ (default: ‘(user-processes loopback)’) (type: list-of-symbols)
          Eine Liste von Symbolen, die andere Shepherd-Dienste angeben,
          von denen dieser Dienst abhängen soll.


File: guix.de.info,  Node: Kurznachrichtendienste,  Next: Telefondienste,  Prev: Mail-Dienste,  Up: Dienste

11.10.14 Kurznachrichtendienste
-------------------------------

Das Modul ‘(gnu services messaging)’ stellt Guix-Dienstdefinitionen für
Kurznachrichtendienste, d.h. „Instant Messaging“, zur Verfügung. Zurzeit
werden folgende Dienste unterstützt:

Prosody-Dienst
..............

 -- Variable: prosody-service-type
     Dies ist der Diensttyp für den XMPP-Kommunikationsserver Prosody
     (https://prosody.im). Sein Wert muss ein
     ‘prosody-configuration’-Verbundsobjekt wie in diesem Beispiel sein:

          (service prosody-service-type
                   (prosody-configuration
                    (modules-enabled (cons* "groups" "mam" %default-modules-enabled))
                    (int-components
                     (list
                      (int-component-configuration
                       (hostname "conference.example.net")
                       (plugin "muc")
                       (mod-muc (mod-muc-configuration)))))
                    (virtualhosts
                     (list
                      (virtualhost-configuration
                       (domain "example.net"))))))

     Siehe im Folgenden Details über die ‘prosody-configuration’.

   Prosody kann mit den Vorgabeeinstellungen ohne viel weitere
Konfiguration benutzt werden. Nur ein ‘virtualhosts’-Feld wird
gebraucht: Es legt die Domain fest, um die sich Prosody kümmert.

   Sie können die Korrektheit der generierten Konfigurationsdatei
überprüfen, indem Sie den Befehl ‘prosodyctl check’ ausführen.

   Prosodyctl hilft auch dabei, Zertifikate aus dem
‘letsencrypt’-Verzeichnis zu importieren, so dass das
‘prosody’-Benutzerkonto auf sie Zugriff hat. Siehe
<https://prosody.im/doc/letsencrypt>.

     prosodyctl --root cert import /etc/certs

   Im Folgenden finden Sie die verfügbaren Konfigurationsparameter.
Jeder Parameterdefinition ist ihr Typ vorangestellt; zum Beispiel
bedeutet ‘Zeichenketten-Liste foo’, dass der Parameter ‘foo’ als Liste
von Zeichenketten angegeben werden sollte. Typangaben, die mit
‘Vielleicht-’ beginnen, stehen für Parameter, die in ‘prosody.cfg.lua’
_nicht_ vorkommen, falls deren Wert _nicht_ angegeben wurde.

   Sie können die Konfiguration auch als eine Zeichenkette festlegen,
wenn Sie über eine alte ‘prosody.cfg.lua’-Datei verfügen, die Sie von
einem anderen System übernehmen möchten; siehe das Ende dieses
Abschnitts für Details.

   Der Typ ‘Dateiobjekt’ bezeichnet hierbei entweder ein dateiartiges
Objekt (siehe *note dateiartige Objekte: G-Ausdrücke.) oder einen
Dateinamen.

   Verfügbare ‘prosody-configuration’-Felder sind:

 -- prosody-configuration-Parameter: „package“ prosody
     Das Prosody-Paket.

 -- prosody-configuration-Parameter: Dateiname data-path
     Der Ort, wo sich Prosodys Verzeichnis zum Speichern von Daten
     befinden soll. Siehe <https://prosody.im/doc/configure>. Die
     Vorgabe ist ‘"/var/lib/prosody"’.

 -- prosody-configuration-Parameter: Dateiobjekt-Liste plugin-paths
     Zusätzliche Plugin-Verzeichnisse. Plugins werden der Reihe nach in
     allen festgelegten Pfaden gesucht. Siehe
     <https://prosody.im/doc/plugins_directory>. Die Vorgabe ist ‘'()’.

 -- prosody-configuration-Parameter: Dateiname certificates
     Jeder virtuellte Rechner und jede Komponente braucht ein
     Zertifikat, mit dem Clients und Server ihre Identität sicher
     verifizieren können. Prosody lädt automatisch Zertifikate bzw.
     Schlüssel aus dem hier angegebenen Verzeichnis. Die Vorgabe ist
     ‘"/etc/prosody/certs"’.

 -- prosody-configuration-Parameter: Zeichenketten-Liste admins
     Dies ist eine Liste der Benutzerkonten, die auf diesem Server
     Administratoren sind. Beachten Sie, dass Sie die Benutzerkonten
     noch separat als Nutzer erzeugen lassen müssen. Siehe
     <https://prosody.im/doc/admins> and
     <https://prosody.im/doc/creating_accounts>. Ein Beispiel: ‘(admins
     '("user1@example.com" "user2@example.net"))’ Die Vorgabe ist ‘'()’.

 -- prosody-configuration-Parameter: Boolescher-Ausdruck use-libevent?
     Die Nutzung von libevent aktivieren, damit bessere
     Leistungsfähigkeit auch unter hoher Last gewährleistet wird. Siehe
     <https://prosody.im/doc/libevent>. Die Vorgabe ist ‘#f’.

 -- prosody-configuration-Parameter: Modul-Liste modules-enabled
     Die Liste der Module, die Prosody beim Starten lädt. Es sucht nach
     ‘mod_modulename.lua’ im Plugin-Verzeichnis, also sollten Sie
     sicherstellen, dass es dort auch existiert. Dokumentation über
     Module können Sie hier finden: <https://prosody.im/doc/modules>.
     Die Vorgabe ist ‘'("roster" "saslauth" "tls" "dialback" "disco"
     "carbons" "private" "blocklist" "vcard" "version" "uptime" "time"
     "ping" "pep" "register" "admin_adhoc")’.

 -- prosody-configuration-Parameter: Zeichenketten-Liste
          modules-disabled
     ‘"offline"’, ‘"c2s"’ und ‘"s2s"’ werden automatisch geladen, aber
     wenn Sie sie deaktivieren möchten, tragen Sie sie einfach in die
     Liste ein. Die Vorgabe ist ‘'()’.

 -- prosody-configuration-Parameter: Dateiobjekt groups-file
     Der Pfad zu einer Textdatei, in der gemeinsame Gruppen definiert
     werden. Wenn dieser Pfad leer ist, dann tut ‘mod_groups’ nichts.
     Siehe <https://prosody.im/doc/modules/mod_groups>. Die Vorgabe ist
     ‘"/var/lib/prosody/sharedgroups.txt"’.

 -- prosody-configuration-Parameter: Boolescher-Ausdruck
          allow-registration?
     Ob nach Voreinstellung _keine_ neuen Benutzerkonten angelegt werden
     können, aus Sicherheitsgründen. Siehe
     <https://prosody.im/doc/creating_accounts>. Die Vorgabe ist ‘#f’.

 -- prosody-configuration-Parameter: Vielleicht-„ssl-configuration“ ssl
     Dies ist der Teil der Einstellungen, der mit SSL/TLS zu tun hat.
     Der Großteil davon ist deaktiviert, damit die Voreinstellungen von
     Prosody verwendet werden. Wenn Sie diese Optionen hier nicht völlig
     verstehen, sollten Sie sie _nicht_ in Ihrer Konfiguration
     verwenden. Es passiert leicht, dass Sie die Sicherheit Ihres
     Servers absenken, indem Sie sie falsch benutzen. Siehe
     <https://prosody.im/doc/advanced_ssl_config>.

     Verfügbare ‘ssl-configuration’-Felder sind:

      -- ssl-configuration-Parameter: Vielleicht-Zeichenkette protocol
          Dadurch wird entschieden, was für ein Handshake benutzt wird.

      -- ssl-configuration-Parameter: Vielleicht-Dateiname key
          Der Pfad zur Datei mit Ihrem privaten Schlüssel.

      -- ssl-configuration-Parameter: Vielleicht-Dateiname certificate
          Der Pfad zur Datei mit Ihrem Zertifikat.

      -- ssl-configuration-Parameter: Dateiobjekt capath
          Der Pfad zum Verzeichnis, das die Wurzelzertifikate enthält,
          die Prosody zur Verifikation der Zertifikate entfernter Server
          benutzen soll. Die Vorgabe ist ‘"/etc/ssl/certs"’.

      -- ssl-configuration-Parameter: Vielleicht-Dateiobjekt cafile
          Der Pfad zu einer Datei, in der Wurzelzertifikate enthalten
          sind, denen Prosody vertrauen soll. Er verhält sich ähnlich
          wie ‘capath’, aber alle Zertifikate stehen hintereinander in
          der Datei.

      -- ssl-configuration-Parameter: Vielleicht-Zeichenketten-Liste
               verify
          Eine Liste von Verifikationsoptionen. (Die meisten bilden auf
          die ‘set_verify()’-Flags von OpenSSL ab.)

      -- ssl-configuration-Parameter: Vielleicht-Zeichenketten-Liste
               options
          Eine Liste allgemeiner Optionen, die mit SSL/TLS zu tun haben.
          Diese bilden auf OpenSSLs ‘set_options()’ ab. Eine
          vollständige Liste der in LuaSec verfügbaren Optionen finden
          Sie im Quellcode von LuaSec.

      -- ssl-configuration-Parameter:
               Vielleicht-Nichtnegative-ganze-Zahl depth
          Wie lange eine Kette von Zertifikatsautoritäten („Certificate
          Authorities“) nach einem passenden Wurzelzertifikat durchsucht
          wird, dem vertraut wird.

      -- ssl-configuration-Parameter: Vielleicht-Zeichenkette ciphers
          Eine Zeichenkette mit OpenSSL-Ciphers. Damit wird ausgewählt,
          welche Ciphers Prosody seinen Clients anbietet, und in welcher
          Reihenfolge.

      -- ssl-configuration-Parameter: Vielleicht-Dateiname dhparam
          Ein Pfad zu einer Datei, in der Parameter für
          Diffie-Hellman-Schlüsselaustausche stehen. Sie können so eine
          Datei mit diesem Befehl erzeugen: ‘openssl dhparam -out
          /etc/prosody/certs/dh-2048.pem 2048’

      -- ssl-configuration-Parameter: Vielleicht-Zeichenkette curve
          Die Kurve, die für Diffie-Hellman mit elliptischen Kurven
          verwendet werden soll. Prosodys Voreinstellung ist
          ‘"secp384r1"’.

      -- ssl-configuration-Parameter: Vielleicht-Zeichenketten-Liste
               verifyext
          Eine Liste von zusätzlichen Verifikationsoptionen.

      -- ssl-configuration-Parameter: Vielleicht-Zeichenkette password
          Das Passwort fÜr verschlüsselte private Schlüssel.

 -- prosody-configuration-Parameter: Boolescher-Ausdruck
          c2s-require-encryption?
     Ob alle Verbindungen von Client zu Server zwangsweise verschlüsselt
     sein müssen. Siehe <https://prosody.im/doc/modules/mod_tls>. Die
     Vorgabe ist ‘#f’.

 -- prosody-configuration-Parameter: Zeichenketten-Liste
          disable-sasl-mechanisms
     Welche Mechanismen niemals angeboten werden. Siehe
     <https://prosody.im/doc/modules/mod_saslauth>. Die Vorgabe ist
     ‘'("DIGEST-MD5")’.

 -- prosody-configuration-Parameter: Zeichenketten-Liste
          insecure-sasl-mechanisms
     Welche Mechanismen bei unverschlüsselten Verbindungen _nicht_
     angeboten werden. Siehe
     <https://prosody.im/doc/modules/mod_saslauth>. Die Vorgabe ist
     ‘'("PLAIN" "LOGIN")’.

 -- prosody-configuration-Parameter: Boolescher-Ausdruck
          s2s-require-encryption?
     Ob alle Verbindungen von Server zu Server zwangsweise verschlüsselt
     sein müssen. Siehe <https://prosody.im/doc/modules/mod_tls>. Die
     Vorgabe ist ‘#f’.

 -- prosody-configuration-Parameter: Boolescher-Ausdruck
          s2s-secure-auth?
     Ob Verschlüsselung und Zertifikatsauthentifizierung verpflichtend
     durchgeführt werden müssen. Das bietet das ideale Maß an
     Sicherheit, jedoch müssen dann auch die Server, mit denen Sie
     kommunizieren, Verschlüsselung unterstützen _und_ gültige
     Zertifikate vorweisen, denen Sie auch vertrauen. Siehe
     <https://prosody.im/doc/s2s#security>. Die Vorgabe ist ‘#f’.

 -- prosody-configuration-Parameter: Zeichenketten-Liste
          s2s-insecure-domains
     Viele Server bieten keine Unterstützung für Verschlüsselung oder
     ihre Zertifikate sind ungültig oder selbstsigniert. Hier können Sie
     Domains eintragen, die von der Pflicht zur Authentisierung mit
     Zertifikaten ausgenommen werden. Diese werden dann über DNS
     authentifiziert. Siehe <https://prosody.im/doc/s2s#security>. Die
     Vorgabe ist ‘'()’.

 -- prosody-configuration-Parameter: Zeichenketten-Liste
          s2s-secure-domains
     Selbst wenn Sie ‘s2s-secure-auth?’ deaktiviert lassen, können Sie
     noch immer gültige Zertifikate bei manchen Domains verlangen, indem
     Sie diese hier auflisten. Siehe
     <https://prosody.im/doc/s2s#security>. Die Vorgabe ist ‘'()’.

 -- prosody-configuration-Parameter: Zeichenkette authentication
     Wählen Sie aus, welcher Hintergrunddienst („Provider“) zur
     Authentifizierung benutzt werden soll. Das vorgegebene System
     speichert Passwörter im Klartext ab und benutzt dafür den in
     Prosody eingestellten Datenspeicher, um Authentifizierungsdaten zu
     speichern. Wenn Sie Ihrem Server kein Vertrauen entgegenbringen,
     siehe <https://prosody.im/doc/modules/mod_auth_internal_hashed> für
     Informationen, wie Sie den gehashten Hintergrunddienst benutzen.
     Siehe auch <https://prosody.im/doc/authentication>. Die Vorgabe ist
     ‘"internal_plain"’.

 -- prosody-configuration-Parameter: Vielleicht-Zeichenkette log
     Hiermit werden die Protokollierungsoptionen festgelegt.
     Fortgeschrittene Protokollierungskonfigurationen werden vom
     Prosody-Dienst noch nicht unterstützt. Siehe
     <https://prosody.im/doc/logging>. Die Vorgabe ist ‘"*syslog"’.

 -- prosody-configuration-Parameter: Dateiname pidfile
     Die Datei, in der Prosodys Prozessidentifikator („PID“) abgelegt
     wird. Siehe <https://prosody.im/doc/modules/mod_posix>. Die Vorgabe
     ist ‘"/var/run/prosody/prosody.pid"’.

 -- prosody-configuration-Parameter: Vielleicht-Nichtnegative-ganze-Zahl
          http-max-content-size
     Die maximal zulässige Größe des HTTP-Rumpfs (in Bytes).

 -- prosody-configuration-Parameter: Vielleicht-Zeichenkette
          http-external-url
     Manche Module machen auf verschiedene Arten ihre eigene URL
     verfügbar. Diese URL setzt sich aus dem benutzten Protokoll,
     Rechnernamen und Port zusammen. Wenn Prosody hinter einem Proxy
     ausgeführt wird, ist die öffentliche URL stattdessen die
     ‘http-external-url’. Siehe
     <https://prosody.im/doc/http#external_url>.

 -- prosody-configuration-Parameter: „virtualhost-configuration“-Liste
          virtualhosts
     Der Name eines Rechners („Host“) in Prosody bezeichnet eine Domain,
     auf der Benutzerkonten angelegt werden können. Wenn Sie zum
     Beispiel möchten, dass Nutzer Adressen haben wie
     ‘"john.smith@example.com"’, dann müssen Sie einen Rechnernamen
     ‘"example.com"’ hinzufügen. Alle Optionen in dieser Liste gelten
     nur für diesen Rechnernamen.

          Anmerkung: Die Bezeichnung _virtueller_ Rechnername wird in
          der Konfiguration verwendet, damit es nicht zu Verwechslungen
          mit dem tatsächlichen physischen Rechner kommt, auf dem
          Prosody installiert ist. Eine einzelne Prosody-Instanz kann
          mehrere Domains bedienen, jede definiert mit ihrem eigenen
          VirtualHost-Eintrag in der Konfiguration von Prosody. Im
          Gegensatz dazu hätte ein Server, der nur eine Domain anbietet,
          nur einen einzigen VirtualHost-Eintrag.

          Siehe
          <https://prosody.im/doc/configure#virtual_host_settings>.

     Verfügbare ‘virtualhost-configuration’-Felder sind:

     Alle folgenden Felder, wie sie auch die ‘prosody-configuration’
     hat: ‘admins’, ‘use-libevent?’, ‘modules-enabled’,
     ‘modules-disabled’, ‘groups-file’, ‘allow-registration?’, ‘ssl’,
     ‘c2s-require-encryption?’, ‘disable-sasl-mechanisms’,
     ‘insecure-sasl-mechanisms’, ‘s2s-require-encryption?’,
     ‘s2s-secure-auth?’, ‘s2s-insecure-domains’, ‘s2s-secure-domains’,
     ‘authentication’, ‘log’, ‘http-max-content-size’,
     ‘http-external-url’, ‘raw-content’, und außerdem:
      -- virtualhost-configuration-Parameter: Zeichenkette domain
          Die Domain, auf der man Prosody erreichen soll.

 -- prosody-configuration-Parameter: „int-component-configuration“-Liste
          int-components
     Komponenten sind zusätzliche Dienste auf einem Server, die Clients
     zur Verfügung stehen. Sie sind normalerweise auf einer Subdomain
     des Hauptservers verfügbar (wie zum Beispiel
     ‘"mycomponent.example.com"’). Beispiele für Komponenten könnten
     Server für Chaträume, Benutzerverzeichnisse oder Zugänge
     („Gateways“) zu anderen Protokollen sein.

     Interne Komponenten werden über Prosody-spezifische Plugins
     implementiert. Um eine interne Komponente hinzuzufügen, tragen Sie
     einfach das ‘hostname’-Feld für den Rechnernamen und die Plugins
     ein, die Sie für die Komponente benutzen möchten.

     Siehe <https://prosody.im/doc/components>. Die Vorgabe ist ‘'()’.

     Verfügbare ‘int-component-configuration’-Felder sind:

     Alle folgenden Felder, wie sie auch die ‘prosody-configuration’
     hat: ‘admins’, ‘use-libevent?’, ‘modules-enabled’,
     ‘modules-disabled’, ‘groups-file’, ‘allow-registration?’, ‘ssl’,
     ‘c2s-require-encryption?’, ‘disable-sasl-mechanisms’,
     ‘insecure-sasl-mechanisms’, ‘s2s-require-encryption?’,
     ‘s2s-secure-auth?’, ‘s2s-insecure-domains’, ‘s2s-secure-domains’,
     ‘authentication’, ‘log’, ‘http-max-content-size’,
     ‘http-external-url’, ‘raw-content’, und außerdem:
      -- int-component-configuration-Parameter: Zeichenkette hostname
          Der Rechnername für diese Komponente.

      -- int-component-configuration-Parameter: Zeichenkette plugin
          Das Plugin, das Sie für diese Komponente benutzen möchten.

      -- int-component-configuration-Parameter:
               Vielleicht-„mod-muc-configuration“ mod-muc
          Multi-User Chat (MUC) ist der Name von Prosodys Modul, womit
          Sie Chaträume/Konferenzen für XMPP-Benutzer anbieten lassen
          können.

          Allgemeine Informationen über das Einrichten und Benutzen von
          Multi-User-Chaträumen können Sie in der Dokumentation über
          Chaträume finden (<https://prosody.im/doc/chatrooms>), die Sie
          lesen sollten, wenn Ihnen XMPP-Chaträume neu sind.

          Siehe auch <https://prosody.im/doc/modules/mod_muc>.

          Verfügbare ‘mod-muc-configuration’-Felder sind:

           -- mod-muc-configuration-Parameter: Zeichenkette name
               Der Name, der in Antworten auf die Diensteermittlung
               benutzt. Die Vorgabe ist ‘"Prosody Chatrooms"’.

           -- mod-muc-configuration-Parameter:
                    Zeichenkette-oder-Boolescher-Ausdruck
                    restrict-room-creation
               Für ‘#t’ können nur Administratoren neue Chaträume
               anlegen. Andernfalls kann jeder einen Raum anlegen. Der
               Wert ‘"local"’ schränkt das Anlegen neuer Räume auf
               solche Nutzer ein, die zur Eltern-Domain des Dienstes
               gehören. Z.B. kann ‘user@example.com’ Räume auf
               ‘rooms.example.com’ anlegen. Für den Wert ‘"admin"’
               können nur Dienstadministratoren Chaträume anlegen. Die
               Vorgabe ist ‘#f’.

           -- mod-muc-configuration-Parameter: Nichtnegative-ganze-Zahl
                    max-history-messages
               Die Maximalzahl der Nachrichten aus dem Chat-Verlauf, die
               an ein Mitglied nachversandt werden, das gerade erst dem
               Raum beigetreten ist. Die Vorgabe ist ‘20’.

 -- prosody-configuration-Parameter: „ext-component-configuration“-Liste
          ext-components
     Externe Komponenten benutzen XEP-0114, das von den meisten
     eigenständigen Komponenten unterstützt wird. Um eine externe
     Komponente hinzuzufügen, tragen Sie einfach den Rechnernamen ins
     ‘hostname’-Feld ein. Siehe <https://prosody.im/doc/components>. Die
     Vorgabe ist ‘'()’.

     Verfügbare ‘ext-component-configuration’-Felder sind:

     Alle folgenden Felder, wie sie auch die ‘prosody-configuration’
     hat: ‘admins’, ‘use-libevent?’, ‘modules-enabled’,
     ‘modules-disabled’, ‘groups-file’, ‘allow-registration?’, ‘ssl’,
     ‘c2s-require-encryption?’, ‘disable-sasl-mechanisms’,
     ‘insecure-sasl-mechanisms’, ‘s2s-require-encryption?’,
     ‘s2s-secure-auth?’, ‘s2s-insecure-domains’, ‘s2s-secure-domains’,
     ‘authentication’, ‘log’, ‘http-max-content-size’,
     ‘http-external-url’, ‘raw-content’, und außerdem:
      -- ext-component-configuration-Parameter: Zeichenkette
               component-secret
          Das Passwort, das die Komponente für die Anmeldung benutzt.

      -- ext-component-configuration-Parameter: Zeichenkette hostname
          Der Rechnername für diese Komponente.

 -- prosody-configuration-Parameter: Nichtnegative-ganze-Zahl-Liste
          component-ports
     Der/Die Port(s), wo Prosody auf Verbindungen zu Komponenten
     lauscht. Die Vorgabe ist ‘'(5347)’.

 -- prosody-configuration-Parameter: Zeichenkette component-interface
     Die Schnittstelle, auf der Prosody auf Verbindungen zu Komponenten
     lauscht. Die Vorgabe ist ‘"127.0.0.1"’.

 -- prosody-configuration-Parameter: Vielleicht-Roher-Inhalt raw-content
     „Roher Inhalt“, der so, wie er ist, an die Konfigurationsdatei
     angefügt wird.

   Möglicherweise möchten Sie einfach nur eine bestehende
‘prosody.cfg.lua’ zum Laufen bringen. In diesem Fall können Sie ein
‘opaque-prosody-configuration’-Verbundsobjekt als der Wert des
‘prosody-service-type’ übergeben. Wie der Name schon sagt, bietet eine
opake Konfiguration keinerlei Unterstützung für Reflexion. Verfügbare
‘opaque-prosody-configuration’-Felder sind:

 -- opaque-prosody-configuration-Parameter: „package“ prosody
     Das Prosody-Paket.

 -- opaque-prosody-configuration-Parameter: Zeichenkette prosody.cfg.lua
     Der Inhalt, der als ‘prosody.cfg.lua’ benutzt werden soll.

   Wenn Ihre ‘prosody.cfg.lua’ zum Beispiel nur aus der leeren
Zeichenkette bestünde, könnten Sie einen Prosody-Dienst wie folgt
instanziieren:

     (service prosody-service-type
              (opaque-prosody-configuration
               (prosody.cfg.lua "")))

BitlBee-Dienst
..............

BitlBee (https://bitlbee.org) ist ein Zugang („Gateway“), der eine
IRC-Schnittstelle für verschiedene Kurznachrichtenprotokolle wie XMPP
verfügbar macht.

 -- Variable: bitlbee-service-type
     Dies ist der Diensttyp für den BitlBee-IRC-Zugangsdaemon
     (https://bitlbee.org) (englisch „IRC Gateway Daemon“). Sein Wert
     ist eine ‘bitlbee-configuration’ (siehe unten).

     Damit BitlBee auf Port 6667 vom lokalen Rechner („localhost“)
     lauscht, fügen Sie diese Zeile zu Ihrem „services“-Feld hinzu:

          (service bitlbee-service-type)

 -- Datentyp: bitlbee-configuration
     Dies ist die Konfiguration für BitlBee. Sie hat folgende Felder:

     ‘interface’ (Vorgabe: ‘"127.0.0.1"’)
     ‘port’ (Vorgabe: ‘6667’)
          Lauscht auf der Netzwerkschnittstelle, die der als INTERFACE
          angegebenen IP-Adresse entspricht, auf dem angegebenen PORT.

          Wenn als INTERFACE ‘127.0.0.1’ angegeben wurde, können sich
          nur lokale Clients verbinden; bei ‘0.0.0.0’ können die
          Verbindungen von jeder Netzwerkschnittstelle aus hergestellt
          werden.

     ‘bitlbee’ (Vorgabe: ‘bitlbee’)
          Das zu benutzende BitlBee-Paket.

     ‘plugins’ (Vorgabe: ‘'()’)
          Die Liste zu verwendender Plugin-Pakete – z.B.
          ‘bitlbee-discord’.

     ‘extra-settings’ (Vorgabe: ‘""’)
          Ein Konfigurationsschnipsel, das wortwörtlich in die
          BitlBee-Konfigurationsdatei eingefügt wird.

ngIRCd service
..............

ngIRCd (https://ngircd.barton.de/), is a lightweight IRCd (Internet
Relay Chat daemon), which can be used to host your own IRC server.

 -- Variable: ngircd-service-type
     The service type for ngIRCd. Its value is a ‘ngircd-configuration’
     object, documented below.

     In its most simple form, the service can be used with its default
     configuration, like this:

          (service ngircd-service-type)

     A slightly more complex example configuration could look like:

          (service ngircd-service-type
                   (ngircd-configuration
                    (channels
                     (list (ngircd-channel
                            (name "#fruits")
                            (topic "All things fruits -- veggies are off-topic"))))
                    (operators
                     (list (ngircd-operator
                            (name "mikan")
                            (password "tomatoes-are-fruits/carrots-are-not"))))))

 -- Data Type: ngircd-configuration
     Available ‘ngircd-configuration’ fields are:

     ‘ngircd’ (default: ‘ngircd’) (type: file-like)
          The ‘ngircd’ package to use.

     ‘debug?’ (Vorgabe: ‘#f’) (Typ: Boolescher-Ausdruck)
          Turn on debugging messages.

     ‘shepherd-requirement’ (default: ‘(user-processes networking)’) (type: list-of-symbols)
          Shepherd requirements the service should depend on.

     ‘global’ (type: ngircd-global)
          A ngircd-global record object used to specify global options.

     ‘limits’ (type: maybe-ngircd-limits)
          The ngircd-limits record object used to specify limits
          options.

     ‘options’ (type: ngircd-options)
          The ngircd-options record object used to specify optional
          features and configuration options.

     ‘ssl’ (type: maybe-ngircd-ssl)
          The ngircd-ssl record object used to specify the SSL-related
          options.

     ‘operators’ (type: maybe-list-of-ngircd-operators)
          A list of ngircd-operator record objects used to specify the
          operators.

     ‘servers’ (type: maybe-list-of-ngircd-servers)
          A list of ngircd-server record objects used to specify other
          remote servers to connect to.

     ‘channels’ (type: maybe-list-of-ngircd-channels)
          A list of ngircd-channels record objects specifying
          pre-defined channels to be created by the server when starting
          up.

 -- Data Type: ngircd-global
     Available ‘ngircd-global’ fields are:

     ‘name’ (Typ: Vielleicht-Zeichenkette)
          Server name in the IRC network. This is an individual name of
          the IRC server, it is not related to the DNS host name. It
          must be unique in the IRC network and must contain at least
          one dot (‘.’) character. When not set, ngIRCd tries to deduce
          a valid IRC server name from the local host name.

     ‘admin-info-1’ (type: maybe-string)
          First administrator information.

     ‘admin-info-2’ (type: maybe-string)
          Second administrator information.

     ‘admin-email’ (type: maybe-string)
          Email to reach administrators.

     ‘help-file’ (type: maybe-file-like)
          File-like containing the ngIRCd help text.

     ‘info’ (type: maybe-string)
          Info text of the server. This will be shown by WHOIS and LINKS
          requests for example.

     ‘listen’ (default: ‘("::" "0.0.0.0")’) (type: list-of-strings)
          A list of IP address on which the server should listen. By
          default it listens on all configured IP addresses and
          interfaces.

     ‘motd-file’ (type: file-like)
          Text file with the message of the day (MOTD). This message
          will be shown to all users connecting to the server.

     ‘motd-phrase’ (type: maybe-string)
          A simple phrase (<127 chars) to use if you don’t want to use a
          MOTD file.

     ‘network’ (type: maybe-string)
          The name of the IRC network to which this server belongs. This
          name is optional, should only contain ASCII characters, and
          can’t contain spaces. It is only used to inform clients.

     ‘password’ (type: maybe-string)
          Global password or all users needed to connect to the server.
          By default, no password is required. PAM must be disabled for
          this option to have an effect.

     ‘pid-file’ (default: ‘"/run/ngircd/ngircd.pid"’) (type: string)
          The file name where the PID of ngIRCd should be written after
          it starts.

     ‘ports’ (default: ‘(6667)’) (type: list-of-ports)
          Port number(s) on which the server should listen for
          _unencrypted_ connections.

     ‘server-uid’ (default: ‘"ngircd"’) (type: string-or-number)
          The user that the ‘ngircd’ command should run as.

     ‘server-gid’ (default: ‘"ngircd"’) (type: string-or-number)
          The group that the ‘ngircd’ command should run as.

 -- Data Type: ngircd-limits
     Available ‘ngircd-limits’ fields are:

     ‘connect-retry’ (default: ‘60’) (type: maybe-number)
          The number of seconds the server should wait before
          re-attempting to establish a link to not yet (or no longer)
          connected servers.

     ‘max-connections’ (default: ‘0’) (type: maybe-number)
          Maximum number of simultaneous in- and outbound connections
          the server is allowed to accept. There is no limit by default.

     ‘max-connections-ip’ (default: ‘5’) (type: maybe-number)
          Maximum number of simultaneous connections from a single IP
          address that the server will accept. This configuration
          options lowers the risk of denial of service attacks (DoS).
          Set to 0 to remove the limit.

     ‘max-joins’ (default: ‘10’) (type: maybe-number)
          Maximum number of channels a user can be member of. Set to 0
          to remove the limit.

     ‘max-list-size’ (default: ‘100’) (type: maybe-number)
          Maximum number of channels returned in response to a LIST
          command.

     ‘ping-timeout’ (default: ‘120’) (type: maybe-number)
          Number of seconds of inactivity after which the server will
          send a PING to the peer to test whether it is alive or not.

     ‘pong-timeout’ (default: ‘20’) (type: maybe-number)
          If a client fails to answer a PING with a PONG within this
          amount of seconds, it will be disconnected by the server.

 -- Data Type: ngircd-options
     Available ‘ngircd-options’ fields are:

     ‘allowed-channel-types’ (default: ‘"#&+"’) (type: maybe-string)
          List of allowed channel types (channel prefixes) for newly
          created channels on the local server. By default, all
          supported channel types are allowed.

     ‘allow-remote-oper?’ (default: ‘#f’) (type: maybe-boolean)
          If this option is active, IRC operators connected to remote
          servers are allowed to control this local server using
          administrative commands, for example like CONNECT, DIE, SQUIT,
          etc.

     ‘connect-ipv4?’ (default: ‘#t’) (type: maybe-boolean)
          Set to ‘#f’ to prevent ngIRCd from connecting to other IRC
          servers using the IPv4 protocol, allowed by default.

     ‘connect-ipv6?’ (default: ‘#t’) (type: maybe-boolean)
          Set to ‘#f’ to prevent ngIRCd from connecting to other IRC
          servers using the IPv6 protocol, allowed by default.

     ‘dns?’ (default: ‘#t’) (type: maybe-boolean)
          Set to ‘#f’ to disable DNS lookups when clients connect. If
          you configure the daemon to connect to other servers, ngIRCd
          may still perform a DNS lookup if required.

     ‘more-privacy?’ (default: ‘#f’) (type: maybe-boolean)
          Set this to ‘#t’ to have ngIRCd censor user idle time, logon
          time as well as the PART/QUIT messages (that sometimes used to
          inform everyone about which client software is being used).
          WHOWAS requests are also silently ignored, and NAMES output
          doesn’t list any clients for non-members. This option is most
          useful when ngIRCd is being used together with anonymizing
          software such as TOR or I2P and one does not wish to make it
          too easy to collect statistics on the users.

     ‘notice-before-registration?’ (default: ‘#f’) (type: maybe-boolean)
          Normally ngIRCd doesn’t send any messages to a client until it
          is registered. Enable this option to let the daemon send
          ‘NOTICE *’ messages to clients while connecting.

     ‘oper-can-use-mode?’ (default: ‘#f’) (type: maybe-boolean)
          Should IRC Operators be allowed to use the MODE command even
          if they are not(!) channel-operators?

     ‘oper-chan-p-auto-op?’ (default: ‘#t’) (type: maybe-boolean)
          Should IRC Operators get AutoOp (+o) in persistent (+P)
          channels?

     ‘oper-server-mode?’ (default: ‘#f’) (type: maybe-boolean)
          If ‘open-can-use-mode?’ is ‘#t’, this may lead the
          compatibility problems with servers that run the ircd-irc2
          software. This option masks mode requests by non-chanops as if
          they were coming from the server. Only enable this if you have
          ircd-irc2 servers in your IRC network.

     ‘pam?’ (default: ‘#f’) (type: boolean)
          Set to ‘#t’ to enable calls to the PAM library at runtime; all
          users connecting without password are allowed to connect, all
          passwords given will fail. Users identified without PAM are
          registered with a tilde (‘~’) prepended to their user name.
          This defaults to ‘#f’ in Guix because the service runs as an
          unprivileged user and thus cannot authenticate other users via
          the ‘pam_unix’ PAM module.

     ‘pam-is-optional?’ (default: ‘#f’) (type: maybe-boolean)
          Set to ‘#t’ to make PAM authentication optional, causing
          clients not sending a password to still be able to connect,
          but won’t become identified and keep the tilder (‘~’)
          character prepended to their supplied user name.

     ‘require-auth-ping?’ (default: ‘#f’) (type: maybe-boolean)
          Set to ‘#t’ to have ngIRCd send an authentication PING when a
          new client connects, and register this client only after
          receiving the corresponding PONG reply.

 -- Data Type: ngircd-ssl
     Available ‘ngircd-ssl’ fields are:

     ‘cert-file’ (type: maybe-string)
          SSL certificate file of the private server key.

     ‘key-file’ (type: maybe-string)
          File name of the SSL Server Key to be used for SSL
          connections, which is required for SSL/TLS support.

     ‘ca-file’ (default: ‘"/etc/ssl/certs/ca-certificates.crt"’) (type: maybe-string)
          A file listing all the certificates of the trusted Certificate
          Authorities.

     ‘ports’ (type: maybe-list-of-ports)
          Like the global configuration’s ‘port’ option, except that
          ngIRCd will expect incoming connections to be SSL/TLS
          encrypted. Common port numbers for SSL-encrypted IRC are 6669
          and 6697.

     ‘cipher-list’ (type: maybe-string)
          The GnuTLS cipher suites allowed for SSL/TLS connections, a
          value such as ‘"SECURE128:-VERS-SSL3.0"’. Refer to ‘man 3
          gnutls_priority_init’ for details.

     ‘dh-file’ (type: maybe-file-like)
          A file-like containing the Diffie-Hellman parameters, which
          can be created with GnuTLS via ‘certtool
          --generate-dh-params’. If this file is not present, the
          Diffie-Hellman parameters will be computed on startup, which
          may take some time.

 -- Data Type: ngircd-operator
     Available ‘ngircd-operator’ fields are:

     ‘name’ (Typ: Zeichenkette)
          ID of the operator (may be different of the nickname).

     ‘password’ (type: string)
          Password of the IRC operator.

     ‘mask’ (type: maybe-string)
          Mask that is to be checked before an /OPER for this account is
          accepted, for example: ‘"nick!ident@*.example.com"’.

 -- Data Type: ngircd-server
     Available ‘ngircd-server’ fields are:

     ‘name’ (Typ: Zeichenkette)
          IRC name of the remote server.

     ‘host’ (type: string)
          Internet host name (or IP address) of the peer.

     ‘my-password’ (type: string)
          Own password for this connection. This password has to be
          configured as ‘peer-password’ on the other server and must not
          have ‘:’ as first character.

     ‘peer-password’ (type: string)
          Foreign password for this connection. This password has to be
          configured as ‘my-password’ on the other server.

     ‘bind’ (type: maybe-string)
          IP address to use as source IP for the outgoing connection.
          The default is to let the operating system decide.

     ‘port’ (Typ: Vielleicht-Port)
          Port of the remote server to which ngIRCd should connect
          (active). If no port is assigned to a configured server, the
          daemon only waits for incoming connections (passive, which is
          the default).

     ‘group’ (type: maybe-number)
          Group of this server.

     ‘passive?’ (default: ‘#f’) (type: maybe-boolean)
          Set to ‘#t’ to disable automatic connection even if the port
          value is specified.

     ‘ssl-connect?’ (default: ‘#f’) (type: maybe-boolean)
          Set to ‘#t’ to enforce the use of TLS to connect to the remote
          server.

     ‘ssl-verify?’ (default: ‘#t’) (type: maybe-boolean)
          Set to ‘#f’ to disable the verification of the TLS certificate
          presented by the remote server. This can be useful if the
          remote server uses a self-signed certificate. Beware that this
          degrades security by enabling man-in-the-middle attacks, as
          the _remote site is not verified at all_.

 -- Data Type: ngircd-channel
     Available ‘ngircd-channel’ fields are:

     ‘name’ (Typ: Zeichenkette)
          Name of the channel, including channel prefix ("#" or "&").

     ‘topic’ (type: maybe-string)
          Topic for this channel.

     ‘modes’ (type: maybe-list-of-strings)
          Initial channel modes, as used in MODE commands. Modifying
          lists (ban list, invite list, exception list) is supported. If
          multiple MODE strings are specified, they are evaluated in the
          order listed (left to right).

     ‘key-file’ (type: maybe-file-like)
          Path and file name of a ngIRCd key file containing individual
          channel keys for different users. Refer to ‘man 5 ngircd.conf’
          for more details.

Pounce Service
..............

pounce (https://git.causal.agency/pounce/about/) is a multi-client,
TLS-only IRC bouncer. It maintains a persistent connection to an IRC
server, acting as a proxy and buffer for a number of clients.

 -- Variable: pounce-service-type
     This is the service type for the pounce IRC bouncer. Its value is a
     ‘pounce-configuration’ configuration instance, which is documented
     below.

     The following example configures pounce to act as an IRC bouncer
     for the Libera.Chat (https://libera.chat) server, using CertFP
     (client certificate fingerprint) authentication to avoid leaking a
     sensitive password to the publicly readable store. The equally
     sensitive TLS certificate file should be created in-place or
     transferred using a secure means such as SSH, prior to deploying
     the service. The service activation will ensure the ownership and
     permissions of the certificate/key files are set correctly. In the
     below example, it is placed at ‘/etc/pounce/libera.pem’ on the
     target machine. Pounce itself can be used to generate a TLS
     certificate, using the ‘pounce -g libera.pem’ command, which
     concatenates both the private key and the public certificate in the
     specified file name. For more information regarding CertFP
     authentication, refer to ‘man pounce’ or the Libera.Chat guide at
     <https://libera.chat/guides/certfp>.

          (service pounce-service-type
                   (pounce-configuration
                    (host "irc.libera.chat")
                    (client-cert "/etc/pounce/libera.pem")
                    (nick "hannah")
                    (join (list "#gnu" "#guix" "#guile" "#hurd"))))

     Once deployed on the target machine, pounce will act as an IRC
     server listening for TLS connections on the 6697 TCP port of the
     ‘localhost’ address of that machine. By default, a self-signed
     certificate for pounce is created at
     ‘/var/lib/pounce/.config/pounce/localhost.cert’. If you plan to
     expose the bouncer to the public Internet, it is advisable to use a
     CA (Certificate Authority)-signed certificate, as can be obtained
     using a certificate service (*note Zertifikatsdienste::), so that
     IRC clients can verify the certificate out of the box. If you
     instead plan to connect to the bouncer strictly via a secure
     connection, for example using a VPN (Virtual Private Network) or
     SSH (Secure Shell), then it is acceptable to simply let your IRC
     client trust the auto-generated, self-signed pounce certificate or
     even disable TLS certificate verification in your client.

     To connect to a second server, a second pounce instance is needed,
     taking care to specify the ‘provision’ field of its
     ‘pounce-configuration’ to avoid a name clash with the previous
     service, along with a distinct ‘local-port’ and ‘log-file’. The
     following example shows how to configure another bouncer, this time
     for the OFTC (https://www.oftc.net) IRC server. Like in the
     previous example, CertFP authentication is used, which can be
     configured similarly. For more details about using CertFP with the
     OFTC IRC server, refer to <https://www.oftc.net/NickServ/CertFP/>.

          (service pounce-service-type
                   (pounce-configuration
                    (shepherd-provision '(pounce-oftc))
                    (local-port 6698)
                    (log-file "/var/log/pounce-oftc.log")
                    (host "irc.oftc.net")
                    (client-cert "/etc/pounce/oftc.pem")
                    (nick "sena")
                    (join (list "#gcc" "#glibc"))))

 -- Data Type: pounce-configuration
     Available ‘pounce-configuration’ fields are:

     ‘pounce’ (default: ‘pounce’) (type: file-like)
          The ‘pounce’ package to use.

     ‘shepherd-provision’ (default: ‘(pounce)’) (type: list-of-symbols)
          The name(s) of the service.

     ‘shepherd-requirement’ (default: ‘(user-processes networking)’) (type: list-of-symbols)
          Shepherd requirements the service should depend on.

     ‘log-file’ (default: ‘"/var/log/pounce.log"’) (type: string)
          The log file name to use.

     ‘verbose?’ (type: maybe-boolean)
          When true, log IRC messages to standard output.

     ‘local-host’ (default: ‘"localhost"’) (type: maybe-string)
          The host to bind to.

     ‘local-port’ (default: ‘6697’) (type: maybe-port)
          The port to bind to.

     ‘local-ca’ (type: maybe-string)
          Require clients to authenticate using a TLS client certificate
          either contained in or signed by a certificate in the file
          loaded from ‘local-ca’, a file name. The file is reloaded when
          the SIGUSR1 signal is received.

     ‘local-cert’ (type: maybe-string)
          File name of the TLS certificate to load. The file is reloaded
          when the SIGUSR1 signal is received. Unless specified, a
          self-signed certificate is generated at
          ‘/var/lib/pounce/.config/pounce/HOST.pem’, where HOST
          corresponds to the value of the ‘local-host’ field.

     ‘local-priv’ (type: maybe-string)
          File name of the private TLS key to load. Unless specified, a
          key is generated at ‘/var/lib/pounce/.config/pounce/HOST.key’,
          where HOST corresponds to the value of the ‘local-host’ field.

     ‘local-pass’ (type: maybe-string)
          Require the server password pass for clients to connect. The
          pass string must be hashed using ‘pounce -x’.

     ‘size’ (default: ‘4096’) (type: maybe-power-of-two)
          Set the number of messages contained in the buffer to SIZE.
          This sets the maximum number of recent messages which can be
          relayed to a reconnecting client. The size must be a power of
          two.

     ‘bind’ (type: maybe-string)
          Host to bind the _source_ address to when connecting to the
          server. To connect from any address over IPv4 only, use
          ‘0.0.0.0’. To connect from any address over IPv6 only, use
          ‘::’.

     ‘host’ (type: string)
          The host name to connect to.

     ‘port’ (Typ: Vielleicht-Port)
          The port number to connect to.

     ‘pass’ (type: maybe-string)
          Password to use to log in with the server. The password must
          have been hashed via the ‘pounce -x’ command.

     ‘join’ (type: maybe-list-of-strings)
          The list of channels to join.

     ‘mode’ (Typ: Vielleicht-Zeichenkette)
          The user mode.

     ‘user’ (Typ: Vielleicht-Zeichenkette)
          To set the username. The default username is the same as the
          nickname.

     ‘nick’ (default: ‘"pounce"’) (type: maybe-string)
          Set nickname to NICK.

     ‘real’ (type: maybe-string)
          Set the real name. The default is ‘nick’.

     ‘away’ (type: maybe-string)
          The away status to use when no clients are connected and no
          other away status has been set.

     ‘quit’ (type: maybe-string)
          The message to use when quitting.

     ‘no-names?’ (type: maybe-boolean)
          Do not request ‘NAMES’ for each channel when a client
          connects. This avoids already connected clients receiving
          unsolicited responses but prevents new clients from populating
          user lists.

     ‘queue-interval’ (default: ‘200’) (type: maybe-number)
          Set the server send queue interval in milliseconds. The queue
          is used to send automated messages from pounce to the server.
          Messages from clients are sent to the server directly.

     ‘trust’ (type: maybe-string)
          File name of a certificate to trust. When used, server name
          verification is disabled.

     ‘client-cert’ (type: maybe-string)
          The file name of the TLS client. If the private key is in a
          separate file, it is loaded with ‘client-priv’. With
          ‘sasl-external?’, authenticate using SASL EXTERNAL.
          Certificates can be generated with ‘pounce -g’. For more
          details, refer to “Generating Client Certificates” in ‘man 1
          pounce’.

     ‘client-priv’ (type: maybe-string)
          The file name of the TLS client private key.

     ‘sasl-plain’ (type: maybe-pair)
          A pair of the username and password in plain text to
          authenticate using SASL PLAIN. Since this method requires the
          account password in plain text, it is recommended to use
          CertFP instead with ‘sasl-external’.

     ‘sasl-external?’ (type: maybe-boolean)
          Authenticate using SASL EXTERNAL, also known as CertFP. The
          TLS client certificate is loaded from ‘client-cert’.

Quassel-Dienst
..............

Quassel (https://quassel-irc.org/) ist ein verteilter IRC-Client, was
bedeutet, dass sich ein oder mehr Clients mit dem zentralen Kern
verbinden und die Verbindung wieder trennen können.

 -- Variable: quassel-service-type
     Dies ist der Diensttyp für den Daemon zum IRC-Hintergrundsystem
     („Backend“) Quassel (https://quassel-irc.org/). Sein Wert ist eine
     ‘quassel-configuration’ (siehe unten).

 -- Datentyp: quassel-configuration
     Die Konfiguration für Quassel mit den folgenden Feldern:

     ‘quassel’ (Vorgabe: ‘quassel’)
          Das zu verwendende Quassel-Paket.

     ‘interface’ (Vorgabe: ‘"::,0.0.0.0"’)
     ‘port’ (Vorgabe: ‘4242’)
          Lauscht auf der/den Netzwerkschnittstelle(n), die den in der
          kommagetrennten INTERFACE-Liste festgelegten IPv4- oder
          IPv6-Schnittstellen entsprechen, auf dem angegebenen PORT.

     ‘loglevel’ (Vorgabe: ‘"Info"’)
          Die gewünschte Detailstufe der Protokollierung. Akzeptiert
          werden die Werte Debug (ausführlich zur Fehlersuche), Info,
          Warning (nur Warnungen und Fehler) und Error (nur Fehler).

Snuik Service
.............

The Snuik IRC bot (https://gitlab.com/janneke/snuik) can be run as a
daemon to aid talking to users that are currently offline. With the
‘(gnu services messaging)’ service, you can configure it by adding a
‘snuik-service-type’ service to the ‘services’ field of your operating
system declaration.

 -- Variable: snuik-service-type
     This is the type of the Snuik service, whose value is a
     ‘snuik-configuration’ object.

   Here is an example of a service and its configuration:

     (service snuik-service-type
              (snuik-configuration
               (password-file "/var/run/snuik/.password.snuik")
               (channels '("#bootstrappable"
                           "#dezyne"
                           "#guix-risc-v"
                           "#lilypond"))))

 -- Data Type: snuik-configuration
     Available ‘snuik-configuration’ fields are:

     ‘snuik’ (default: ‘snuik’) (type: package)
          The Snuik package to use.

     ‘server’ (default: ‘"irc.libera.chat"’)
          The IRC server to connect to.

     ‘port’ (default: ‘6665’) (type: integer)
          Port number used by the IRC server.

     ‘nick’ (default: ‘"snuik"’) (type: string)
          The nickname for snuik to use.

     ‘password’ (default: ‘#f’) (type: string)
          The password to use when logging in.

     ‘password-file’ (default: ‘".password.<nick>’)
          The file to read the password from to use when logging in.

     ‘channels’ (default: ‘'("##botchat")’)
          The channels for snuik to join, a list of strings.

     ‘extra-options’ (Vorgabe: ‘'()’)
          Extra options will be passed to ‘snuik’, please run ‘snuik
          --help ’ for more information.

Mosquitto Service
.................

Mosquitto (https://mosquitto.org/) is a lightweight message broker that
implements the MQTT protocol versions 5.0, 3.1.1 and 3.1. It is suitable
for use on all devices from low power single board computers to full
servers.

 -- Variable: mosquitto-service-type
     This is the service type for the Mosquitto (https://mosquitto.org/)
     MQTT broker. Its value is a ‘mosquitto-configuration’ (see below).

 -- Data Type: mosquitto-configuration
     This is the configuration for Mosquitto, with the following fields:

     ‘package’ (default: ‘mosquitto’)
          The Mosquitto package to use.

     ‘config-file’ (Vorgabe: ‘#f’)
          The Mosquitto configuration file as a file-like object or the
          value ‘#f’ to use the default configuration.

     ‘user’ (default: ‘"mosquitto"’)
          Owner of the broker process.

     ‘group’ (default: ‘"mosquitto"’)
          Owner’s group of the broker process.

Mollysocket Service
...................

Mollysocket (https://github.com/mollyim/mollysocket) is a UnifiedPush
provider for the messaging app Molly (https://molly.im), a fork of
Signal.

 -- Variable: mollysocket-service-type
     The Mollysocket service. Takes ‘mollysocket-configuration’ as its
     value. By default, this service listens on port 8020 for any Molly
     client.

 -- Data Type: mollysocket-configuration
     The configuration for Mollysocket, with the following fields:

     ‘package’ (default: ‘mollysocket’)
          The Mollysocket package to use.

     ‘host’ (default: ‘"0.0.0.0"’)
          Address for the webserver to listen on. It is recommended that
          this be set to localhost, and instead configure a
          TLS-supporting reverse proxy in front of it.

     ‘port’ (default: ‘8020’)
          Port for the webserver to listen on.

     ‘webserver’ (default: ‘#t’)
          Whether the webserver sould be enabled. If disabled, the
          server is considered to be in airgapped mode, and clients must
          be configured likewise.

     ‘allowed-endpoints’ (default: ‘'("*")’)
          Allowlist of UnifiedPush distributor endpoints, represented as
          IP addresses or domain names. Addresses on the local network
          must be specified explicitly.

     ‘allowed-uuids’ (default: ‘'("*")’)
          Allowlist of Signal account UUIDs.

     ‘db’ (default: ‘"/var/lib/mollysocket/db.sqlite"’)
          Path to the Mollysocket database. Will be created if it
          doesn’t exist.

     ‘vapid-key-file’ (default: ‘"/var/lib/mollysocket/vapid.key"’)
          Path to the VAPID key used to authorize requests to the
          UnifiedPush distributor. Will be created if it doesn’t exist.


File: guix.de.info,  Node: Telefondienste,  Next: Dateientauschdienste,  Prev: Kurznachrichtendienste,  Up: Dienste

11.10.15 Telefondienste
-----------------------

Das Modul ‘(gnu services telephony)’ stellt Guix-Dienstdefinitionen für
Telefoniedienste zur Verfügung. Zurzeit werden folgende Dienste
unterstützt:

Jami
....

 -- Variable: jami-service-type
     Der Diensttyp, um Jami als Dienst auszuführen. Als sein Wert muss
     ein ‘jami-configuration’-Objekt angegeben werden, wie unten
     beschrieben. In diesem Abschnitt wird erklärt, wie Sie einen Server
     für Jami einrichten, mit dem Video- oder Audiokonferenzen
     bereitgestellt werden können, neben anderen Nutzungsmöglichkeiten.
     Das folgende Beispiel zeigt, wie Jami-Kontenarchive
     (Sicherungskopien) automatisch eingerichtet werden:

          (service jami-service-type
                   (jami-configuration
                    (accounts
                     (list (jami-account
                            (archive "/etc/jami/unverschlüsseltes-konto-1.gz"))
                           (jami-account
                            (archive "/etc/jami/unverschlüsseltes-konto-2.gz"))))))

     Wenn etwas für das ‘accounts’-Feld angegeben wird, werden die
     Jami-Kontendateien des Dienstes unter ‘/var/lib/jami’ bei jedem
     Neustart des Dienstes neu erzeugt.

     Jami-Konten und die zugehörigen Archive mit Sicherungskopien können
     mit dem Jami-Client ‘jami’ oder auch mit dem Client ‘jami-gnome’
     angelegt werden. Die Konten sollten _nicht_ mit einem Passwort
     geschützt werden, aber es ist ratsam, sie nur für den
     Administratornutzer ‘root’ lesbar zu machen.

     Im nächsten Beispiel sehen Sie, wie deklariert wird, dass nur
     manche Kontakte mit einem bestimmten Konto kommunizieren dürfen:

          (service jami-service-type
                   (jami-configuration
                    (accounts
                     (list (jami-account
                            (archive "/etc/jami/unverschlüsseltes-konto-1.gz")
                            (peer-discovery? #t)
                            (rendezvous-point? #t)
                            (allowed-contacts
                             '("1dbcb0f5f37324228235564b79f2b9737e9a008f"
                               "2dbcb0f5f37324228235564b79f2b9737e9a008f")))))))

     In diesem Modus können nur die als ‘allowed-contacts’ deklarierten
     Kontakte eine Kommunikation mit diesem Jami-Konto einleiten. So
     etwas kann zum Beispiel benutzt werden, um Konten als „Treffpunkt“
     zur Erstellung von privaten Videokonferenzräumen einzurichten.

     Um dem Systemadministrator die volle Kontrolle über von deren
     System angebotene Konferenzen zu geben, unterstützt der Jami-Dienst
     die folgenden Aktionen:

          # herd doc jami list-actions
          (list-accounts
           list-account-details
           list-banned-contacts
           list-contacts
           list-moderators
           add-moderator
           ban-contact
           enable-account
           disable-account)

     Das Ziel ist, mit den obigen Aktionen die für die Moderation
     wertvollsten Aktionen zur Verfügung zu stellen; wir versuchen
     _nicht_, die gesamte Programmierschnittstelle von Jami abzudecken.
     Benutzer, die aus Guile heraus mit dem Jami-Daemon interagieren
     möchten, interessieren sich vielleicht für das Modul ‘(gnu build
     jami-service)’, womit die obigen Shepherd-Aktionen implementiert
     wurden.

     Die Aktionen ‘add-moderator’ und ‘ban-contact’ nehmen den
     _Fingerabdruck_ (einen 40-zeichigen Hash) als erstes Argument und
     einen Konto-Fingerabdruck oder Benutzernamen als zweites Argument
     an.

          # herd add-moderator jami 1dbcb0f5f37324228235564b79f2b9737e9a008f \
            f3345f2775ddfe07a4b0d95daea111d15fbc1199

          # herd list-moderators jami
          Moderators for account f3345f2775ddfe07a4b0d95daea111d15fbc1199:
            - 1dbcb0f5f37324228235564b79f2b9737e9a008f


     Im Fall von ‘ban-contact’ ist das zweite Benutzernamen-Argument
     optional; wenn Sie es weglassen, wird das Konto gegenüber allen
     Jami-Konten gesperrt.

          # herd ban-contact jami 1dbcb0f5f37324228235564b79f2b9737e9a008f

          # herd list-banned-contacts jami
          Banned contacts for account f3345f2775ddfe07a4b0d95daea111d15fbc1199:
            - 1dbcb0f5f37324228235564b79f2b9737e9a008f


     Gesperrten Kontakten werden auch ihre Moderatorrechte entzogen.

     Die Aktion ‘disable-account’ ermöglicht es, ein Konto gänzlich vom
     Netzwerk abzutrennen, also unerreichbar zu machen. Dagegen bewirkt
     ‘enable-account’ das Gegenteil. Sie nehmen einen einzelnen
     Kontobenutzernamen oder -fingerabdruck als erstes Argument:

          # herd disable-account jami f3345f2775ddfe07a4b0d95daea111d15fbc1199

          # herd list-accounts jami
          The following Jami accounts are available:
            - f3345f2775ddfe07a4b0d95daea111d15fbc1199 (dummy) [disabled]


     Die Aktion ‘list-account-details’ zeigt die Parameter jedes Kontos
     ausführlich im Recutils-Format an, d.h. der Befehl ‘recsel’ kann
     benutzt werden, um die relevanten Konten auszuwählen (siehe *note
     (recutils)Selection Expressions::). Beachten Sie, dass anstelle der
     Punkt-Zeichen (‘.’) in den Schlüsseln der Kontoparameter
     Unterstriche (‘_’) angezeigt werden, um den Anforderungen des
     Recutils-Formats zu genügen. Folgendes Beispiel zeigt, wie man den
     Fingerabdruck jedes im Treffpunktmodus befindlichen Kontos
     angezeigt bekommt:

          # herd list-account-details jami | \
            recsel -p Account.username -e 'Account.rendezVous ~ "true"'
          Account_username: f3345f2775ddfe07a4b0d95daea111d15fbc1199

     Die anderen Aktionen sollten selbsterklärend sein.

     Nun folgt eine vollständige Übersicht über die verfügbaren
     Konfigurationsoptionen.

 -- Datentyp: jami-configuration
     Verfügbare ‘jami-configuration’-Felder sind:

     ‘libjami’ (Vorgabe: ‘libjami’) (Typ: „package“)
          Das Jami-Daemon-Paket, was benutzt werden soll.

     ‘dbus’ (Vorgabe: ‘dbus-for-jami’) (Typ: „package“)
          Das D-Bus-Paket, mit dem die benötigte D-Bus-Sitzung gestartet
          wird.

     ‘nss-certs’ (Vorgabe: ‘nss-certs’) (Typ: „package“)
          Das nss-certs-Paket, was die TLS-Zertifikate bereitstellt.

     ‘enable-logging?’ (Vorgabe: ‘#t’) (Typ: Boolescher-Ausdruck)
          Ob Protokollierung in Syslog aktiviert sein soll.

     ‘debug?’ (Vorgabe: ‘#f’) (Typ: Boolescher-Ausdruck)
          Ob Meldungen der Fehlersuch-Ausführlichkeitsstufe aktiviert
          sein sollen.

     ‘auto-answer?’ (Vorgabe: ‘#f’) (Typ: Boolescher-Ausdruck)
          Ob Anrufe erzwungen automatisch entgegengenommen werden
          sollen.

     ‘accounts’ (Typ: Vielleicht-„jami-account“-Liste)
          Eine Liste der Jami-Konten, die jedes Mal (neu) eingerichtet
          werden, wenn der Jami-Daemon-Dienst startet. Wenn Sie dieses
          Feld angeben, werden die Kontoverzeichnisse unter
          ‘/var/lib/jami/’ bei jedem Start des Dienstes aufs Neue
          erzeugt, was einen konsistenten Zustand gewährleistet.

 -- Datentyp: jami-account
     Verfügbare ‘jami-account’-Felder sind:

     ‘archive’ (Typ: Zeichenkette-oder-„computed-file“)
          Der Dateiname des Kontenarchivs mit den Sicherungskopien des
          Kontos. Damit werden die Konten neu eingerichtet, sobald der
          Dienst startet. Das Kontenarchiv muss _unverschlüsselt_ sein.
          Es wird dringend empfohlen, diese Dateien nur für den
          Administratornutzer ‘root’ lesbar zu machen (sie also _nicht_
          im Store zu speichern), damit die darin enthaltenen geheimen
          Schlüssel des Jami-Kontos nicht bekannt werden.

     ‘allowed-contacts’ (Typ: Vielleicht-Kontofingerabdruck-Liste)
          Die Liste der erlaubten Kontakte des Kontos in Form deren
          40 Zeichen langen Fingerabdrucks. Nachrichten und eingehende
          Anrufe von Konten, die in der Liste fehlen, werden abgewiesen.
          Wenn keine Liste angegeben wird, wird die gesamte
          Konfiguration des Kontenarchivs als Kontakte und für
          öffentliche eingehende Anrufe und Nachrichten zugelassen, was
          normalerweise bedeutet, dass jeder Kontakt mit dem Konto
          kommunizieren kann.

     ‘moderators’ (Typ: Vielleicht-Kontofingerabdruck-Liste)
          Die Liste der Kontakte, die Moderationsrecht (andere Nutzer
          sperren, stummschalten usw.) in Treffpunkt-Konferenzen
          („Rendezvous“) haben. Kontakte werden in Form ihres 40 Zeichen
          langen Fingerabdrucks angegeben. Wird nichts festgelegt,
          werden Moderationsrechte an die gesamte Konfiguration des
          Kontenarchivs übertragen, was normalerweise bedeutet, dass
          jeder die Moderatorrolle einnehmen kann.

     ‘rendezvous-point?’ (Typ: Vielleicht-Boolescher-Ausdruck)
          Ob das Konto im Treffpunktmodus (Rendezvous-Modus) arbeiten
          soll. In diesem Modus werden alle eingehenden
          Audio-/Videoanrufe in eine Konferenz gemischt. Wenn nichts
          angegeben wird, gilt der Wert im Kontenarchiv.

     ‘peer-discovery?’ (Typ: Vielleicht-Boolescher-Ausdruck)
          Ob sich der Jami-Daemon am Multicast-Mechanismus zum Finden
          lokaler Netzwerkteilnehmer beteiligen soll. Damit werden
          andere OpenDHT-Knoten im lokalen Netzwerk erkannt, wodurch die
          Kommunikation zwischen Geräten in einem solchen Netzwerk
          aufrechterhalten werden kann, selbst wenn die
          Internetverbindung verloren geht. Wenn nichts angegeben wird,
          gilt der Wert im Kontenarchiv.

     ‘bootstrap-hostnames’ (Typ: Vielleicht-Zeichenketten-Liste)
          Eine Liste von Rechnernamen oder IP-Adressen, die auf
          OpenDHT-Knoten verweisen, über die beim Start eine Verbindung
          zum OpenDHT-Netzwerk aufgebaut wird. Wenn nichts angegeben
          wird, gilt der Wert im Kontenarchiv.

     ‘name-server-uri’ (Typ: Vielleicht-Zeichenkette)
          Die URI des zu nutzenden Namens-Servers, mit dem der
          Konto-Fingerabdruck eines registrierten Nutzers erfragt werden
          kann.

Mumble-Server
.............

Dieser Abschnitt beschreibt, wie Sie einen Server für Mumble
(https://mumble.info) einrichten und ausführen. (Die Server-Komponente
war ehemals bekannt unter dem Namen Murmur.)

 -- Variable: mumble-server-service-type

     Der Diensttyp, um einen Mumble-Server zu betreiben. Sein Wert muss
     ein ‘mumble-server-configuration’-Objekt sein. Folgendes ist
     enthalten.

 -- Datentyp: mumble-server-configuration
     Der Diensttyp für den Mumble-Server. Eine Beispielkonfiguration
     kann so aussehen:

          (service mumble-server-service-type
                   (mumble-server-configuration
                    (welcome-text
                      "Willkommen zu diesem mit Guix betriebenen Mumble-Server!")
                    (cert-required? #t) ;Anmeldungen mit Textpasswort deaktivieren
                    (ssl-cert "/etc/certs/mumble.example.com/fullchain.pem")
                    (ssl-key "/etc/certs/mumble.example.com/privkey.pem")))

     Nachdem Sie Ihr System rekonfiguriert haben, können Sie das
     Passwort des Administratornutzers ‘SuperUser’ auf dem Mumble-Server
     mit Hilfe des Befehls von Hand festlegen, der Ihnen in der
     Aktivierungsphase des Mumble-Servers angezeigt wird.

     Es wird empfohlen, ein normales Mumble-Benutzerkonto zu
     registrieren und mit Administrator- oder Moderatorrechten
     auszustatten. Sie können auch das Clientprogramm ‘mumble’ benutzen,
     um sich als neuer normaler Benutzer anzumelden und zu registrieren,
     und sich dann abmelden. Im nächsten Schritt melden Sie sich mit dem
     Benutzernamen ‘SuperUser’ mit dem vorher festgelegten
     ‘SuperUser’-Passwort an und statten Ihren registrierten
     Mumble-Benutzer mit Administrator- oder Moderatorrechten aus oder
     erzeugen ein paar Kanäle.

     Verfügbare ‘mumble-server-configuration’-Felder sind:

     ‘package’ (Vorgabe: ‘mumble’)
          Das Paket, das ‘bin/mumble-server’ enthält.

     ‘user’ (Vorgabe: ‘"mumble-server"’)
          Der Benutzer, der den Mumble-Server ausführt.

     ‘group’ (Vorgabe: ‘"mumble-server"’)
          Die Gruppe des Benutzers, der den Mumble-Server ausführt.

     ‘port’ (Vorgabe: ‘64738’)
          Der Port, auf dem der Server lauschen wird.

     ‘welcome-text’ (Vorgabe: ‘""’)
          Der Willkommenstext, der an Clients geschickt wird, sobald sie
          eine Verbindung aufgebaut haben.

     ‘server-password’ (Vorgabe: ‘""’)
          Das Passwort, das Clients eingeben müssen, um sich verbinden
          zu können.

     ‘max-users’ (Vorgabe: ‘100’)
          Die Maximalzahl von Nutzern, die gleichzeitig mit dem Server
          verbunden sein können.

     ‘max-user-bandwidth’ (Vorgabe: ‘#f’)
          Wie viele Stimmdaten ein Benutzer pro Sekunde versenden kann.

     ‘database-file’ (Vorgabe: ‘"/var/lib/mumble-server/db.sqlite"’)
          Der Dateiname der SQLite-Datenbank. Das Benutzerkonto für den
          Dienst wird Besitzer des Verzeichnisses.

     ‘log-file’ (Vorgabe: ‘"/var/log/mumble-server/mumble-server.log"’)
          Der Dateiname der Protokolldatei. Das Benutzerkonto für den
          Dienst wird Besitzer des Verzeichnisses.

     ‘autoban-attempts’ (Vorgabe: ‘10’)
          Wie oft sich ein Benutzer innerhalb des in ‘autoban-timeframe’
          angegebenen Zeitrahmens verbinden kann, ohne automatisch für
          die in ‘autoban-time’ angegebene Zeit vom Server verbannt zu
          werden.

     ‘autoban-timeframe’ (Vorgabe: ‘120’)
          Der Zeitrahmen für automatisches Bannen in Sekunden.

     ‘autoban-time’ (Vorgabe: ‘300’)
          Wie lange in Sekunden ein Client gebannt wird, wenn er die
          Autobann-Beschränkungen überschreitet.

     ‘opus-threshold’ (Vorgabe: ‘100’)
          Der Prozentanteil der Clients, die Opus unterstützen müssen,
          bevor der Opus-Audiocodec verwendet wird.

     ‘channel-nesting-limit’ (Vorgabe: ‘10’)
          Wie tief Kanäle höchstens ineinander verschachtelt sein
          können.

     ‘channelname-regex’ (Vorgabe: ‘#f’)
          Eine Zeichenkette in Form eines regulären Ausdrucks von Qt, zu
          dem Kanalnamen passen müssen.

     ‘username-regex’ (Vorgabe: ‘#f’)
          Eine Zeichenkette in Form eines regulären Ausdrucks von Qt, zu
          dem Nutzernamen passen müssen.

     ‘text-message-length’ (Vorgabe: ‘5000’)
          Wie viele Bytes ein Benutzer höchstens in einer
          Textchatnachricht verschicken kann.

     ‘image-message-length’ (Vorgabe: ‘(* 128 1024)’)
          Wie viele Bytes ein Benutzer höchstens in einer Bildnachricht
          verschicken kann.

     ‘cert-required?’ (Vorgabe: ‘#f’)
          Falls dies auf ‘#t’ gesetzt ist, werden Clients abgelehnt, die
          sich bloß mit Passwörtern authentisieren. Benutzer müssen den
          Zertifikatsassistenten abgeschlossen haben, bevor sie sich
          verbinden können.

     ‘remember-channel?’ (Vorgabe: ‘#f’)
          Ob sich ‘mumble-server’ für jeden Nutzer den Kanal merken
          soll, auf dem er sich zuletzt befunden hat, als er die
          Verbindung getrennt hat, so dass er wieder auf dem gemerkten
          Kanal landet, wenn er dem Server wieder beitritt.

     ‘allow-html?’ (Vorgabe: ‘#f’)
          Ob HTML in Textnachrichten, Nutzerkommentaren und
          Kanalbeschreibungen zugelassen wird.

     ‘allow-ping?’ (Vorgabe: ‘#f’)
          Wenn es auf wahr gesetzt ist, wird an nicht angemeldete
          Anwender die momentane Benutzerzahl, die maximale Benutzerzahl
          und die maximale Bandbreite pro Benutzer übermittelt. Im
          Mumble-Client werden diese Informationen im Verbinden-Dialog
          angezeigt.

          Wenn diese Einstellung deaktiviert ist, wird der Server nicht
          in der öffentlichen Serverliste aufgeführt.

     ‘bonjour?’ (Vorgabe: ‘#f’)
          Ob der Server im lokalen Netzwerk anderen über das
          Bonjour-Protokoll mitgeteilt werden soll.

     ‘send-version?’ (Vorgabe: ‘#f’)
          Ob die ‘mumble-server’-Serverversion Clients gegenüber in
          Ping-Anfragen mitgeteilt werden soll.

     ‘log-days’ (Vorgabe: ‘31’)
          Mumble führt in der Datenbank Protokolle, auf die über
          entfernte Prozeduraufrufe („Remote Procedure Calls“, kurz RPC)
          zugegriffen werden kann. Nach Vorgabe bleiben diese 31 Tage
          lang erhalten, aber sie können diese Einstellung auf 0 setzen,
          damit sie ewig gespeichert werden, oder auf -1, um _keine_
          Protokolle in die Datenbank zu schreiben.

     ‘obfuscate-ips?’ (Vorgabe: ‘#t’)
          Ob IP-Adressen in Protokollen anonymisiert werden sollen, um
          die Privatsphäre von Nutzern zu schützen.

     ‘ssl-cert’ (Vorgabe: ‘#f’)
          Der Dateiname des SSL-/TLS-Zertifikats, das für verschlüsselte
          Verbindungen benutzt werden soll.

               (ssl-cert "/etc/certs/example.com/fullchain.pem")
     ‘ssl-key’ (Vorgabe: ‘#f’)
          Dateipfad zum privaten Schlüssel für SSL, was für
          verschlüsselte Verbindungen benutzt wird.
               (ssl-key "/etc/certs/example.com/privkey.pem")

     ‘ssl-dh-params’ (Vorgabe: ‘#f’)
          Dateiname einer PEM-kodierten Datei mit
          Diffie-Hellman-Parametern für die SSL-/TLS-Verschlüsselung.
          Alternativ setzen Sie ihn auf ‘"@ffdhe2048"’, ‘"@ffdhe3072"’,
          ‘"@ffdhe4096"’, ‘"@ffdhe6144"’ oder ‘"@ffdhe8192"’, wodurch
          die mitgelieferten Parameter aus RFC 7919 genutzt werden.

     ‘ssl-ciphers’ (Vorgabe: ‘#f’)
          Die Option ‘ssl-ciphers’ wählt aus, welche Cipher-Suites zur
          Verwendung in SSL/TLS verfügbar sein sollen.

          Diese Option wird in der OpenSSL-Notation für Cipher-Listen
          (https://www.openssl.org/docs/apps/ciphers.html#CIPHER-LIST-FORMAT)
          angegeben.

          Es wird empfohlen, dass Sie Ihre Cipher-Zeichenkette mit
          „openssl ciphers <Zeichenkette>“ prüfen, bevor Sie sie hier
          einsetzen, um ein Gefühl dafür zu bekommen, was für eine
          Cipher-Suite sie damit bekommen. Nachdem Sie diese Option
          festgelegt haben, wird empfohlen, dass Sie das Protokoll Ihres
          Mumble-Servers durchsehen und sicherstellen, dass Mumble auch
          wirklich die Cipher-Suites benutzt, die Sie erwarten.

               Anmerkung: Änderungen hieran können die
               Rückwärtskompatibilität Ihres Mumble-Servers
               beeinträchtigen; dadurch kann es für ältere
               Mumblie-Clients unmöglich werden, sich damit zu
               verbinden.

     ‘public-registration’ (Vorgabe: ‘#f’)
          Hier muss ein
          ‘<mumble-server-public-registration-configuration>’-Verbundsobjekt
          oder ‘#f’ angegeben werden.

          Sie können Ihren Server optional in die öffentliche
          Serverliste eintragen lassen, die der Mumble-Client ‘mumble’
          beim Start anzeigt. Sie können Ihren Server nicht
          registrieren, wenn Sie ein ‘server-password’ festgelegt oder
          ‘allow-ping’ auf ‘#f’ gesetzt haben.

          Es könnte ein paar Stunden dauern, bis er in der öffentlichen
          Liste zu finden ist.

     ‘file’ (Vorgabe: ‘#f’)
          Optional kann hier eine vorrangig benutzte alternative
          Konfiguration festgelegt werden.

 -- Datentyp: mumble-server-public-registration-configuration
     Konfiguration für das öffentliche Registrieren eines
     ‘mumble-server’-Dienstes.

     ‘name’
          Dies ist ein Anzeigename für Ihren Server. Er ist nicht zu
          verwechseln mit dem Rechnernamen („Hostname“).

     ‘password’
          Ein Passwort, um Ihre Registrierung zu identifizieren.
          Nachfolgende Aktualisierungen müssen dasselbe Passwort
          benutzen. Verlieren Sie Ihr Passwort nicht.

     ‘url’
          Dies sollte ein Link mit ‘http://’ oder ‘https://’ auf Ihren
          Webauftritt sein.

     ‘hostname’ (Vorgabe: ‘#f’)
          Nach Vorgabe wird Ihr Server über seine IP-Adresse aufgeführt.
          Wenn dies gesetzt ist, wird er stattdessen mit diesem
          Rechnernamen verknüpft.

     Hinweis: Folgendes wird demnächst verschwinden: Aus historischen
     Gründen werden alle oben genannten ‘mumble-server’-Prozeduren auch
     unter dem Namenspräfix ‘murmur-’ exportiert. Sie sollten für die
     Zukunft auf ‘mumble-server-’ umsteigen.

