# Keila Cloudron Package This is a Cloudron package for [Keila](https://www.keila.io), an open-source newsletter tool and alternative to Mailchimp and Sendinblue. ## Features - **Newsletter Campaigns**: Create and send email campaigns - **Sign-up Forms**: Generate customizable subscription forms - **Multiple Email Providers**: Support for AWS SES, Sendgrid, Mailgun, Postmark, and SMTP - **Self-hosted**: Complete control over your data and newsletters - **PostgreSQL Integration**: Reliable database storage via Cloudron addon - **SMTP Configuration**: Automatic email sending via Cloudron's mail service ## Installation ### Prerequisites - Cloudron instance with CLI installed - Access to build service or local Docker environment ### Build and Install 1. **Build the package**: ```bash cloudron build --set-build-service builder.docker.due.ren \ --build-service-token e3265de06b1d0e7bb38400539012a8433a74c2c96a17955e \ --set-repository andreasdueren/keila-cloudron \ --tag 0.1.0 ``` 2. **Install on Cloudron**: ```bash cloudron install --location keila.yourdomain.com \ --image andreasdueren/keila-cloudron:0.1.0 ``` ### Local Development Build ```bash # Clone this repository git clone cd keila-cloudron # Build locally cloudron build # Install for testing cloudron install --location keila.local.dev ``` ## Configuration ### Default Settings - **Admin Account**: `admin@yourdomain.com` (password in `/app/data/root_credentials`) - **Database**: PostgreSQL via Cloudron addon - **Email**: Configured via Cloudron SMTP service - **Registration**: Disabled by default for security - **Port**: 4000 (proxied via nginx) ### Environment Variables The following Cloudron environment variables are automatically configured: - `CLOUDRON_POSTGRESQL_URL` - Database connection - `CLOUDRON_MAIL_SMTP_*` - Email configuration - `CLOUDRON_APP_DOMAIN` - Application domain - `CLOUDRON_MAIL_FROM` - From email address ## Data Persistence - **Application Data**: `/app/data/keila` - Keila installation - **Uploads**: `/app/data/uploads` - User-uploaded content - **Credentials**: `/app/data/root_credentials` - Admin login info - **Secrets**: `/app/data/secret_key_base` - Application secret ## Troubleshooting ### Common Issues 1. **Database Connection**: Ensure PostgreSQL addon is properly configured 2. **Email Sending**: Verify Cloudron SMTP settings in mail addon 3. **File Permissions**: All files should be owned by `cloudron:cloudron` ### Logs View application logs: ```bash cloudron logs ``` ### Reset Admin Password ```bash # Access the container cloudron exec # Check current credentials cat /app/data/root_credentials # Reset if needed (restart required) rm /app/data/root_credentials exit cloudron restart ``` ## Technical Details ### Architecture - **Base Image**: `cloudron/base:4.2.0` - **Runtime**: Elixir 1.15 with Phoenix framework - **Database**: PostgreSQL (via Cloudron addon) - **Web Server**: Nginx reverse proxy - **Process Manager**: Direct Elixir application startup ### Security Features - User registration disabled by default - Security headers configured in nginx - File upload restrictions - Database connection over SSL - Secret key auto-generation ### File Structure ``` /app/code/ # Application code (read-only) /app/data/keila/ # Keila installation /app/data/uploads/ # User uploads /app/data/ # Persistent data ``` ## Support - **Keila Documentation**: https://www.keila.io/docs - **Keila GitHub**: https://github.com/pentacent/keila - **Cloudron Docs**: https://docs.cloudron.io ## License - **Keila**: AGPLv3 License - **This Package**: MIT License