7.8 KiB
AnonAddy Cloudron Package
This is a complete Cloudron package for AnonAddy, an open-source anonymous email forwarding service.
Features
- Anonymous email forwarding with unlimited aliases
- Custom domain support
- GPG/OpenPGP email encryption
- Reply anonymously without revealing your real email
- MySQL database for data storage
- Redis for caching and queues
- Postfix for SMTP email handling
- Rspamd for spam filtering
- Laravel queue worker for background jobs
- Automatic database migrations
Package Contents
CloudronManifest.json- Cloudron package manifestDockerfile- Container image definitionstart.sh- Initialization and startup scriptnginx.conf- NGINX web server configurationsupervisor.conf- Process supervisor configurationpostfix-main.cf- Postfix main configurationpostfix-master.cf- Postfix master process configuration
Prerequisites
- Cloudron CLI installed and configured
- Docker access (handled by Cloudron build service)
- Cloudron instance running version 7.0.0 or higher
- Domain with proper DNS configuration
Building the Package
Build the package using the Cloudron build service:
cloudron build \
--set-build-service builder.docker.due.ren \
--build-service-token e3265de06b1d0e7bb38400539012a8433a74c2c96a17955e \
--set-repository andreasdueren/anonaddy-cloudron \
--tag 0.1.0
The build process will:
- Create a Docker image based on cloudron/base:5.0.0
- Install PHP 8.3, NGINX, Postfix, Rspamd, and other dependencies
- Clone AnonAddy v1.3.5 from GitHub
- Install Composer dependencies
- Build frontend assets
- Configure all services
Installation
Install the package on your Cloudron instance:
cloudron install \
--location anonaddy.yourdomain.com \
--image andreasdueren/anonaddy-cloudron:0.1.0
Replace anonaddy.yourdomain.com with your desired subdomain.
Post-Installation Setup
1. Initial Login
After installation, you'll see a post-install message with default credentials:
- Email:
admin@example.com - Password:
password
IMPORTANT: Change this password immediately after first login!
2. DNS Configuration
Configure the following DNS records for your domain:
MX Record
@ IN MX 10 anonaddy.yourdomain.com.
SPF Record
@ IN TXT "v=spf1 mx ~all"
DKIM Keys
- Login to AnonAddy
- Navigate to Settings → DKIM
- Generate DKIM keys
- Add the provided DNS TXT record
Example:
default._domainkey IN TXT "v=DKIM1; k=rsa; p=YOUR_PUBLIC_KEY_HERE"
DMARC Record (Optional but recommended)
_dmarc IN TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@yourdomain.com"
3. Configure Domain Settings
- Login to AnonAddy
- Go to Settings → Domains
- Add your custom domain(s)
- Verify domain ownership
4. Configure Email Recipients
- Add recipient email addresses (your real email addresses)
- Verify recipient addresses via email confirmation
- Set default recipient for new aliases
Usage
Creating Aliases
AnonAddy supports multiple alias formats:
- Standard Aliases:
anything@yourdomain.com - UUID Aliases:
94960540-f914-42e0-9c50-6fecbe7f5061@yourdomain.com - Custom Aliases:
newsletter@yourdomain.com
Replying Anonymously
Reply to forwarded emails directly. AnonAddy will send the reply through the alias, maintaining your anonymity.
Encryption
Enable GPG encryption in Settings to encrypt all incoming emails with your public key.
Architecture
Services
The package runs multiple services via supervisor:
- NGINX - Web server (port 8000)
- PHP-FPM - PHP processor
- Laravel Queue Worker - Background job processing
- Laravel Scheduler - Cron job handler
- Postfix - SMTP server (port 25)
- Rspamd - Spam filtering (port 11334)
Data Persistence
All persistent data is stored in /app/data:
/app/data/storage- Laravel storage (logs, cache, sessions)/app/data/dkim- DKIM keys/app/data/postfix- Postfix spool/app/data/rspamd- Rspamd data/app/data/app_key- Laravel application key/app/data/anonaddy_secret- AnonAddy secret for anonymous replies
Database
The package uses:
- MySQL - Main database (via Cloudron addon)
- Redis - Cache and queue backend (via Cloudron addon)
Email Integration
- Inbound: Postfix receives emails on port 25
- Outbound: Cloudron SMTP addon for sending emails
- Spam Filtering: Rspamd filters incoming emails
- Virtual Aliases: Postfix queries Rspamd for alias lookups
Troubleshooting
View Logs
cloudron logs --app anonaddy.yourdomain.com -f
Shell Access
cloudron exec --app anonaddy.yourdomain.com
Common Issues
Emails Not Receiving
- Check MX records:
dig MX yourdomain.com - Verify port 25 is open on your Cloudron server
- Check Postfix logs:
cloudron logs --app anonaddy.yourdomain.com | grep postfix - Test SMTP:
telnet anonaddy.yourdomain.com 25
Emails Marked as Spam
- Ensure SPF record is configured
- Add DKIM keys in Settings
- Configure DMARC record
- Check your server's IP reputation
Queue Not Processing
- Check Laravel queue worker:
cloudron logs --app anonaddy.yourdomain.com | grep queue - Verify Redis connection
- Restart the app:
cloudron restart --app anonaddy.yourdomain.com
Application Errors
- Check storage permissions in
/app/data/storage - Clear cache:
cloudron exec --app anonaddy.yourdomain.com 'php artisan cache:clear' - Run migrations:
cloudron exec --app anonaddy.yourdomain.com 'php artisan migrate'
Database Migrations
Migrations run automatically on startup. To manually run migrations:
cloudron exec --app anonaddy.yourdomain.com
cd /app/code
php artisan migrate
Clear Cache
cloudron exec --app anonaddy.yourdomain.com
cd /app/code
php artisan cache:clear
php artisan config:clear
php artisan view:clear
Updating
To update to a new version:
- Build the new version with updated tag
- Uninstall the old version:
cloudron uninstall --app anonaddy.yourdomain.com - Install the new version:
cloudron install --location anonaddy.yourdomain.com --image andreasdueren/anonaddy-cloudron:NEW_VERSION
Note: Always backup your data before updating!
Development
Local Testing
- Clone the repository
- Make changes to configuration files
- Build locally:
cloudron build --tag test - Install for testing:
cloudron install --location test.anonaddy.local --image andreasdueren/anonaddy-cloudron:test
File Locations
- Application code:
/app/code - Persistent data:
/app/data - NGINX config:
/etc/nginx/sites-available/default - PHP-FPM config:
/etc/php/8.3/fpm/pool.d/www.conf - Postfix config:
/etc/postfix/main.cf - Supervisor config:
/etc/supervisor/conf.d/anonaddy.conf
Security Considerations
- Change Default Password: Immediately after installation
- HTTPS Only: Cloudron automatically provides SSL/TLS
- SPF/DKIM/DMARC: Configure all email authentication records
- Firewall: Ensure only necessary ports (80, 443, 25) are open
- Updates: Keep AnonAddy updated to latest version
- Backups: Regular backups via Cloudron
Resources
- AnonAddy Website
- AnonAddy GitHub
- AnonAddy Documentation
- Cloudron Documentation
- Cloudron Packaging Guide
License
AnonAddy is open-source software licensed under the MIT license.
Support
For issues with:
- AnonAddy application: https://github.com/anonaddy/anonaddy/issues
- Cloudron package: https://git.due.ren/andreas/anonaddy.git
- Cloudron platform: https://forum.cloudron.io
Credits
- AnonAddy by Will Browning
- Cloudron package by Andreas Dueren