Files
k8scd/ansible/mailserver/roles/stalwart/templates/config.toml.j2
T
2026-03-15 10:58:50 +01:00

94 lines
3.0 KiB
Django/Jinja

[server]
hostname = "{{ stalwart_server_hostname }}"
max-connections = {{ stalwart_server_max_connections }}
{% 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 %}
[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 %}
{% if stalwart_directory_type == "sql" %}
columns.secret = "password"
columns.description = "description"
columns.email = "email"
columns.quota = "quota"
columns.class = "type"
[store.postgresql.query]
name = "SELECT name, type, password, description, email, quota FROM accounts WHERE name = $1 AND active = true"
members = "SELECT member_of FROM group_members WHERE name = $1"
recipients = "SELECT name FROM emails WHERE address = $1"
emails = "SELECT address FROM emails WHERE name = $1 ORDER BY type DESC, address ASC"
secrets = "SELECT password FROM accounts WHERE name = $1 AND active = true"
{% endif %}
{% 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 %}