Skip to content

Deploying SnappyMail

Introduction

SnappyMail is a fast, modern, and feature-rich webmail client forked from RainLoop. It provides a clean, responsive interface for accessing your email through any web browser, supporting IMAP and SMTP protocols to work with virtually any email provider.

As a fork of RainLoop with active development, SnappyMail has addressed security concerns and added features while maintaining the lightweight, fast experience that made its predecessor popular. It’s an excellent choice for anyone wanting self-hosted webmail without the complexity of full groupware solutions.

Key features of SnappyMail include:

  • Lightning Fast: Optimized JavaScript with minimal page loads
  • Modern Interface: Clean, responsive design that works on any device
  • Multiple Accounts: Access multiple email accounts from one interface
  • IMAP/SMTP Support: Works with any standard email server
  • Two-Factor Authentication: Enhanced security with 2FA support
  • PGP Encryption: Built-in OpenPGP support for encrypted emails
  • Contact Management: Integrated address book functionality
  • Sieve Filtering: Server-side email filtering support
  • Theme Support: Multiple themes including dark mode
  • Keyboard Shortcuts: Efficient email management for power users
  • No Database Required: Configuration stored in files
  • Plugin System: Extend functionality with plugins
  • Lightweight: Minimal server resource requirements
  • Open Source: AGPL-3.0 license with active community

This guide walks through deploying SnappyMail on Klutch.sh using Docker.

Why Deploy SnappyMail on Klutch.sh

Deploying SnappyMail on Klutch.sh provides several advantages:

Simplified Deployment: Klutch.sh handles the build and deployment process automatically.

Access Anywhere: Check your email from any browser without client installation.

HTTPS by Default: Automatic SSL certificates for secure email access.

Persistent Configuration: Your settings survive restarts and redeployments.

Custom Domains: Use your own domain for a professional webmail URL.

Scalable Resources: Handle multiple concurrent users efficiently.

Always Available: 24/7 access to your email.

Prerequisites

Before deploying SnappyMail on Klutch.sh, ensure you have:

  • A Klutch.sh account
  • A GitHub account with a repository for your configuration
  • Access to an IMAP/SMTP email server
  • Basic familiarity with Docker
  • (Optional) A custom domain for your webmail

Deploying SnappyMail on Klutch.sh

    Create a GitHub Repository

    Create a new GitHub repository for your SnappyMail deployment configuration.

    Create Your Dockerfile

    Create a Dockerfile:

    FROM djmaze/snappymail:latest
    ENV MEMORY_LIMIT=128M
    ENV UPLOAD_MAX_SIZE=25M
    ENV LOG_TO_STDOUT=true
    EXPOSE 8888
    VOLUME /var/lib/snappymail
    HEALTHCHECK --interval=30s --timeout=10s --start-period=10s --retries=3 \
    CMD curl -f http://localhost:8888/ || exit 1

    Push Your Repository to GitHub

    Commit and push your Dockerfile.

    Create a New Project on Klutch.sh

    Navigate to the Klutch.sh dashboard and create a new project.

    Create a New App

    Create a new app and connect your GitHub repository.

    Configure Environment Variables

    Add any optional environment variables:

    VariableValueDescription
    MEMORY_LIMIT128MPHP memory limit
    UPLOAD_MAX_SIZE25MMaximum attachment size
    LOG_TO_STDOUTtrueEnable logging

    Configure HTTP Settings

    Set the traffic type to HTTP and configure the internal port to 8888.

    Attach Persistent Storage

    Add a persistent volume:

    Mount PathRecommended SizePurpose
    /var/lib/snappymail1 GBConfiguration and data

    Deploy Your Application

    Click Deploy to start the build process.

    Access Admin Panel

    Once deployed, access the admin panel at: https://your-app.klutch.sh/?admin

    The default admin password is typically 12345 - change this immediately.

    Configure Email Domains

    In the admin panel, add your email domains and configure IMAP/SMTP settings.

    Access Webmail

    Navigate to your app’s root URL and log in with your email credentials.

Initial Configuration

After deploying, configure SnappyMail through the admin panel:

  1. Change Admin Password: First priority for security
  2. Add Email Domains: Configure IMAP and SMTP servers
  3. Enable 2FA: Set up two-factor authentication
  4. Configure Plugins: Enable desired functionality
  5. Customize Theme: Choose your preferred look

Adding Email Domains

To add a new email domain:

  1. Go to Admin Panel > Domains
  2. Click “Add Domain”
  3. Enter domain name (e.g., example.com)
  4. Configure IMAP server settings:
    • Server: mail.example.com
    • Port: 993 (SSL) or 143 (STARTTLS)
    • Security: SSL/TLS
  5. Configure SMTP server settings:
    • Server: mail.example.com
    • Port: 465 (SSL) or 587 (STARTTLS)
    • Security: SSL/TLS
  6. Save and test the configuration

Security Best Practices

  • Change the default admin password immediately
  • Enable two-factor authentication
  • Use SSL/TLS for all IMAP and SMTP connections
  • Regularly update to the latest SnappyMail version
  • Review and configure content security policies

Additional Resources

Conclusion

Deploying SnappyMail on Klutch.sh gives you a fast, modern webmail client accessible from anywhere. With its lightweight design and support for multiple email accounts, SnappyMail provides a practical self-hosted alternative to web-based email interfaces.

Whether you’re managing personal email or providing webmail access for an organization, SnappyMail offers the right balance of features and simplicity.