Skip to content

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

    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:

    • Select HTTP as the traffic type
    • Set the internal port to 20000

    Set Environment Variables

    Configure environment variables for your deployment:

    VariableValue
    TZYour timezone

    Attach Persistent Volumes

    Add volumes for data persistence:

    Mount PathRecommended SizePurpose
    /var/lib/sogo10 GBSOGo data directory
    /var/spool/sogo5 GBSession 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:

  1. Create PostgreSQL/MySQL database
  2. Create SOGo user and grant permissions
  3. Initialize database tables (SOGo creates these automatically)
  4. 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:

  1. Add IMAP account for email
  2. Install Lightning calendar add-on
  3. Add CalDAV calendar URL
  4. Add CardDAV address book

Microsoft Outlook

Connect Outlook using ActiveSync:

  1. Add Exchange account
  2. Enter SOGo server address
  3. Provide user credentials
  4. Select sync options

Mobile Devices

Configure iOS and Android:

  1. Add Exchange/ActiveSync account
  2. Enter server address
  3. Authenticate with credentials
  4. Enable mail, calendar, contacts

macOS Calendar/Contacts

Native macOS integration:

  1. Add CalDAV account for calendars
  2. Add CardDAV account for contacts
  3. 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:

  1. Create resource accounts
  2. Configure booking policies
  3. Assign administrators
  4. 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:

  1. Upload user certificates
  2. Configure certificate lookup
  3. 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

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.