Fix MySQL auth: change kamo user to mysql_native_password
Alpine's MariaDB client doesn't support caching_sha2_password plugin This prevents Dovecot from connecting to MySQL for authentication
Force Roundcube pod restart to pick up ConfigMap change
Added annotation to trigger pod recreation since ConfigMap with subPath doesn't auto-update in running pods
Fix Roundcube redirect loop - disable force_https
Traefik handles TLS termination, so internal traffic is HTTP Setting force_https=true caused Roundcube to redirect to HTTPS internally creating an infinite redi...
Reference kamocrm.com wildcard cert in mail IngressRoute
The certificate secret is in kamo namespace, copied to mail namespace tls.secretName explicitly references wildcard-kamocrm-com
Fix mail IngressRoute to use auto-cert service
Changed tls from certResolver: letsencrypt to tls: {} This allows the auto-cert service to automatically generate certs when mail.kamocrm.com is accessed
Fix Roundcube readiness probe - use TCP socket instead of HTTP
Roundcube redirects / to login page (302), failing HTTP readiness probe TCP socket check on port 80 works correctly
Switch to Alpine 3.18 with Dovecot 2.3.20 for stable SQL auth
Dovecot 2.4 has incompatible configuration changes without clear docs Alpine 3.18 has Dovecot 2.3.20 which uses traditional well-documented syntax - mail_locati...
Remove address setting from inet_listener - not valid in Dovecot 2.4.2
The listen = * at top level handles binding to all interfaces
Fix Dovecot 2.4.2 config: mail_location renamed to mail_path
In Dovecot 2.4.2: - mail_location is now mail_path (top-level setting, no blocks) - Added dovecot_storage_version = 2.4.2 (required) - Updated SQL user_query to...
Fix Dovecot 2.4 config syntax - use mail{} and ssl{} blocks
- Put mail_location, uid, gid settings inside mail { } block (Dovecot 2.4 requirement) - Put ssl settings inside ssl { } block - Add initContainer to create mai...
Remove heredoc whitespace issue - use echo commands and ConfigMap
The heredocs had leading whitespace from YAML indentation causing parse errors - Use echo commands to create dovecot.conf without leading whitespace - Mount aut...
Go back to args with external SQL config file - mysql blocks don't work
The mysql { } block syntax causes 'Unknown section name: mysql' error Use passdb sql { driver = sql; args = **************** } External file has correct format:...
Use Dovecot 2.4.2 format: mysql connection block + named sections with query
Found in actual examples: - sql_driver = mysql - mysql hostname { user, password, dbname } connection block - passdb sql { query = ... } with named sections - u...
Remove named sections - try passdb/userdb without names, use args
Error said 'Unknown section name: mysql' - the mysql block was wrong Try passdb/userdb WITHOUT names (just passdb { and userdb {) Use args = **************** Ex...
Try sql_host, sql_user, sql_password, sql_db instead of connect or args
Based on error suggesting passdb_sql_args - maybe SQL settings use sql_ prefix - Named sections: passdb sql { and userdb sql { - driver = sql with sql_driver = ...
Use args parameter with named sections - external SQL config file
Based on examples found: Dovecot 2.4 allows args with named sections - Named sections: passdb sql { and userdb sql { - driver = sql - args = **************** (r...
Use driver=sql with sql_driver=mysql and inline connect
Based on official Dovecot 2.4 examples found online: - Named sections: passdb sql { and userdb sql { - driver = sql (not driver = mysql) - sql_driver = mysql (s...
Use driver=mysql (not driver=sql) with inline connect in Dovecot 2.4
Based on official Dovecot 2.4 examples: - Named sections: passdb sql { and userdb sql { - Use driver = mysql (not driver = sql) - Inline connect, default_pass_s...
Try using args parameter with named sections in Dovecot 2.4
- Use 'passdb sql {' and 'userdb sql {' (named sections required) - Use 'driver = sql' with 'args = **************** - Maybe args works with named sections even...
Add names to passdb/userdb sections (required in Dovecot 2.4)
- Use 'passdb sql {' and 'userdb sql {' with named sections - Keep SQL settings inline (no args parameter) - Both requirements: named sections AND inline SQL se...
Dovecot 2.4 requires SQL settings inline, not args parameter
- Dovecot 2.4 removed 'args' parameter for passdb/userdb - SQL connection settings must be specified directly in passdb/userdb blocks - Put driver=mysql, connec...
Fix Dovecot 2.4 passdb/userdb - must have names (passdb sql, userdb sql)
- Dovecot 2.4 requires named passdb/userdb sections - Changed from 'passdb {' to 'passdb sql {' - Changed from 'userdb {' to 'userdb sql {'
Fix passdb syntax - use separate auth-sql.conf.ext file
- Create auth-sql.conf.ext with proper passdb/userdb blocks - Include it in 10-auth.conf instead of inline blocks - This fixes 'passdb { } is missing section na...
Fix Dovecot config - use proper config files (10-mail.conf, 10-auth.conf, 10-master.conf)
- Override mail_location in 10-mail.conf (where it belongs) - Configure SQL auth in 10-auth.conf - Configure services in 10-master.conf - This matches Dovecot's...
Add dovecot_config_version as first line in main dovecot.conf
Use Dovecot default configs with custom overrides
- Copy default Dovecot configs first - Add custom config in conf.d/99-custom.conf - This ensures all required settings are present - Fixes 'mail_location: Unkno...
Remove plaintext auth - Dovecot defaults to secure
- Removed auth_allow_plaintext setting - Dovecot will require encryption for authentication by default - All requirements verified: ✅ K1M1 only deployment (...
Fix Dovecot 2.4.2 config - use auth_allow_plaintext instead of disable_plaintext_auth
Fix dovecot_config_version to 2.4.2 (matches installed version)
Use Dovecot 2.4 with proper configuration
- Use Alpine latest (has Dovecot 2.4) - Add dovecot_config_version = 2.4 as FIRST setting (required) - Fix Dovecot SQL user_query to include mail location - Ver...
Remove dovecot_config_version - Dovecot 2.3.17.1 doesn't recognize it
Add dovecot_config_version = 2.3 as first setting (what Dovecot requires)
Use Alpine 3.15 - has Dovecot 2.3.16 without config version requirement
Use Alpine 3.17 with older Dovecot version (no config version requirement)
WORKING SOLUTION: Alpine-based Dovecot with MySQL backend
- Use Alpine Linux base image with Dovecot installed from packages - Dovecot config created inline - no Docker image restrictions - Full control over configurat...
Add initial accounts to postfix-accounts.cf for docker-mailserver
- docker-mailserver requires at least one account in postfix-accounts.cf - Added sage@, support@, sysadmin@kamocrm.com with hashed passwords - Password hash gen...
Replace separate Postfix/Dovecot with docker-mailserver integrated solution
- Deploy docker-mailserver **************** - Integrated Postfix + Dovecot in single proven container - Configure MySQL backend for virtual mailboxes/domains/al...
Try older Dovecot Alpine image to avoid strict config requirements
- Switch from dovecot/dovecot:latest to dovecot/dovecot:2.3.21-alpine - Older version may not have strict dovecot_config_version requirement - Keeps all databas...
Dovecot config iteration - simplified further
- Removed problematic includes and dict blocks - Simplified to minimal configuration - Note: The official dovecot/dovecot image has strict config requirements
Simplify Dovecot config - remove problematic version include
- Remove dovecot-version include that was causing errors - Use simpler configuration with just protocols and protocol includes - Restarted Roundcube pod to trig...
Fix Dovecot version requirement and create roundcubemail database
- Dovecot: Add dovecot-version.conf.ext include (required as first setting) - MySQL Job: CREATE DATABASE roundcubemail before granting permissions - Fixes 'The ...
Simplify Dovecot config and fix MySQL permissions job
- Dovecot: Use single complete dovecot.conf instead of conf.d fragments - Dovecot: Simplified configuration with minimal working setup - MySQL Job: Use root cre...
Fix Dovecot configuration and add permissions job to CI/CD
- Dovecot: Move passdb/userdb config directly into 10-auth.conf - Dovecot: Remove problematic auth-sql.conf.ext include - CI/CD: Add mysql-permissions-job.yaml ...
Fix Dovecot auth syntax and Roundcube database permissions
- Dovecot: Fix auth-sql.conf.ext syntax - passdb/userdb need section names - MySQL: Grant ALL PRIVILEGES on roundcubemail database to kamo user - Add mysql-perm...
Fix Dovecot and Postfix configurations to resolve CrashLoopBackOff
- Dovecot: Use conf.d structure with official Dovecot image defaults - Dovecot: Split config into individual files (10-auth, 10-mail, 10-master, 10-ssl) - Postf...
Je, unaona nini kuhusu usafiri?
Kila moja ya hizi updates ardhi katika nafasi yako ya kazi moja kwa moja. Kuanza bure na kuangalia kukua wiki baada ya wiki.