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
Create main dovecot.conf file that includes conf.d directory
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...
Fix kubeconfig setup in CI/CD to use Tailscale IPs directly
- Replace sed commands with kubectl config set-cluster for reliable connection - Use 100.64.1.1 for K1M1 and 100.64.2.1 for K2M1 directly - Fixes 'dial tcp 100....
Add complete mail server infrastructure with Postfix, Dovecot, Roundcube, and MySQL
- Deploy mail server (MySQL, Postfix, Dovecot, Roundcube) to K1M1 only - Configure HTTPS access via Traefik at https://mail.kamocrm.com - Set up multi-domain su...
Update Janus TURN server configuration to use kamocrm.com:3478
Add Janus WebRTC Gateway configuration documentation - Document current Janus configuration on k1m1 - Add configuration reference files for Janus setup
Revert "fix(traefik): disable idle timeout for WebSocket connections"
This reverts commit ****************
Disable idle timeout for WebSocket connections
- Added idleTimeout=0 to websecure entrypoint - Prevents Traefik from closing WebSocket connections due to inactivity - Fixes SockJS WebSocket timeout issues
Update TURN server credentials with secure values
- Updated turn-secret with secure random value - Updated turn-password for Janus authentication - Credentials match MediaService WebRTC configuration
Split port ranges to avoid conflicts
- Coturn relay: 52000-65535 (13,536 ports) - Avoids: Janus RTP (10000-49151) and WireGuard (51820-51821) - No overlap between services
Adjust relay port range to avoid WireGuard/VPN ports
- Changed max-port from 65535 to 51800 to avoid conflicts - Avoids WireGuard on UDP 51820 and other VPN services on 51821 - Provides 2,649 ports (49152-51800) f...
Resolve CrashLoopBackOff by fixing probes and config
- Replace netstat-based health probes with TCP socket checks (netstat not available in coturn/coturn:latest Alpine image) - Remove conflicting no-stdout-log dir...
Add ServersTransport deployment to CI/CD workflow
Deploy traefik/serverstransport.yaml as part of Traefik deployment to both K1M1 and K2M1. This enables HTTP/1.1 backend connections for MediaService WebSocket s...
Add ServersTransport for MediaService WebSocket connections
Add media-websocket-transport ServersTransport resource to disable HTTP/2 for backend connections to MediaService. This is required for proper WebSocket upgrade...
Add Connection: Upgrade header to WebSocket upgrade middleware
- Add Connection: Upgrade header along with Upgrade: websocket - Both headers are required for proper WebSocket upgrade handshake - This ensures HTTP/2 Extended...
Add media-websocket-upgrade middleware to force Upgrade header
- Add Upgrade: websocket header for WebSocket paths to fix HTTP/2 Extended CONNECT conversion - This ensures HTTP/2 WebSocket upgrade requests are properly conv...
Add media-cors middleware for media domain CORS support
- Add media-cors middleware matching theme-cors configuration - Allows CORS headers to be set for media.{domain} requests
Add 'media' subdomain to auto-cert SUBDOMAINS for MediaService
- Add 'media' to SUBDOMAINS list in auto-cert-service.yaml - Enables automatic SSL certificate generation for media.{domain} subdomains - Required for MediaServ...
CoTurn (Including the last deployment with from title) configuration scripts added
Like what you see shipping?
All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.
