From a7d8d2038da7c5cfbe386d61ac05e480cd1ad878 Mon Sep 17 00:00:00 2001 From: Ruben Hensen Date: Mon, 26 Jan 2026 02:18:54 +0100 Subject: [PATCH] Add cm snappymail --- snappymail/configmap.yaml | 127 +++++++++++++++++++++++++++++++++++++ snappymail/deployment.yaml | 35 ++++++++++ 2 files changed, 162 insertions(+) create mode 100644 snappymail/configmap.yaml diff --git a/snappymail/configmap.yaml b/snappymail/configmap.yaml new file mode 100644 index 0000000..243bc72 --- /dev/null +++ b/snappymail/configmap.yaml @@ -0,0 +1,127 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: snappymail-config + labels: + app: snappymail +data: + application.ini: | + [webmail] + title = "SnappyMail @ hensen.io" + loading_description = "SnappyMail" + theme = "Default" + + [interface] + show_attachment_thumbnail = On + + [branding] + login_logo = "" + login_background = "" + login_desc = "" + login_css = "" + user_css = "" + user_logo = "" + user_logo_message = "" + + [contacts] + enable = On + allow_sync = On + sync_interval = 20 + type = "sqlite" + + [security] + csrf_protection = On + custom_server_signature = "SnappyMail" + x_frame_options_header = "SAMEORIGIN" + openpgp = On + + [login] + default_domain = "hensen.io" + determine_user_domain = Off + determine_user_language = On + welcome_page = Off + forgot_password_link_url = "" + registration_link_url = "" + + [plugins] + enable = On + enabled_list = "" + + [defaults] + view_editor_type = "Html" + view_layout = 1 + view_use_checkboxes = On + autologout = 30 + + [logs] + enable = On + filename = "log-{date:Y-m-d}.txt" + auth_logging = Off + auth_logging_filename = "fail2ban/auth-{date:Y-m-d}.txt" + auth_logging_format = "[{date:d/M/Y:H:i:s O}] Auth failed: ip={request:ip} user={imap:login} host={imap:host} port={imap:port}" + + [debug] + enable = Off + javascript = Off + + [cache] + enable = On + index = "v1" + fast_cache_driver = "files" + http = On + server_uids = On + + [labs] + allow_gravatar = On + allow_prefetch = On + allow_smart_html_links = On + cache_system_data = On + date_from_headers = Off + autocreate_system_folders = On + allow_message_append = Off + disable_iconv = Off + message_list_fast_resync = On + use_app_debug_js = Off + use_app_debug_css = Off + use_imap_sort = On + use_imap_force_selection = Off + use_imap_list_subscribe = On + use_imap_thread = On + use_imap_move = Off + use_imap_expunge_all_on_delete = Off + imap_forwarded_flag = "$Forwarded" + imap_read_receipt_flag = "$MDNSent" + imap_body_text_limit = 555000 + imap_message_list_limit = 0 + imap_search_filter = "" + imap_message_all_headers = Off + imap_large_thread_limit = 100 + imap_folder_list_limit = 200 + imap_show_login_alert = On + smtp_show_server_errors = Off + smtp_use_auth = On + smtp_set_sender = Off + sieve_allow_raw = Off + sieve_utf8_folder_name = On + strict_mail_parser = Off + dev_email = "" + dev_password = "" + + domains.ini: | + [hensen.io] + imap_host = "stalwart.stalwart.svc.cluster.local" + imap_port = 143 + imap_secure = "None" + imap_short_login = Off + sieve_enabled = Off + sieve_host = "" + sieve_port = 4190 + sieve_secure = "None" + smtp_host = "stalwart.stalwart.svc.cluster.local" + smtp_port = 587 + smtp_secure = "None" + smtp_short_login = Off + smtp_auth = On + smtp_set_sender = Off + smtp_use_implicit_tls = Off + white_list = "" diff --git a/snappymail/deployment.yaml b/snappymail/deployment.yaml index e6c6a5b..ac19830 100644 --- a/snappymail/deployment.yaml +++ b/snappymail/deployment.yaml @@ -16,6 +16,38 @@ spec: labels: app: snappymail spec: + initContainers: + - name: config-init + image: busybox:latest + command: + - sh + - -c + - | + # Create config directory if it doesn't exist + mkdir -p /data/_data_/_default_/configs + + # Copy application.ini if it doesn't exist + if [ ! -f /data/_data_/_default_/configs/application.ini ]; then + echo "Copying application.ini configuration..." + cp /config/application.ini /data/_data_/_default_/configs/application.ini + else + echo "application.ini already exists, skipping..." + fi + + # Copy domains.ini if it doesn't exist + if [ ! -f /data/_data_/_default_/configs/domains.ini ]; then + echo "Copying domains.ini configuration..." + cp /config/domains.ini /data/_data_/_default_/configs/domains.ini + else + echo "domains.ini already exists, skipping..." + fi + + echo "Configuration initialization complete" + volumeMounts: + - name: snappymail-data + mountPath: /data + - name: config + mountPath: /config containers: - name: snappymail image: djmaze/snappymail:latest @@ -51,3 +83,6 @@ spec: - name: snappymail-data persistentVolumeClaim: claimName: snappymail-data + - name: config + configMap: + name: snappymail-config