Deploying Cypht
Cypht is a lightweight, fast, and secure webmail client that aggregates multiple email accounts from various providers (IMAP, POP3, JMAP) into a single, unified interface. Built with privacy and security in mind, Cypht provides a modern alternative to traditional webmail clients, allowing you to manage all your email accounts without giving a third party access to your credentials. The application features a modular architecture with support for RSS feeds, GitHub notifications, WordPress.com updates, and more, all accessible through a clean, responsive interface.
Unlike heavyweight email clients, Cypht is designed to be fast and resource-efficient while maintaining robust security features including end-to-end encryption support, two-factor authentication, and secure session management. It’s perfect for individuals and organizations looking for a self-hosted email solution that respects privacy and puts you in control of your data.
Why Deploy Cypht on Klutch.sh?
Klutch.sh provides an ideal platform for hosting Cypht with several advantages:
- Simple Docker Deployment: Push your Dockerfile and Klutch.sh handles the rest, automatically detecting and deploying your container
- Persistent Storage: Attach volumes to store email cache, user configurations, and attachments securely
- Automatic HTTPS: All deployments come with automatic SSL certificates, ensuring secure email access
- Resource Efficiency: Cypht’s lightweight design means lower hosting costs while maintaining excellent performance
- Privacy Focus: Self-hosted on your infrastructure means complete control over your email data
- Scalable Infrastructure: Easily adjust resources as your email storage needs grow
Prerequisites
Before deploying Cypht, ensure you have:
- A Klutch.sh account (sign up at klutch.sh)
- Git installed locally
- Basic familiarity with Docker and email protocols (IMAP/SMTP)
- Email account credentials from your provider(s)
- Domain access for email configuration (optional but recommended)
Understanding Cypht’s Architecture
Cypht uses a modular architecture that separates concerns and allows for flexible configuration:
Core Components
PHP Application Layer: The main application is built with PHP and handles all email operations, user authentication, and module management. Cypht uses a session-based authentication system with support for two-factor authentication.
Email Protocol Handlers: Cypht supports multiple email protocols:
- IMAP: For reading emails from your inbox
- SMTP: For sending emails
- POP3: Alternative protocol for retrieving emails
- JMAP: Modern JSON-based email protocol
Module System: Cypht’s functionality is extended through modules that can be enabled or disabled:
- Core modules (required): IMAP, SMTP, Account management
- Optional modules: Calendar, Contacts, RSS feeds, GitHub, WordPress
Storage Layer: Cypht requires persistent storage for:
- User configurations and settings
- Email cache and attachments
- Session data
- Module data
Web Server: Typically served through Apache or Nginx with PHP-FPM for optimal performance.
Data Flow
- User authenticates through the web interface
- Cypht establishes connections to configured email accounts using IMAP/SMTP
- Email data is fetched, cached locally, and displayed in the unified interface
- All credentials are stored encrypted on the server
- Attachments and messages can be cached for offline access
Installation and Setup
Step 1: Create the Dockerfile
Create a Dockerfile in your project root. We’ll use Alpine Linux for a minimal footprint:
FROM php:8.2-apache-bullseye
# Install system dependencies and PHP extensionsRUN apt-get update && apt-get install -y \ git \ unzip \ libzip-dev \ libpng-dev \ libjpeg-dev \ libfreetype6-dev \ libldap2-dev \ libicu-dev \ libcurl4-openssl-dev \ libonig-dev \ && docker-php-ext-configure gd --with-freetype --with-jpeg \ && docker-php-ext-install -j$(nproc) \ mysqli \ pdo \ pdo_mysql \ zip \ gd \ intl \ curl \ mbstring \ ldap \ && apt-get clean \ && rm -rf /var/lib/apt/lists/*
# Set working directoryWORKDIR /var/www/html
# Clone Cypht repositoryRUN git clone --depth 1 https://github.com/cypht-org/cypht.git /tmp/cypht \ && cp -r /tmp/cypht/* /var/www/html/ \ && rm -rf /tmp/cypht
# Install ComposerRUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
# Install PHP dependenciesRUN composer install --no-dev --optimize-autoloader
# Create necessary directoriesRUN mkdir -p /var/www/html/data \ /var/www/html/users \ /var/www/html/attachments \ && chown -R www-data:www-data /var/www/html \ && chmod -R 755 /var/www/html
# Copy configurationRUN cp /var/www/html/hm3.sample.ini /var/www/html/hm3.ini
# Configure ApacheRUN a2enmod rewrite headers ssl \ && sed -i 's/AllowOverride None/AllowOverride All/g' /etc/apache2/apache2.conf
# Set proper permissionsRUN chown -R www-data:www-data /var/www/html
# Expose portEXPOSE 80
# Health checkHEALTHCHECK --interval=30s --timeout=3s --start-period=40s \ CMD curl -f http://localhost/ || exit 1
# Start ApacheCMD ["apache2-foreground"]Step 2: Create Configuration File
Create a hm3.ini configuration file to customize Cypht’s behavior:
; Cypht Configuration File; This file should be mounted to /var/www/html/hm3.ini
; Database settings (optional - SQLite used by default); db_driver=mysql; db_host=mysql-host; db_name=cypht; db_user=cypht_user; db_pass=secure_password
; Authentication settingsauth_type=DBdefault_setting_no_password_save=trueenable_2fa=true
; Session settingssession_type=filesession_lifetime=43200session_key=CHANGE_THIS_TO_A_RANDOM_STRING
; Email settingsallow_external_image_sources=falsesmtp_auth=trueimap_per_page=50
; Module settings; Comma-separated list of enabled modulesmodules=core,imap,smtp,account,contacts,calendar,profiles,settings,themes
; Security settingsdisable_origin_check=falseallow_long_session=falseencrypt_ajax_requests=trueencrypt_local_storage=true
; File pathsattachment_dir=/var/www/html/attachmentsuser_config_dir=/var/www/html/usersdata_dir=/var/www/html/data
; Timezonedefault_timezone=UTC
; Interface settingsdefault_language=enenable_themes=truedefault_theme=blue
; Performance settingsenable_memcached=falseenable_redis=falseStep 3: Create Docker Compose for Local Development
Create a docker-compose.yml file for local testing:
version: '3.8'
services: cypht: build: . ports: - "8080:80" volumes: - cypht-data:/var/www/html/data - cypht-users:/var/www/html/users - cypht-attachments:/var/www/html/attachments - ./hm3.ini:/var/www/html/hm3.ini:ro environment: - PHP_MEMORY_LIMIT=256M - PHP_UPLOAD_MAX_FILESIZE=25M - PHP_POST_MAX_SIZE=25M restart: unless-stopped
volumes: cypht-data: cypht-users: cypht-attachments:Step 4: Initialize Git Repository
git initgit add Dockerfile hm3.ini docker-compose.ymlgit commit -m "Initial Cypht deployment configuration"Step 5: Test Locally
Before deploying to Klutch.sh, test your configuration locally:
# Build and start the containerdocker-compose up -d
# Check logsdocker-compose logs -f
# Access Cypht at http://localhost:8080Deploying to Klutch.sh
Step 1: Push to GitHub
Create a new repository on GitHub and push your code:
git remote add origin https://github.com/yourusername/cypht-klutch.gitgit branch -M mastergit push -u origin masterStep 2: Connect Repository to Klutch.sh
- Navigate to klutch.sh/app
- Click "New Project" and select "Import from GitHub"
- Authorize Klutch.sh to access your GitHub repositories
- Select your Cypht repository from the list
- Klutch.sh will automatically detect the Dockerfile in your repository
Step 3: Configure Traffic Settings
- In the project settings, select **HTTP** as the traffic type
- Set the internal port to **80** (matching the EXPOSE directive in the Dockerfile)
- Klutch.sh will automatically provision an HTTPS endpoint for your application
Step 4: Add Persistent Storage
Cypht requires persistent volumes for storing user data, configurations, and email cache:
- In your project settings, navigate to the "Storage" section
- Add a volume with mount path: `/var/www/html/data` and size: `5GB` (for application data)
- Add a volume with mount path: `/var/www/html/users` and size: `2GB` (for user configurations)
- Add a volume with mount path: `/var/www/html/attachments` and size: `10GB` (for email attachments)
Storage recommendations:
- Data volume: Start with 5GB, scale based on cache size
- Users volume: 2GB is typically sufficient for user configurations
- Attachments volume: 10GB+ depending on expected attachment storage
Step 5: Configure Environment Variables
Add the following environment variables in your Klutch.sh dashboard:
PHP_MEMORY_LIMIT:256MPHP_UPLOAD_MAX_FILESIZE:25MPHP_POST_MAX_SIZE:25M
Step 6: Deploy
- Review your configuration settings
- Click "Deploy" to start the deployment process
- Klutch.sh will build your Docker image and deploy the container
- Monitor the build logs for any errors
- Once deployed, your application will be available at `your-app.klutch.sh`
Getting Started with Cypht
Initial Setup
After your first deployment, you’ll need to complete the initial setup:
-
Access Your Instance: Navigate to
https://your-app.klutch.sh -
Create Admin Account: On first launch, Cypht will prompt you to create an administrator account:
- Enter a username (email address recommended)
- Create a strong password
- Confirm the password
- Submit to create your account
-
Log In: Use your newly created credentials to log in
Adding Your First Email Account
Once logged in, you can add email accounts:
- Click on "Settings" in the main menu
- Navigate to "E-mail Accounts"
- Click "Add Account"
- Select the account type (IMAP/SMTP)
- Enter your email account details: - **IMAP Server**: imap.gmail.com (for Gmail) - **IMAP Port**: 993 - **IMAP Security**: SSL/TLS - **Username**: your.email@gmail.com - **Password**: Your app password (for Gmail, generate at Google App Passwords)
- Configure SMTP settings for sending: - **SMTP Server**: smtp.gmail.com - **SMTP Port**: 587 - **SMTP Security**: STARTTLS - **Username**: your.email@gmail.com - **Password**: Same app password
- Click "Save" to test and save the configuration
Common Email Provider Settings
Gmail
IMAP Server: imap.gmail.comIMAP Port: 993IMAP Security: SSL/TLS
SMTP Server: smtp.gmail.comSMTP Port: 587SMTP Security: STARTTLS
Note: Enable 2FA and generate an app passwordOutlook/Office 365
IMAP Server: outlook.office365.comIMAP Port: 993IMAP Security: SSL/TLS
SMTP Server: smtp.office365.comSMTP Port: 587SMTP Security: STARTTLSYahoo Mail
IMAP Server: imap.mail.yahoo.comIMAP Port: 993IMAP Security: SSL/TLS
SMTP Server: smtp.mail.yahoo.comSMTP Port: 465 or 587SMTP Security: SSL/TLSProtonMail Bridge
IMAP Server: 127.0.0.1IMAP Port: 1143IMAP Security: STARTTLS
SMTP Server: 127.0.0.1SMTP Port: 1025SMTP Security: STARTTLS
Note: Requires ProtonMail Bridge running locallyConfiguring Multiple Accounts
Cypht’s strength lies in aggregating multiple email accounts:
- Add Multiple Accounts: Repeat the email account setup process for each email provider
- Unified Inbox: All accounts appear in a unified “Everything” folder
- Account Filtering: Use the left sidebar to filter by specific accounts
- Combined Search: Search across all configured accounts simultaneously
Customizing Your Interface
Personalize your Cypht experience:
- Themes: Navigate to Settings → Themes to change the color scheme
- Language: Select your preferred language in Settings → General
- Display Options: Configure message preview, reading pane layout, and list density
- Notification Settings: Enable desktop notifications for new messages
Enabling Additional Modules
Cypht supports various optional modules:
- Navigate to Settings → Modules
- Browse available modules: - **Calendar**: Manage events and appointments - **Contacts**: Store and organize contacts - **RSS Feeds**: Add RSS/Atom feeds to your unified interface - **GitHub**: Monitor GitHub notifications - **WordPress**: Track WordPress.com updates
- Toggle modules on/off as needed
- Configure module-specific settings in their respective sections
Production Best Practices
Security Hardening
- Strong Session Keys: Update the
session_keyin yourhm3.iniwith a strong random string:
session_key=YOUR_VERY_LONG_RANDOM_STRING_HERE_AT_LEAST_32_CHARSGenerate a secure key:
openssl rand -base64 32- Two-Factor Authentication: Enable 2FA for all user accounts:
enable_2fa=true- HTTPS Only: Ensure your deployment uses HTTPS (automatic with Klutch.sh):
disable_origin_check=falseencrypt_ajax_requests=trueencrypt_local_storage=true- Secure Headers: Add security headers to your Apache configuration by creating a custom
security.conf:
<IfModule mod_headers.c> Header always set X-Content-Type-Options "nosniff" Header always set X-Frame-Options "SAMEORIGIN" Header always set X-XSS-Protection "1; mode=block" Header always set Referrer-Policy "strict-origin-when-cross-origin" Header always set Content-Security-Policy "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; img-src 'self' data: https:; font-src 'self' data:; connect-src 'self'" Header always set Permissions-Policy "geolocation=(), microphone=(), camera=()"</IfModule>Update your Dockerfile to include this configuration:
COPY security.conf /etc/apache2/conf-available/security.confRUN a2enconf securityDatabase Configuration
For production deployments with multiple users, consider using MySQL/MariaDB instead of SQLite:
-
Deploy a Database: Create a separate MySQL deployment on Klutch.sh or use an external database service
-
Update Configuration: Modify your
hm3.ini:
db_driver=mysqldb_host=mysql.example.comdb_port=3306db_name=cyphtdb_user=cypht_userdb_pass=secure_database_password- Create Database Schema: Cypht will automatically create necessary tables on first launch
Backup Strategy
Implement regular backups of your persistent volumes:
- User Data: Schedule backups of
/var/www/html/users(contains encrypted credentials and settings) - Email Cache: Backup
/var/www/html/data(can be regenerated but saves time) - Attachments: Backup
/var/www/html/attachments(important for stored files)
Create a backup script:
#!/bin/bashDATE=$(date +%Y%m%d_%H%M%S)BACKUP_DIR="/backups/cypht_$DATE"
mkdir -p $BACKUP_DIRcp -r /var/www/html/users $BACKUP_DIR/cp -r /var/www/html/data $BACKUP_DIR/cp -r /var/www/html/attachments $BACKUP_DIR/cp /var/www/html/hm3.ini $BACKUP_DIR/
tar -czf $BACKUP_DIR.tar.gz $BACKUP_DIRrm -rf $BACKUP_DIR
# Keep only last 30 days of backupsfind /backups -name "cypht_*.tar.gz" -mtime +30 -deletePerformance Optimization
- Enable Caching: For better performance with multiple users, enable Redis or Memcached:
Add Redis to your deployment:
# In your Dockerfile or as a separate serviceRUN apt-get update && apt-get install -y redis-serverUpdate hm3.ini:
enable_redis=trueredis_host=localhostredis_port=6379- PHP Optimization: Adjust PHP settings for better performance:
Create php-custom.ini:
memory_limit = 256Mupload_max_filesize = 25Mpost_max_size = 25Mmax_execution_time = 300max_input_time = 300opcache.enable=1opcache.memory_consumption=128opcache.interned_strings_buffer=8opcache.max_accelerated_files=4000opcache.revalidate_freq=60Update Dockerfile:
COPY php-custom.ini /usr/local/etc/php/conf.d/custom.ini- Apache Tuning: Optimize Apache for email workloads:
Create apache-custom.conf:
<IfModule mpm_prefork_module> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxRequestWorkers 150 MaxConnectionsPerChild 0</IfModule>
<IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript application/javascript application/json</IfModule>Monitoring and Logging
- Enable Logging: Configure comprehensive logging in
hm3.ini:
enable_logging=truelog_level=INFOlog_file=/var/www/html/data/cypht.log-
Health Checks: The Dockerfile includes a health check that monitors Apache status. Monitor this in your Klutch.sh dashboard.
-
Email Monitoring: Track email connection issues:
- Monitor IMAP/SMTP connection failures
- Set up alerts for authentication errors
- Track attachment storage usage
Resource Allocation
Recommended resources based on usage:
Light Use (1-5 users, 2-3 accounts each):
- Memory: 512MB - 1GB
- CPU: 0.5 - 1 vCPU
- Storage: 20GB
Medium Use (5-20 users, multiple accounts):
- Memory: 1GB - 2GB
- CPU: 1 - 2 vCPU
- Storage: 50GB
Heavy Use (20+ users, extensive attachments):
- Memory: 2GB - 4GB
- CPU: 2 - 4 vCPU
- Storage: 100GB+
Troubleshooting
Cannot Connect to Email Server
Symptoms: Error message “Cannot connect to IMAP/SMTP server” when adding an account
Possible Causes:
- Incorrect server settings or credentials
- Email provider blocking connections
- Firewall issues
Solutions:
-
Verify Server Settings: Double-check the IMAP/SMTP server addresses and ports
Terminal window # Test IMAP connectionopenssl s_client -connect imap.gmail.com:993 -crlf# Test SMTP connectionopenssl s_client -connect smtp.gmail.com:587 -starttls smtp -
Check Email Provider Security Settings:
- For Gmail: Enable “Less secure app access” or use app passwords with 2FA
- For Outlook: Ensure IMAP is enabled in settings
- For Yahoo: Generate an app password
-
Verify Credentials: Ensure username (usually full email) and password are correct
-
Check Logs: Review Cypht logs for detailed error messages:
Terminal window tail -f /var/www/html/data/cypht.log
Emails Not Syncing
Symptoms: New emails don’t appear or sync is very slow
Solutions:
-
Check IMAP Cache Settings: In Settings → E-mail, adjust cache refresh interval:
imap_per_page=50imap_max_range=5000 -
Clear Cache: Delete cache files to force refresh:
Terminal window rm -rf /var/www/html/data/imap_cache/* -
Verify Account Status: Ensure the email account is still active and not locked
-
Check Connection Limits: Some providers limit concurrent IMAP connections
Attachment Upload Fails
Symptoms: Unable to attach files to emails or uploads fail
Solutions:
-
Check PHP Limits: Verify PHP upload settings:
upload_max_filesize = 25Mpost_max_size = 25Mmemory_limit = 256M -
Verify Volume Permissions: Ensure the attachments directory is writable:
Terminal window chown -R www-data:www-data /var/www/html/attachmentschmod -R 755 /var/www/html/attachments -
Check Storage Space: Verify your volume hasn’t reached capacity in the Klutch.sh dashboard
Session Timeout Issues
Symptoms: Frequently logged out or session expires quickly
Solutions:
-
Increase Session Lifetime: Update
hm3.ini:session_lifetime=43200 # 12 hours in secondsallow_long_session=true -
Check Session Storage: Ensure session directory is writable:
Terminal window chown -R www-data:www-data /var/www/html/data/sessions -
Clear Old Sessions: Remove expired session files:
Terminal window find /var/www/html/data/sessions -type f -mtime +1 -delete
Database Connection Errors
Symptoms: “Could not connect to database” error messages
Solutions:
-
Verify Database Credentials: Check
hm3.inisettings:db_driver=mysqldb_host=your-mysql-hostdb_name=cyphtdb_user=cypht_userdb_pass=your_password -
Test Database Connection: Connect manually to verify:
Terminal window mysql -h your-mysql-host -u cypht_user -p cypht -
Check Database Permissions: Ensure the user has proper privileges:
GRANT ALL PRIVILEGES ON cypht.* TO 'cypht_user'@'%';FLUSH PRIVILEGES;
High Memory Usage
Symptoms: Application becomes slow or crashes due to memory limits
Solutions:
-
Increase PHP Memory: Update environment variable in Klutch.sh:
PHP_MEMORY_LIMIT=512M -
Optimize Cache Settings: Reduce cache size in
hm3.ini:imap_max_range=1000imap_per_page=25 -
Enable External Caching: Use Redis to offload memory:
enable_redis=true -
Scale Resources: Increase allocated memory in your Klutch.sh project settings
Advanced Configuration
Custom Domain Setup
To use your own domain with Cypht:
-
Add Custom Domain: In your Klutch.sh project settings, add your custom domain
-
Configure DNS: Add a CNAME record pointing to your Klutch.sh deployment:
mail.yourdomain.com CNAME your-app.klutch.sh -
SSL Certificate: Klutch.sh automatically provisions SSL certificates for custom domains
LDAP Authentication
Integrate with your organization’s LDAP directory:
-
Enable LDAP Module: Install PHP LDAP extension (already included in our Dockerfile)
-
Configure LDAP: Update
hm3.ini:auth_type=LDAPldap_host=ldap.yourdomain.comldap_port=389ldap_base_dn=dc=yourdomain,dc=comldap_user_dn=ou=users,dc=yourdomain,dc=comldap_bind_dn=cn=admin,dc=yourdomain,dc=comldap_bind_password=your_ldap_passwordldap_user_filter=(uid=%s) -
Test LDAP Connection: Verify users can authenticate against your LDAP server
S3 Storage for Attachments
For large-scale deployments, store attachments in S3-compatible storage:
-
Install S3 Module: Add AWS SDK to your Dockerfile:
RUN composer require aws/aws-sdk-php -
Configure S3: Create custom Cypht module or use external storage service
-
Update Configuration: Set attachment storage to S3:
attachment_storage=s3s3_bucket=cypht-attachmentss3_region=us-east-1s3_access_key=YOUR_ACCESS_KEYs3_secret_key=YOUR_SECRET_KEY
Webhook Integration
Set up webhooks for real-time notifications:
-
Enable Webhook Module: Add to enabled modules in
hm3.ini:modules=core,imap,smtp,account,webhooks -
Configure Webhook Endpoints: Create webhook configuration file:
config/webhooks.php <?phpreturn ['new_message' => 'https://your-webhook-service.com/new-email','login_event' => 'https://your-webhook-service.com/login',]; -
Test Webhooks: Send test events to verify integration
Multi-Domain Support
Support multiple email domains in a single instance:
-
Configure Virtual Hosts: Not applicable for Cypht (single instance handles all domains)
-
Domain-Specific Settings: Users can add accounts from any domain through the interface
-
Branding Per Domain: Customize themes and logos based on user’s primary domain
Calendar and Contact Sync
Enable calendar and contact synchronization with external services:
-
Enable Modules:
modules=core,imap,smtp,account,calendar,contacts,caldav,carddav -
Configure CalDAV: Add CalDAV server in Settings → Calendar:
- Server URL: https://caldav.yourdomain.com
- Username: your-username
- Password: your-password
-
Configure CardDAV: Add CardDAV server in Settings → Contacts:
- Server URL: https://carddav.yourdomain.com
- Username: your-username
- Password: your-password
-
Sync Schedule: Configure automatic sync intervals in module settings
RSS Feed Integration
Add RSS feeds to your unified inbox:
- Enable RSS module in Settings → Modules
- Navigate to Settings → RSS Feeds
- Click "Add Feed"
- Enter feed URL (e.g., https://news.ycombinator.com/rss)
- Configure update frequency
- RSS items appear alongside emails in your unified inbox
GitHub Notifications
Monitor GitHub activity within Cypht:
- Enable GitHub module in Settings → Modules
- Navigate to Settings → GitHub
- Generate a GitHub Personal Access Token at github.com/settings/tokens
- Enter your GitHub username and token
- Select repositories to monitor
- GitHub notifications appear in your unified inbox
API Access
Cypht doesn’t have a built-in REST API, but you can extend it:
- Create API Module: Develop a custom module for API endpoints
- Authentication: Use OAuth2 or API keys for authentication
- Endpoints: Expose common operations (send email, fetch messages, etc.)
Example API endpoint structure:
<?phpclass Hm_Handler_api_send_email extends Hm_Handler_Module { public function process() { // Validate API key $api_key = $this->request->header['X-API-Key']; if (!$this->validate_api_key($api_key)) { return json_encode(['error' => 'Unauthorized']); }
// Send email logic $to = $this->request->post['to']; $subject = $this->request->post['subject']; $body = $this->request->post['body'];
// Use Cypht's SMTP module to send return json_encode(['success' => true]); }}Additional Resources
- Official Cypht Website
- Cypht GitHub Repository
- Cypht Documentation
- Cypht Wiki
- Klutch.sh Documentation
- Persistent Storage Guide
- Custom Domain Configuration
Conclusion
Cypht provides a powerful, privacy-focused solution for managing multiple email accounts through a single, unified interface. By deploying on Klutch.sh, you benefit from automatic HTTPS, persistent storage, and simple Docker-based deployment without sacrificing control over your email data.
The lightweight architecture and modular design make Cypht suitable for both personal use and small team deployments. With support for IMAP, SMTP, POP3, and JMAP protocols, you can aggregate accounts from virtually any email provider while maintaining end-to-end security.
Whether you’re looking to consolidate personal email accounts, set up a team email solution, or provide self-hosted webmail for your organization, Cypht on Klutch.sh offers the flexibility, security, and performance you need. Start with the basic configuration outlined in this guide, then expand functionality through modules and custom configurations as your requirements grow.
Your email data remains under your control, connections are encrypted, and the open-source nature of Cypht means you can audit, modify, and extend the platform to meet your exact needs. Deploy Cypht today and take control of your email experience.