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 room creation to startVideoCall and startScreenShare functions
Add extensive logging to VideoRoom onmessage handler and join success callback to debug publisher subscription
Fix build error - remove incomingCallId from console.log (not in scope)
Add extensive SockJS connection error logging to diagnose connection failures
为记忆添加日志Me值和类型转换
- 添加类型转换以提醒我处理字符串/布尔/数字 - 添加详细记录以追踪饼干设置逻辑 - 日志记住我值和类型以调试 cookie 设置问题
为 USERNAME 和 REMBER ME cookie 操作添加全面的日志
- 在页面上添加详细记录饼干读取 - 添加日志以验证 cookie 在登录响应后设置 - 在登录 API 中添加 Set- Cookie 页眉记录 - 在页面上记录全部 cookie 供调试
更新隐藏用户名字段以使用窗体Key来重新挂载
- 将密钥添加到隐藏用户名输入中, 以强制在登录后重新挂载 - 确保所有用户名相关字段在登录后完全新鲜
登录后强制格式重挂载以防止浏览器自动填充
- 添加窗体Key状态,在登录后更改为强制组件重挂 - 更改文本字段键以包含窗体Key - 更改动作. div 键以包含窗体Key - 与随机化的字段名称和自动完成=关闭合并,以充分防止浏览器自动填充 - 确保用户名字段在登录后完全新鲜
使用随机化的字段名称防止浏览器自动填充识别
- 生成每个页面加载用户名字段名称的随机后缀 - 防止浏览器在页面负载中识别同一字段 - 与自动完成=关闭和状态清除合并,以充分防止旧用户名自动填充
阻止浏览器在登录后自动填充以恢复旧用户名
- 在用户名字段上将自动完成从“用户名”改为“关闭” - 将表格自动完成从“上”改为“下” - 登录时清除用户名和密码状态 - 防止浏览器在用户点击后自动填充上一个用户名 - 确保登录后的新登录表单
登录时任意删除全部 cookie
- 删除 Kamo-login 登录页面上的所有 cookie( 客户端) - 删除 Kamo-login 登录 API (服务器侧) 上的所有 cookie - 清除局部积分和会话积分 - 删除所有域/路径组合的饼干 - 确保两个域在登录后完全没有饼干
Delete ALL cookies indiscriminately during logout
- Delete all cookies on kamo-internal logout page (client-side) - Delete all cookies on kamo-internal logout API (server-side) - Clear localStorage and sessionS...
Invalidate existing session before validating OTK
- Check for existing *** cookie in validate request - Clear and delete any existing session before validating OTK - Verify session data is not empty JSON (clear...
Invalidate existing session before creating new one during login
- Check for existing *** cookie in login request - Delete/invalidate existing session before creating new one - Prevents reusing old session cookies when loggin...
Disable activity tracking and session extension during logout
- Add disableClientActivityTracker() function to stop activity tracking - Stop session monitor when logout is initiated - Prevent screen movement/activity from ...
删除结束点中的密钥前先清除会话数据
- 删除密钥前将会话数据设为空 JSON - 确保会话无法使用,即使删除失败或复制滞后 - 如果删除失败, 则添加倒计时处理错误以清除数据 - 改进记录,以显示会议数据是否已清除 - 修复导入以使用静态导入来获取RedisReadClient
Clear session data before deleting key in logout endpoint
- Set session data to empty JSON before deleting the key - Ensures session is unusable even if deletion fails or there's replication lag - Add error handling wi...
Clear session data before deleting key to ensure session is unusable
- Set session data to empty JSON ({}) before deleting the key - Ensures session is unusable even if deletion fails or there's replication lag - Add error handli...
Improve logout cookie clearing - clear cookies across all domain/path combinations
- Clear cookies with base domain (e.g., .kamocrm.com) to cover all subdomains - Clear cookies for current hostname without domain attribute - Clear cookies unre...
Fix Redis import in logout route - use static import for getRedisReadClient
Clear existing *** cookies before setting new one during validate
- Clear all possible *** cookie variations before setting new cookie - Prevents reusing old session cookies from previous logins - Ensures validate always uses ...
