diff --git a/seed/README.md b/seed/README.md index 913bc7c3..7b788351 100644 --- a/seed/README.md +++ b/seed/README.md @@ -1,72 +1,27 @@ # Application services -- [apache](apache/README.md): Apache as web server -- base: - - [base](base/README.md): Base of all application services - - [base-debian](base-debian/README.md): Base information of a Debian server - - [base-debian-bullseye](base-debian-bullseye/README.md): Base information of a Debian Bulleye server - - [base-fedora](base-fedora/README.md): Base information of a Fedora - - [base-fedora-35](base-fedora-35/README.md): Base information of a Fedora 35 - - [base-fedora-36](base-fedora-36/README.md): Base information of a Fedora 36 - - [base-fedora-37](base-fedora-37/README.md): Base information of a Fedora 37 - - [base-fedora-38](base-fedora-38/README.md): Base information of a Fedora 38 - - [base-machine](base-machine/README.md): Base information for a machine -- dns: - - [dns-external](dns-external/README.md): DNS client with resolution on all zones (especially outside) - - [dns-local](dns-local/README.md): DNS client with access to local zones - [dovecot](dovecot/README.md): Postfix and Dovecot as mail servers (Submission and IMAP) - [forgejo](forgejo/README.md): Forgejo, a community managed lightweight code hosting solution -- [gitea](gitea/README.md): Transitional package for Gitea to Forgejo - [grafana](grafana/README.md): Grafana is an analytics and interactive visualization web application -- [host-systemd-machined](host-systemd-machined/README.md): Host with machine started in Systemd Machined environment -- [imap-client](imap-client/README.md): Application service needs interact with an IMAP server -- [journald](journald/README.md): Journald -- [journald_remote](journald_remote/README.md): Journald remote -- [ldap-client](ldap-client/README.md): Application service needs interact with a LDAP server - [lemonldap](lemonldap/README.md): LemonLDAP, a Web Single Sign On and Access Management - [loki](loki/README.md): Loki, a log aggregation platform - [mailman](mailman/README.md): GNU Mailman, managing electronic mail discussion and e-newsletter lists -- mariadb: - - [mariadb](mariadb/README.md): MariaDB, a relational database - - [mariadb-client](mariadb-client/README.md): Application service needs interact with a MariaDB server +- [mariadb](mariadb/README.md): MariaDB, a relational database - [nextcloud](nextcloud/README.md): Nextcloud, Online collaboration platform -- nginx: - - [nginx-common](nginx-common/README.md): Nginx common configuration - - [nginx-https](nginx-https/README.md): Nginx as HTTPS web site - - [nginx-reverse-proxy](nginx-reverse-proxy/README.md): Nginx as reverse proxy - - [nginx-static](nginx-static/README.md): Nginx as static web site +- [nginx-reverse-proxy](nginx-reverse-proxy/README.md): Nginx as reverse proxy - nsd: - [nsd](nsd/README.md): NSD, an authoritative DNS name server - [nsd-local](nsd-local/README.md): NSD, an authoritative DNS name server for local resolution -- [oauth2-client](oauth2-client/README.md): Application service needs interact with a Oauth2 server - [odoo](odoo/README.md): Odoo, an ERP and CRM - [openldap](openldap/README.md): OpenLDAP, a LDAP server - [peertube](peertube/README.md): Peertube, a federated (ActivityPub) video streaming platform -- php: - - [php](php/README.md): PHP, a popular general-purpose scripting language - - [php-fpm](php-fpm/README.md): PHP FPM - [piwigo](piwigo/README.md): Piwigo, a photo management software -- [pki-tls](pki-tls/README.md): Autosign PKI or Let's encrypt support for TLS certificates -- postfix: - - [postfix-lmtp-relay](postfix-lmtp-relay/README.md): Postfix, the mail server, as LMTP relay - - [postfix-relay](postfix-relay/README.md): Postfix, the mail server, as relay -- postgresql: - - [postgresql](postgresql/README.md): Postgresql, a database - - [postgresql-client](postgresql-client/README.md): Application service needs interact with a Postgresql server +- [postfix-relay](postfix-relay/README.md): Postfix, the mail server, as relay +- [postgresql](postgresql/README.md): Postgresql, a database - [prometheus](prometheus/README.md): Prometheus, an event monitoring -- [provider-systemd-machined](provider-systemd-machined/README.md): Machine started in Systemd Machined environment -- redis: - - [redis](redis/README.md): Redis, an in-memory data structure store - - [redis-client](redis-client/README.md): Application service needs interact with a Redis server - - [redis-common](redis-common/README.md): Redis, an in-memory data structure store -- relay: - - [relay-lmtp-client](relay-lmtp-client/README.md): Application service needs interact with a Postfix server with LMTP protocol - - [relay-mail-client](relay-mail-client/README.md): Client SMTP -- [resolved](resolved/README.md): Resolved -- [reverse-proxy-client](reverse-proxy-client/README.md): Application service needs interact with a a reverse proxy server +- [redis](redis/README.md): Redis, an in-memory data structure store - [roundcube](roundcube/README.md): Roundcube, a webmail - [speedtest-rs](speedtest-rs/README.md): Speedtest-rs, a very lightweight Speedtest -- [systemd](systemd/README.md): Systemd, a system and service manager - [unbound](unbound/README.md): Unbound, a validating, recursive, caching DNS resolver - [vaultwarden](vaultwarden/README.md): Vaultwarden, a password manager - [vector](vector/README.md): Vector, a lightweight, ultra-fast tool for building observability pipelines diff --git a/seed/apache/README.md b/seed/apache/README.md index 9d734927..566d737d 100644 --- a/seed/apache/README.md +++ b/seed/apache/README.md @@ -5,51 +5,33 @@ include_toc: true # apache -## Description +## Synopsis Apache as web server. [For more informations](https://httpd.apache.org/) -## Examples - -Zone names are provided as examples. Think about adapting with the value of provider_zone in configuration file. - -``` -apache: - applicationservice: apache - zones_name: - - reverseproxy -``` - -``` -apache: - applicationservice: apache - zones_name: - - reverseproxy -``` - -## Dependances - -- [reverse-proxy-client](../reverse-proxy-client/README.md) - ## Variables ### Général (*general*) #### Apache (*general.apache*) -Paramètrage avancé du serveur web Apache -| Description | Help | Type | Values | -|-----------------------------------------------------------------------------------------------------------------------------------|-------------------|-------------------------------------------------------------------------------------------------------------------------|----------| -| **Temps d'attente des entrées/sorties avant de considérer qu'une requête a échoué** (*[apache_timeout](dictionaries/20_web.xml)*) | Temps en secondes | [number](https://forge.cloud.silique.fr/risotto/rougail/src/branch/main/doc/variable/README.md#le-type-de-la-variable) | 300 | -| **Autoriser les connexions persistantes** (*[apache_keepalive](dictionaries/20_web.xml)*) | | [boolean](https://forge.cloud.silique.fr/risotto/rougail/src/branch/main/doc/variable/README.md#le-type-de-la-variable) | True | +Paramètrage avancé du serveur web Apache. +| Description | Help | Type | Values | +|--------------------------------------------------------------------------------------------------------------------------------------------------|-------------------|-------------------------------------------------------------------------------------------------------------------------|----------| +| **Temps d'attente des entrées/sorties avant de considérer qu'une requête a échoué** (*[general.apache.apache_timeout](dictionaries/20_web.xml)*) | Temps en secondes | [number](https://forge.cloud.silique.fr/risotto/rougail/src/branch/main/doc/variable/README.md#le-type-de-la-variable) | 300 | +| **Autoriser les connexions persistantes** (*[general.apache.apache_keepalive](dictionaries/20_web.xml)*) | | [boolean](https://forge.cloud.silique.fr/risotto/rougail/src/branch/main/doc/variable/README.md#le-type-de-la-variable) | True | - [+]: variable is multiple - **bold**: variable is mandatory +## Dependances + +- [reverse-proxy-client](../reverse-proxy-client/README.md) + ## Used by [nextcloud](../nextcloud/README.md) diff --git a/seed/apache/applicationservice.yml b/seed/apache/applicationservice.yml index 11682e47..6ba1732c 100644 --- a/seed/apache/applicationservice.yml +++ b/seed/apache/applicationservice.yml @@ -3,4 +3,3 @@ description: Apache as web server website: https://httpd.apache.org/ depends: - reverse-proxy-client -service: true diff --git a/seed/base-debian-bullseye/README.md b/seed/base-debian-bullseye/README.md index 88b74434..790189df 100644 --- a/seed/base-debian-bullseye/README.md +++ b/seed/base-debian-bullseye/README.md @@ -5,7 +5,7 @@ include_toc: true # base-debian-bullseye -## Description +## Synopsis Base information of a Debian Bulleye server. diff --git a/seed/base-debian/README.md b/seed/base-debian/README.md index dbc7fe76..ad5cd36f 100644 --- a/seed/base-debian/README.md +++ b/seed/base-debian/README.md @@ -5,7 +5,7 @@ include_toc: true # base-debian -## Description +## Synopsis Base information of a Debian server. diff --git a/seed/base-fedora-35/README.md b/seed/base-fedora-35/README.md index ae84cc8a..3946f2b8 100644 --- a/seed/base-fedora-35/README.md +++ b/seed/base-fedora-35/README.md @@ -5,7 +5,7 @@ include_toc: true # base-fedora-35 -## Description +## Synopsis Base information of a Fedora 35. diff --git a/seed/base-fedora-36/README.md b/seed/base-fedora-36/README.md index 52691035..bb3b08e8 100644 --- a/seed/base-fedora-36/README.md +++ b/seed/base-fedora-36/README.md @@ -5,7 +5,7 @@ include_toc: true # base-fedora-36 -## Description +## Synopsis Base information of a Fedora 36. diff --git a/seed/base-fedora-37/README.md b/seed/base-fedora-37/README.md index c6e0d141..0e336e66 100644 --- a/seed/base-fedora-37/README.md +++ b/seed/base-fedora-37/README.md @@ -5,7 +5,7 @@ include_toc: true # base-fedora-37 -## Description +## Synopsis Base information of a Fedora 37. diff --git a/seed/base-fedora-38/README.md b/seed/base-fedora-38/README.md index eb1a2e42..5db3cbfe 100644 --- a/seed/base-fedora-38/README.md +++ b/seed/base-fedora-38/README.md @@ -5,7 +5,7 @@ include_toc: true # base-fedora-38 -## Description +## Synopsis Base information of a Fedora 38. diff --git a/seed/base-fedora/README.md b/seed/base-fedora/README.md index be44494c..932ea54b 100644 --- a/seed/base-fedora/README.md +++ b/seed/base-fedora/README.md @@ -5,7 +5,7 @@ include_toc: true # base-fedora -## Description +## Synopsis Base information of a Fedora. diff --git a/seed/base-machine/README.md b/seed/base-machine/README.md index d32ffb39..e388fa05 100644 --- a/seed/base-machine/README.md +++ b/seed/base-machine/README.md @@ -5,28 +5,28 @@ include_toc: true # base-machine -## Description +## Synopsis Base information for a machine. +## Variables + +### Machine (*machine*) + + +| Description | Type | +|-------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------| +| Data disk size (*[machine.data_disk_size](extras/machine/00_base.xml)*) | [number](https://forge.cloud.silique.fr/risotto/rougail/src/branch/main/doc/variable/README.md#le-type-de-la-variable) | + +- [+]: variable is multiple +- **bold**: variable is mandatory + ## Dependances - [base](../base/README.md) - [dns-local](../dns-local/README.md) - [pki-tls](../pki-tls/README.md) -## Variables - -### Machine (*machine*) - -| Description | Type | -|-----------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------| -| Data disk size (*[data_disk_size](extras/machine/00_base.xml)*) | [number](https://forge.cloud.silique.fr/risotto/rougail/src/branch/main/doc/variable/README.md#le-type-de-la-variable) | - - -- [+]: variable is multiple -- **bold**: variable is mandatory - ## Used by [systemd](../systemd/README.md) diff --git a/seed/base/README.md b/seed/base/README.md index cf694db8..b8308440 100644 --- a/seed/base/README.md +++ b/seed/base/README.md @@ -5,7 +5,7 @@ include_toc: true # base -## Description +## Synopsis Base of all application services. diff --git a/seed/base/funcs/base.py b/seed/base/funcs/base.py index acbeed06..95f02e44 100644 --- a/seed/base/funcs/base.py +++ b/seed/base/funcs/base.py @@ -60,3 +60,12 @@ def get_zones_info(zones: dict, continue ret.append(val) return ret + + +def get_first_value(lst: list): + if lst: + if isinstance(lst[0], list): + if lst[0] and lst[0][0]: + return lst[0][0] + else: + return lst[0] diff --git a/seed/dns-external/README.md b/seed/dns-external/README.md index 2707d752..d8b7b804 100644 --- a/seed/dns-external/README.md +++ b/seed/dns-external/README.md @@ -5,7 +5,7 @@ include_toc: true # dns-external -## Description +## Synopsis DNS client with resolution on all zones (especially outside). @@ -15,11 +15,10 @@ DNS client with resolution on all zones (especially outside). #### network (*general.network*) -| Description | Values | Supplier | -|-------------------------------------------------------------|----------|-------------| -| *[**dns_is_only_local**](dictionaries/14_dns-external.xml)* | False | | -| *[dns_client_address](dictionaries/14_dns-external.xml)* | | ExternalDNS | +| Description | Values | +|-------------------------------------------------------------|----------| +| *[**dns_is_only_local**](dictionaries/14_dns-external.xml)* | False | - [+]: variable is multiple - **bold**: variable is mandatory diff --git a/seed/dns-local/README.md b/seed/dns-local/README.md index c039e27f..78203c7b 100644 --- a/seed/dns-local/README.md +++ b/seed/dns-local/README.md @@ -5,7 +5,7 @@ include_toc: true # dns-local -## Description +## Synopsis DNS client with access to local zones. diff --git a/seed/dovecot/README.md b/seed/dovecot/README.md index 2a464a07..1719bf7e 100644 --- a/seed/dovecot/README.md +++ b/seed/dovecot/README.md @@ -5,18 +5,107 @@ include_toc: true # dovecot -## Description +## Synopsis Postfix and Dovecot as mail servers (Submission and IMAP). [For more informations](https://www.dovecot.org/) -## Examples +## Basic variables + +### Général (*general*) + +#### Mail configuration (*general.mail*) + +##### Mail domain (*general.mail.domain*) + + +This a family is a leadership. + +| Description | Type | Example | Supplier | +|----------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------|------------------------|---------------| +| **Domaine de courriel géré localement** (*[general.mail.domain.mail_domains](dictionaries/31_dovecot.xml)*) [+] | [domainname](https://forge.cloud.silique.fr/risotto/rougail/src/branch/main/doc/variable/README.md#le-type-de-la-variable) | example.net | LMTP:criteria | +| **Domaine exterieur d'accès au serveur IMAP** (*[general.mail.domain.imap_domainname](dictionaries/31_dovecot.xml)*) | [domainname](https://forge.cloud.silique.fr/risotto/rougail/src/branch/main/doc/variable/README.md#le-type-de-la-variable) | imap.example.net | | +| **Domaine exterieur d'accès au serveur submission** (*[general.mail.domain.submission_domainname](dictionaries/31_dovecot.xml)*) | [domainname](https://forge.cloud.silique.fr/risotto/rougail/src/branch/main/doc/variable/README.md#le-type-de-la-variable) | submission.example.net | | + +- [+]: variable is multiple +- **bold**: variable is mandatory + +## Variables + +### Général (*general*) + +#### Annuaire OpenLDAP (*general.ldap*) + +##### Client (*general.ldap.client*) + + +| Description | Type | Values | Supplier | +|------------------------------------------------------------------------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------|--------------|--------------| +| **Nom de la famille LDAP** (*[general.ldap.client.ldapclient_family](dictionaries/31_dovecot.xml)*) | [unix_user](https://forge.cloud.silique.fr/risotto/rougail/src/branch/main/doc/variable/README.md#le-type-de-la-variable) | all | LDAP:family | +| **Base DN de l'annuaire** (*[general.ldap.client.ldapclient_base_dn](dictionaries/21_ldap-client.xml)*) | [string](https://forge.cloud.silique.fr/risotto/rougail/src/branch/main/doc/variable/README.md#le-type-de-la-variable) | | LDAP:base_dn | +| **Base DN de l'annuaire des utilisateurs** (*[general.ldap.client.ldapclient_search_dn](dictionaries/21_ldap-client.xml)*) | [string](https://forge.cloud.silique.fr/risotto/rougail/src/branch/main/doc/variable/README.md#le-type-de-la-variable) | | | +| **Base DN de l'annuaire des groupes** (*[general.ldap.client.ldapclient_group_dn](dictionaries/21_ldap-client.xml)*) | [string](https://forge.cloud.silique.fr/risotto/rougail/src/branch/main/doc/variable/README.md#le-type-de-la-variable) | | | +| **Base DN de l'annuaire des utilisateurs n'appartenant à une famille** (*[general.ldap.client.ldapclient_user_dn](dictionaries/21_ldap-client.xml)*) | [string](https://forge.cloud.silique.fr/risotto/rougail/src/branch/main/doc/variable/README.md#le-type-de-la-variable) | | | + +#### Reverse proxy (*general.revprox*) + +##### Point d'entrée des clients (*general.revprox.revprox_client*) + + +This a family is a leadership. + +| Description | Type | Values | Example | Supplier | +|---------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------|--------------|---------------------|----------------------------| +| **Nom de domaine exterieur du serveur** (*[general.revprox.revprox_client.revprox_client_external_domainnames](dictionaries/31_dovecot.xml)*) [+] | [domainname](https://forge.cloud.silique.fr/risotto/rougail/src/branch/main/doc/variable/README.md#le-type-de-la-variable) | | service.example.net | ReverseProxy:external | +| **Nom de l'arborescence racine du site** (*[general.revprox.revprox_client.revprox_client_location](dictionaries/21_revprox_client.xml)*) | [filename](https://forge.cloud.silique.fr/risotto/rougail/src/branch/main/doc/variable/README.md#le-type-de-la-variable) | | | ReverseProxy:location | +| Taille maximum du corps (*[general.revprox.revprox_client.revprox_client_max_body_size](dictionaries/21_revprox_client.xml)*) | [string](https://forge.cloud.silique.fr/risotto/rougail/src/branch/main/doc/variable/README.md#le-type-de-la-variable) | | | ReverseProxy:max_body_size | + +#### Mail configuration (*general.mail*) + + +| Description | Type | Values | Choices | +|-------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|-----------|----------------------------| +| **Autorité de certification signant les certificats des domaines extérieurs** (*[general.mail.mail_crt_provider](dictionaries/31_dovecot.xml)*) | [choice](https://forge.cloud.silique.fr/risotto/rougail/src/branch/main/doc/variable/README.md#le-type-de-la-variable) | autosigne | autosigne
letsencrypt | + +- [+]: variable is multiple +- **bold**: variable is mandatory + +## Variables for expert + +### Général (*general*) + +#### NGINX (*general.nginx*) + + +Paramétrage global de NGINX. +##### Client (*general.ldap.client*) + + +| Description | Type | Values | Choices | +|---------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|----------|---------------------| +| **Longueur maximum pour un nom de domaine** (*[general.nginx.nginx_hash_bucket_size](dictionaries/21_nginx.xml)*) | [choice](https://forge.cloud.silique.fr/risotto/rougail/src/branch/main/doc/variable/README.md#le-type-de-la-variable) | 128 | 128
64
32 | +| **Taille maximale des données reçues par la méthode POST (en Mo)** (*[general.nginx.nginx_post_max_size](dictionaries/21_nginx.xml)*) | [number](https://forge.cloud.silique.fr/risotto/rougail/src/branch/main/doc/variable/README.md#le-type-de-la-variable) | 32 | | + +- [+]: variable is multiple +- **bold**: variable is mandatory + +## Associated providers + +- **LocalDNS** +- Journald +- **SMTP** +- **LDAP** +- **ReverseProxy** +- **LMTP** +- **OAuth2** + +**bold**: provider is mandatory + +## Example Zone names are provided as examples. Think about adapting with the value of provider_zone in configuration file. -With minimum providers: - ``` dovecot: applicationservice: dovecot @@ -28,22 +117,13 @@ dovecot: - smtp - lmtp - oauth2 -``` - -With all providers: - -``` -dovecot: - applicationservice: dovecot - provider_zone: imap - zones_name: - - journald - - ldap - - localdns - - reverseproxy - - smtp - - lmtp - - oauth2 + values: + general.mail.domain.mail_domains: + - example.net + general.mail.domain.imap_domainname: + '0': imap.example.net + general.mail.domain.submission_domainname: + '0': submission.example.net ``` ## Dependances @@ -65,66 +145,6 @@ dovecot: - [nginx-common](../nginx-common/README.md) - [reverse-proxy-client](../reverse-proxy-client/README.md) -## Variables - -### Général (*general*) - -#### network (*general.network*) - -| Description | Values | -|---------------------------------------------------------|--------------| -| *[**incoming_ports**](dictionaries/26_dovecot.xml)* [+] | 587
993 | - -#### ldap (*general.ldap*) - -##### client (*general.ldap.client*) - -| Description | Values | -|----------------------------------------------------------|----------| -| *[**ldapclient_family**](dictionaries/26_dovecot.xml)* | all | -| *[**ldap_key_file_owner**](dictionaries/26_dovecot.xml)* | dovecot | - -#### Mail configuration (*general.mail*) - -| Description | Type | Values | Choices | -|------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------|-----------|----------------------------| -| **Autorité de certification signant les certificats des domaines extérieurs** (*[mail_crt_provider](dictionaries/26_dovecot.xml)*) | [choice](https://forge.cloud.silique.fr/risotto/rougail/src/branch/main/doc/variable/README.md#le-type-de-la-variable) | autosigne | autosigne
letsencrypt | - -##### Mail domain (*general.mail.domain*) - -This a family is a leadership. - -| Description | Type | Supplier | -|---------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------|---------------| -| **Domaine de courriel géré localement** (*[mail_domains](dictionaries/26_dovecot.xml)*) [+] | [domainname](https://forge.cloud.silique.fr/risotto/rougail/src/branch/main/doc/variable/README.md#le-type-de-la-variable) | LMTP:criteria | -| *[**imap_domainname**](dictionaries/26_dovecot.xml)* | [domainname](https://forge.cloud.silique.fr/risotto/rougail/src/branch/main/doc/variable/README.md#le-type-de-la-variable) | | -| *[**submission_domainname**](dictionaries/26_dovecot.xml)* | [domainname](https://forge.cloud.silique.fr/risotto/rougail/src/branch/main/doc/variable/README.md#le-type-de-la-variable) | | - -#### IMAP mail server (*general.dovecot*) - -| Description | Type | Provider | -|----------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------|------------| -| **IMAP client address** (*[imap_internal_addresses](dictionaries/26_dovecot.xml)*) [+] | [domainname](https://forge.cloud.silique.fr/risotto/rougail/src/branch/main/doc/variable/README.md#le-type-de-la-variable) | IMAP | - -#### revprox (*general.revprox*) - -##### revprox_client (*general.revprox.revprox_client*) - -| Description | Values | -|----------------------------------------------------------------------|--------------| -| *[revprox_client_external_domainnames](dictionaries/26_dovecot.xml)* | | -| *[revprox_client_web_address](dictionaries/26_dovecot.xml)* | | - -#### nginx (*general.nginx*) - -| Description | Values | -|-------------------------------------------------|---------------| -| *[**nginx_root**](dictionaries/26_dovecot.xml)* | /var/www/html | - - -- [+]: variable is multiple -- **bold**: variable is mandatory - ## Supplier [imap-client](../imap-client/README.md) diff --git a/seed/dovecot/dictionaries/26_dovecot.xml b/seed/dovecot/dictionaries/31_dovecot.xml similarity index 93% rename from seed/dovecot/dictionaries/26_dovecot.xml rename to seed/dovecot/dictionaries/31_dovecot.xml index 28971b21..95c2f907 100644 --- a/seed/dovecot/dictionaries/26_dovecot.xml +++ b/seed/dovecot/dictionaries/31_dovecot.xml @@ -65,10 +65,10 @@ - + autosigne @@ -91,6 +91,8 @@ /var/www/html + +