Deploying SOGo
Introduction
SOGo is an open-source groupware server that provides a complete collaboration suite including email, calendars, contacts, and tasks. It offers native Microsoft Outlook compatibility through ActiveSync and provides a modern, responsive web interface for accessing all features from any browser.
Built with Objective-C, SOGo integrates with standard protocols and existing infrastructure including LDAP directories, SMTP/IMAP mail servers, and SQL databases. The platform scales from small teams to large enterprises and supports both self-hosted and hybrid deployments.
Key highlights of SOGo:
- Email Management: Full-featured webmail with IMAP/SMTP integration
- Calendar Sharing: CalDAV-based calendars with sharing and delegation
- Contact Management: CardDAV address books with group support
- ActiveSync Support: Native synchronization with Outlook and mobile devices
- LDAP Integration: Authenticate against Active Directory or OpenLDAP
- Resource Booking: Room and equipment reservation system
- Free/Busy Lookups: Cross-organization availability checking
- S/MIME Support: Email encryption and digital signatures
- Multi-Domain: Host multiple domains on a single installation
- Responsive Web UI: Modern interface that works on all devices
- Delegation: Calendar and mailbox delegation for assistants
- Vacation Messages: Automatic out-of-office replies
This guide walks through deploying SOGo on Klutch.sh using Docker, configuring backend services, and setting up the groupware platform for your organization.
Why Deploy SOGo on Klutch.sh
Deploying SOGo on Klutch.sh provides several advantages for team collaboration:
Simplified Deployment: Klutch.sh automatically builds your SOGo configuration without complex server setup.
Persistent Storage: Attach persistent volumes for configuration and session data.
HTTPS by Default: Secure access to webmail and sync services with automatic SSL certificates.
GitHub Integration: Store configuration in version control for reproducible deployments.
Scalable Resources: Allocate CPU and memory based on user count and activity.
Always-On Access: 24/7 availability ensures email and calendar access from anywhere.
Prerequisites
Before deploying SOGo on Klutch.sh, ensure you have:
- A Klutch.sh account
- A GitHub account with a repository for your SOGo configuration
- Basic familiarity with Docker and containerization concepts
- IMAP/SMTP mail server (e.g., Dovecot/Postfix)
- PostgreSQL or MySQL database
- (Optional) LDAP directory for user authentication
- (Optional) A custom domain for your SOGo instance
Deploying SOGo on Klutch.sh
- Select HTTP as the traffic type
- Set the internal port to 20000
Create Your Repository
Create a new GitHub repository for your SOGo deployment. Add a Dockerfile:
FROM almalinux:9
RUN dnf install -y epel-release && \ dnf install -y sogo sogo-activesync sogo-tool && \ dnf clean all
COPY sogo.conf /etc/sogo/sogo.conf
RUN chown sogo:sogo /etc/sogo/sogo.conf
EXPOSE 20000
USER sogo
CMD ["/usr/sbin/sogod", "-WONoDetach", "YES", "-WOPort", "20000"]Create a sogo.conf configuration file:
{ SOGoProfileURL = "postgresql://sogo:password@postgres:5432/sogo/sogo_user_profile"; OCSFolderInfoURL = "postgresql://sogo:password@postgres:5432/sogo/sogo_folder_info"; OCSSessionsFolderURL = "postgresql://sogo:password@postgres:5432/sogo/sogo_sessions_folder";
SOGoMailDomain = "example.com"; SOGoIMAPServer = "imaps://mail.example.com:993"; SOGoSMTPServer = "smtp://mail.example.com:587";
SOGoTimeZone = "America/New_York"; SOGoLanguage = "English";}Push to GitHub
Commit and push your files to your GitHub repository.
Create a New Project on Klutch.sh
Navigate to the Klutch.sh dashboard and create a new project.
Create a New App
Within your project, create a new app. Connect your GitHub account and select your repository.
Configure HTTP Traffic
In the deployment settings:
Set Environment Variables
Configure environment variables for your deployment:
| Variable | Value |
|---|---|
TZ | Your timezone |
Attach Persistent Volumes
Add volumes for data persistence:
| Mount Path | Recommended Size | Purpose |
|---|---|---|
/var/lib/sogo | 10 GB | SOGo data directory |
/var/spool/sogo | 5 GB | Session and cache data |
Deploy Your Application
Click Deploy to start the build process.
Access SOGo
Once deployment completes, access your SOGo instance at the provided URL.
Configuration
Database Setup
Configure the SOGo database connection:
- Create PostgreSQL/MySQL database
- Create SOGo user and grant permissions
- Initialize database tables (SOGo creates these automatically)
- Update connection strings in sogo.conf
Mail Server Integration
Connect to your IMAP/SMTP servers:
SOGoIMAPServer = "imaps://mail.example.com:993";SOGoSMTPServer = "smtp://mail.example.com:587/?tls=YES";SOGoSMTPAuthenticationType = "PLAIN";LDAP Authentication
Integrate with directory services:
SOGoUserSources = ( { type = ldap; CNFieldName = cn; IDFieldName = uid; UIDFieldName = uid; hostname = "ldap://ldap.example.com:389"; baseDN = "ou=users,dc=example,dc=com"; bindDN = "cn=sogo,dc=example,dc=com"; bindPassword = "password"; });ActiveSync Configuration
Enable mobile device synchronization:
SOGoEASDebugEnabled = NO;SOGoMaximumPingInterval = 354;SOGoMaximumSyncPeriod = 7;User Features
Email Features
SOGo webmail provides:
- IMAP folder management
- Message filtering and search
- HTML composition
- Attachment handling
- S/MIME encryption
- Vacation auto-replies
Calendar Features
Full calendar functionality:
- Personal and shared calendars
- Event creation and management
- Recurring events
- Reminders and notifications
- Free/busy scheduling
- CalDAV synchronization
Contact Management
Address book features:
- Personal and shared contacts
- Contact groups
- CardDAV synchronization
- LDAP directory integration
- vCard import/export
Client Configuration
Mozilla Thunderbird
Configure Thunderbird with SOGo:
- Add IMAP account for email
- Install Lightning calendar add-on
- Add CalDAV calendar URL
- Add CardDAV address book
Microsoft Outlook
Connect Outlook using ActiveSync:
- Add Exchange account
- Enter SOGo server address
- Provide user credentials
- Select sync options
Mobile Devices
Configure iOS and Android:
- Add Exchange/ActiveSync account
- Enter server address
- Authenticate with credentials
- Enable mail, calendar, contacts
macOS Calendar/Contacts
Native macOS integration:
- Add CalDAV account for calendars
- Add CardDAV account for contacts
- Use SOGo server URLs
Administration
User Management
Manage users through LDAP or database:
- User accounts stored in directory
- Permissions managed in SOGo
- Delegation configured per user
Resource Booking
Set up rooms and equipment:
- Create resource accounts
- Configure booking policies
- Assign administrators
- Enable in calendar views
Quota Management
Configure storage limits:
- Set mailbox quotas in mail server
- Monitor usage through SOGo
Security Configuration
SSL/TLS
Configure secure communications:
- Klutch.sh provides HTTPS automatically
- Configure IMAP/SMTP TLS in sogo.conf
- Enable LDAP TLS if applicable
Authentication Security
Strengthen authentication:
- Use strong password policies
- Enable two-factor if supported
- Configure session timeouts
S/MIME
Enable email encryption:
- Upload user certificates
- Configure certificate lookup
- Enable S/MIME in preferences
Performance Optimization
Caching
Configure memcached for performance:
SOGoMemcachedHost = "memcached:11211";Worker Processes
Adjust for load:
WOWorkersCount = 4;WOListenQueueSize = 128;Database Optimization
Improve database performance:
- Index key columns
- Regular vacuum/analyze
- Connection pooling
Troubleshooting
Login Failures
- Verify LDAP/database configuration
- Check authentication logs
- Confirm password encoding
Email Issues
- Test IMAP/SMTP connectivity
- Verify server certificates
- Check firewall rules
Sync Problems
- Verify ActiveSync configuration
- Check device compatibility
- Review sync logs
Calendar Issues
- Confirm CalDAV URLs
- Check permissions
- Verify time zone settings
Additional Resources
- SOGo Official Website
- SOGo Documentation
- SOGo GitHub Repository
- Klutch.sh Persistent Volumes
- Klutch.sh Deployments
Conclusion
Deploying SOGo on Klutch.sh provides a powerful, open-source groupware solution for your organization. With native Outlook and mobile device support through ActiveSync, comprehensive calendar and contact management, and flexible integration options, SOGo delivers enterprise-grade collaboration features. Combined with Klutch.sh’s automatic HTTPS and reliable hosting, you get a secure, always-available platform for team communication and scheduling.