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=128MENV UPLOAD_MAX_SIZE=25MENV 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 1Push 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:
| Variable | Value | Description |
|---|---|---|
MEMORY_LIMIT | 128M | PHP memory limit |
UPLOAD_MAX_SIZE | 25M | Maximum attachment size |
LOG_TO_STDOUT | true | Enable 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 Path | Recommended Size | Purpose |
|---|---|---|
/var/lib/snappymail | 1 GB | Configuration 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:
- Change Admin Password: First priority for security
- Add Email Domains: Configure IMAP and SMTP servers
- Enable 2FA: Set up two-factor authentication
- Configure Plugins: Enable desired functionality
- Customize Theme: Choose your preferred look
Adding Email Domains
To add a new email domain:
- Go to Admin Panel > Domains
- Click “Add Domain”
- Enter domain name (e.g.,
example.com) - Configure IMAP server settings:
- Server: mail.example.com
- Port: 993 (SSL) or 143 (STARTTLS)
- Security: SSL/TLS
- Configure SMTP server settings:
- Server: mail.example.com
- Port: 465 (SSL) or 587 (STARTTLS)
- Security: SSL/TLS
- 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
- SnappyMail GitHub Repository
- SnappyMail Official Website
- SnappyMail Wiki
- Klutch.sh Persistent Volumes
- Klutch.sh Deployments
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.