Files
k8scd/ansible/mailserver/roles/stalwart/templates/config.toml.j2
T
2026-03-14 22:24:53 +01:00

95 lines
2.8 KiB
Django/Jinja

[server]
hostname = "{{ stalwart_server_hostname }}"
max-connections = {{ stalwart_server_max_connections }}
{% if stalwart_acme_enabled %}
tls.certificate = "acme"
{% endif %}
{% for listener in stalwart_server_listeners %}
[server.listener.{{ listener.name }}]
bind = "{{ listener.bind }}"
protocol = "{{ listener.protocol }}"
{% for option_name, option_value in (listener.options | default({})).items() %}
{{ option_name }} =
{%- if option_value is string %} "{{ option_value }}"
{%- elif option_value is boolean %} {{ option_value | lower }}
{%- else %} {{ option_value }}
{%- endif %}
{% endfor %}
{% endfor %}
{% if stalwart_acme_enabled %}
[certificate.acme]
type = "acme"
provider = "letsencrypt"
domains = [{% for d in stalwart_acme_domains %}"{{ d }}"{% if not loop.last %}, {% endif %}{% endfor %}]
[acme.letsencrypt]
directory = "{{ stalwart_acme_directory }}"
contact = ["{{ stalwart_acme_contact }}"]
challenge = "tls-alpn-01"
default = true
{% endif %}
[storage]
data = "{{ stalwart_storage_data }}"
fts = "{{ stalwart_storage_fts }}"
blob = "{{ stalwart_storage_blob }}"
lookup = "{{ stalwart_storage_lookup }}"
directory = "{{ stalwart_directory_type }}"
{% for store in stalwart_stores %}
[store.{{ store.name }}]
type = "{{ store.type }}"
{% for option_name, option_value in (store.options | default({})).items() %}
{{ option_name }} =
{%- if option_value is string %} "{{ option_value }}"
{%- elif option_value is boolean %} {{ option_value | lower }}
{%- else %} {{ option_value }}
{%- endif %}
{% endfor %}
{% endfor %}
[directory.{{ stalwart_directory_type }}]
type = "{{ stalwart_directory_type }}"
{% for option_name, option_value in stalwart_directory_options.items() %}
{{ option_name }} =
{%- if option_value is string %} "{{ option_value }}"
{%- elif option_value is boolean %} {{ option_value | lower }}
{%- else %} {{ option_value }}
{%- endif %}
{% endfor %}
{% for tracer in stalwart_tracers %}
[tracer.{{ tracer.type }}]
type = "{{ tracer.type }}"
{% for option_name, option_value in (tracer.options | default({})).items() %}
{{ option_name }} =
{%- if option_value is string %} "{{ option_value }}"
{%- elif option_value is boolean %} {{ option_value | lower }}
{%- else %} {{ option_value }}
{%- endif %}
{% endfor %}
{% endfor %}
[authentication.fallback-admin]
user = "{{ stalwart_fallback_admin_login }}"
secret = "{{ stalwart_fallback_admin_password | ansible.builtin.password_hash(salt=stalwart_fallback_admin_password_salt, rounds=5000) }}"
{% for config in stalwart_additional_configs | default([]) %}
[{{ config.name }}]
{% for option_name, option_value in (config.options | default({})).items() %}
{{ option_name }} =
{%- if option_value is string %} "{{ option_value }}"
{%- elif option_value is boolean %} {{ option_value | lower }}
{%- else %} {{ option_value }}
{%- endif %}
{% endfor %}
{% endfor %}