diff --git a/seed/apache/README.md b/seed/apache/README.md
index 9d734927..61ef55f7 100644
--- a/seed/apache/README.md
+++ b/seed/apache/README.md
@@ -5,34 +5,12 @@ 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*)
@@ -50,6 +28,10 @@ Paramètrage avancé du serveur web Apache
- [+]: 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..00a4bbbb 100644
--- a/seed/base-machine/README.md
+++ b/seed/base-machine/README.md
@@ -5,16 +5,10 @@ include_toc: true
# base-machine
-## Description
+## Synopsis
Base information for a machine.
-## Dependances
-
-- [base](../base/README.md)
-- [dns-local](../dns-local/README.md)
-- [pki-tls](../pki-tls/README.md)
-
## Variables
### Machine (*machine*)
@@ -27,6 +21,12 @@ Base information for a machine.
- [+]: variable is multiple
- **bold**: variable is mandatory
+## Dependances
+
+- [base](../base/README.md)
+- [dns-local](../dns-local/README.md)
+- [pki-tls](../pki-tls/README.md)
+
## 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..016bb9fb 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).
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..640e5665 100644
--- a/seed/dovecot/README.md
+++ b/seed/dovecot/README.md
@@ -5,12 +5,72 @@ include_toc: true
# dovecot
-## Description
+## Synopsis
Postfix and Dovecot as mail servers (Submission and IMAP).
[For more informations](https://www.dovecot.org/)
+## Variables
+
+### Général (*general*)
+
+#### network (*general.network*)
+
+| Description | Values |
+|---------------------------------------------------------|--------------|
+| *[**incoming_ports**](dictionaries/31_dovecot.xml)* [+] | 587
993 |
+
+#### ldap (*general.ldap*)
+
+##### client (*general.ldap.client*)
+
+| Description | Values |
+|----------------------------------------------------------|----------|
+| *[**ldapclient_family**](dictionaries/31_dovecot.xml)* | all |
+| *[**ldap_key_file_owner**](dictionaries/31_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/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 |
+
+##### Mail domain (*general.mail.domain*)
+
+This a family is a leadership.
+
+| Description | Example | Type | Supplier |
+|--------------------------------------------------------------------------------------------------------------|------------------------|----------------------------------------------------------------------------------------------------------------------------|---------------|
+| **Domaine de courriel géré localement** (*[mail_domains](dictionaries/31_dovecot.xml)*) [+] | example.net | [domainname](https://forge.cloud.silique.fr/risotto/rougail/src/branch/main/doc/variable/README.md#le-type-de-la-variable) | LMTP:criteria |
+| **Domaine exterieur d'accès au serveur IMAP** (*[imap_domainname](dictionaries/31_dovecot.xml)*) | imap.example.net | [domainname](https://forge.cloud.silique.fr/risotto/rougail/src/branch/main/doc/variable/README.md#le-type-de-la-variable) | |
+| **Domaine exterieur d'accès au serveur submission** (*[submission_domainname](dictionaries/31_dovecot.xml)*) | submission.example.net | [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/31_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/31_dovecot.xml)* | |
+| *[revprox_client_web_address](dictionaries/31_dovecot.xml)* | |
+
+#### nginx (*general.nginx*)
+
+| Description | Values |
+|-------------------------------------------------|---------------|
+| *[**nginx_root**](dictionaries/31_dovecot.xml)* | /var/www/html |
+
+
+- [+]: variable is multiple
+- **bold**: variable is mandatory
+
## Examples
Zone names are provided as examples. Think about adapting with the value of provider_zone in configuration file.
@@ -28,6 +88,13 @@ dovecot:
- 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
```
With all providers:
@@ -44,6 +111,13 @@ dovecot:
- 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 +139,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
+
+