Add CLOUDRON_PACKAGE_INFO.md and finalize package

This commit is contained in:
Your Name
2025-10-22 08:34:34 -06:00
parent 46e16e96c9
commit 90c4820483

250
CLOUDRON_PACKAGE_INFO.md Normal file
View File

@@ -0,0 +1,250 @@
# AnonAddy Cloudron Package Information
## Package Details
- **Application**: AnonAddy v1.3.5
- **Package ID**: org.anonaddy.cloudron
- **Docker Image**: andreasdueren/anonaddy-cloudron:0.1.0
- **Build Service**: builder.docker.due.ren
- **Git Repository**: https://git.due.ren/andreas/anonaddy.git
## Build Status
**Successfully Built**: 2025-10-22
### Build Command
```bash
cloudron build \
--set-build-service builder.docker.due.ren \
--build-service-token e3265de06b1d0e7bb38400539012a8433a74c2c96a17955e \
--set-repository andreasdueren/anonaddy-cloudron \
--tag 0.1.0
```
### Install Command
```bash
cloudron install \
--location anonaddy.yourdomain.com \
--image andreasdueren/anonaddy-cloudron:0.1.0
```
## Package Architecture
### Core Components
1. **Web Application**: Laravel/PHP 8.3 application
2. **Database**: MySQL (via Cloudron addon)
3. **Cache/Queue**: Redis (via Cloudron addon)
4. **Web Server**: NGINX
5. **PHP Processor**: PHP-FPM 8.3
6. **Mail Server**: Postfix
7. **Spam Filter**: Rspamd
8. **Process Manager**: Supervisor
### File Structure
```
/app/code/ - Application code (read-only)
/app/data/ - Persistent data (backed up)
├── storage/ - Laravel storage (logs, cache, sessions)
├── dkim/ - DKIM keys
├── postfix/ - Postfix data
├── rspamd/ - Rspamd data
├── app_key - Laravel application key
└── anonaddy_secret - AnonAddy secret for anonymous replies
```
### Ports
- **8000**: HTTP (web interface)
- **25**: SMTP (email receiving)
### Cloudron Addons
- `localstorage`: Persistent file storage
- `mysql`: Database
- `redis`: Cache and queue backend
- `sendmail`: Outbound email
## Configuration Files
### CloudronManifest.json
Main package manifest defining app metadata, addons, ports, and resource requirements.
### Dockerfile
Multi-stage Docker build:
- Base: cloudron/base:5.0.0
- Installs PHP 8.3, NGINX, Postfix, Rspamd, Composer, Node.js
- Clones AnonAddy v1.3.5
- Installs PHP dependencies via Composer
- Builds frontend assets via Vite
- Configures all services
### start.sh
Initialization script:
- Initializes /app/data on first run
- Generates Laravel APP_KEY and ANONADDY_SECRET
- Configures .env file with Cloudron environment variables
- Runs database migrations
- Optimizes Laravel caches
- Creates default admin user
- Configures Postfix
- Starts Supervisor
### nginx.conf
NGINX configuration:
- Listens on port 8000
- Serves Laravel public directory
- PHP-FPM integration
- Static file caching
- Security headers
### supervisor.conf
Process supervision:
- nginx: Web server
- php-fpm: PHP processor
- laravel-queue: Background job processor
- laravel-scheduler: Cron job runner
- postfix: SMTP server
- rspamd: Spam filter
### Postfix Configuration
- postfix-main.cf: Main Postfix configuration
- postfix-master.cf: Postfix process configuration
## Default Credentials
**IMPORTANT**: Change immediately after first login!
- Email: admin@example.com
- Password: password
## DNS Requirements
### Required DNS Records
1. **MX Record**
```
@ IN MX 10 anonaddy.yourdomain.com.
```
2. **SPF Record**
```
@ IN TXT "v=spf1 mx ~all"
```
3. **DKIM Keys**
- Generated in Settings → DKIM after installation
```
default._domainkey IN TXT "v=DKIM1; k=rsa; p=YOUR_PUBLIC_KEY_HERE"
```
4. **DMARC Record** (Optional but recommended)
```
_dmarc IN TXT "v=DMARC1; p=quarantine; rua=mailto:dmarc@yourdomain.com"
```
## Post-Installation Setup
1. Login with default credentials
2. Change admin password immediately
3. Configure domain in Settings → Domains
4. Add DNS records (MX, SPF, DKIM, DMARC)
5. Add recipient email addresses
6. Verify recipient addresses
7. Test alias creation and forwarding
## Troubleshooting
### View Logs
```bash
cloudron logs --app anonaddy.yourdomain.com -f
```
### Shell Access
```bash
cloudron exec --app anonaddy.yourdomain.com
```
### Clear Cache
```bash
cloudron exec --app anonaddy.yourdomain.com
cd /app/code
php artisan cache:clear
php artisan config:clear
php artisan view:clear
```
### Run Migrations
```bash
cloudron exec --app anonaddy.yourdomain.com
cd /app/code
php artisan migrate
```
## Known Issues and Solutions
### Issue: Emails Not Receiving
- Check MX records: `dig MX yourdomain.com`
- Verify port 25 is open
- Check Postfix logs: `cloudron logs --app anonaddy.yourdomain.com | grep postfix`
### Issue: Queue Not Processing
- Check queue worker: `cloudron logs --app anonaddy.yourdomain.com | grep queue`
- Verify Redis connection
- Restart app: `cloudron restart --app anonaddy.yourdomain.com`
## Development Notes
### Rebuild Package
```bash
# Make changes to package files
git add .
git commit -m "Description of changes"
# Rebuild
cloudron build \
--set-build-service builder.docker.due.ren \
--build-service-token e3265de06b1d0e7bb38400539012a8433a74c2c96a17955e \
--set-repository andreasdueren/anonaddy-cloudron \
--tag NEW_VERSION
```
### Update Deployment
Always uninstall and install fresh during development (never update):
```bash
cloudron uninstall --app anonaddy.yourdomain.com
cloudron install --location anonaddy.yourdomain.com --image andreasdueren/anonaddy-cloudron:NEW_VERSION
```
## Resources
- [AnonAddy Official Website](https://anonaddy.com)
- [AnonAddy GitHub Repository](https://github.com/anonaddy/anonaddy)
- [AnonAddy Documentation](https://anonaddy.com/help)
- [Cloudron Documentation](https://docs.cloudron.io)
- [Cloudron Packaging Guide](https://docs.cloudron.io/packaging/)
## Support
- AnonAddy Issues: https://github.com/anonaddy/anonaddy/issues
- Cloudron Package Issues: https://git.due.ren/andreas/anonaddy.git
- Cloudron Forum: https://forum.cloudron.io
## License
AnonAddy is open-source software licensed under the MIT license.
## Package Author
Andreas Dueren
## Version History
### v0.1.0 (2025-10-22)
- Initial Cloudron package release
- Based on AnonAddy v1.3.5
- Includes PHP 8.3, MySQL, Redis, Postfix, Rspamd
- Full email forwarding and alias management
- GPG encryption support
- Anonymous reply functionality