diff --git a/seed/README.md b/seed/README.md index 913bc7c3..5813d0dd 100644 --- a/seed/README.md +++ b/seed/README.md @@ -1,5 +1,36 @@ # Application services +- [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 +- [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/README.md): MariaDB, a relational database +- [nextcloud](nextcloud/README.md): Nextcloud, Online collaboration platform +- nginx: + - [nginx-reverse-proxy](nginx-reverse-proxy/README.md): Nginx as reverse proxy + - [nginx-static](nginx-static/README.md): Nginx as static web site +- 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 +- [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 +- [piwigo](piwigo/README.md): Piwigo, a photo management software +- [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 +- [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 +- [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 +- [znc](znc/README.md): ZNC, a bouncer IRC +# Application dependencies + - [apache](apache/README.md): Apache as web server - base: - [base](base/README.md): Base of all application services @@ -14,49 +45,24 @@ - 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 -- [nextcloud](nextcloud/README.md): Nextcloud, Online collaboration platform +- [mariadb-client](mariadb-client/README.md): Application service needs interact with a MariaDB server - 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 -- 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 -- [prometheus](prometheus/README.md): Prometheus, an event monitoring +- [postfix-lmtp-relay](postfix-lmtp-relay/README.md): Postfix, the mail server, as LMTP relay +- [postgresql-client](postgresql-client/README.md): Application service needs interact with a Postgresql server - [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: @@ -64,13 +70,7 @@ - [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 -- [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 -- [znc](znc/README.md): ZNC, a bouncer IRC # Providers and suppliers diff --git a/seed/apache/README.md b/seed/apache/README.md index 9d734927..049d0bf2 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 +## Variables -Zone names are provided as examples. Think about adapting with the value of provider_zone in configuration file. +### Général -``` -apache: - applicationservice: apache - zones_name: - - reverseproxy -``` +#### Apache -``` -apache: - applicationservice: apache - zones_name: - - reverseproxy -``` + +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) -## 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 | - - -- [+]: variable is multiple -- **bold**: variable is mandatory - ## 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..e343baa7 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 + + +| 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..cea20881 100644 --- a/seed/dns-external/README.md +++ b/seed/dns-external/README.md @@ -5,21 +5,20 @@ include_toc: true # dns-external -## Description +## Synopsis DNS client with resolution on all zones (especially outside). ## Variables -### Général (*general*) +### Général -#### network (*general.network*) +#### 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..c7932114 100644 --- a/seed/dovecot/README.md +++ b/seed/dovecot/README.md @@ -5,18 +5,82 @@ 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 + +#### Mail configuration + +##### 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 + +#### Mail configuration + + +| 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 + +#### Annuaire OpenLDAP + +##### 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) | *calculated* | 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) | *calculated* | | +| **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) | *calculated* | | +| **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) | *calculated* | | + +- [+]: 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 +92,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 +120,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 92% rename from seed/dovecot/dictionaries/26_dovecot.xml rename to seed/dovecot/dictionaries/31_dovecot.xml index 28971b21..a56c53b5 100644 --- a/seed/dovecot/dictionaries/26_dovecot.xml +++ b/seed/dovecot/dictionaries/31_dovecot.xml @@ -65,10 +65,10 @@ - + autosigne @@ -82,15 +82,17 @@ - - + - + + +