Keila Cloudron Package

This is a Cloudron package for Keila, 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:

    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:

    cloudron install --location keila.yourdomain.com \
      --image andreasdueren/keila-cloudron:0.1.0
    

Local Development Build

# Clone this repository
git clone <repository-url>
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:

cloudron logs

Reset Admin Password

# 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

License

  • Keila: AGPLv3 License
  • This Package: MIT License
Description
A cloudron packaging of keila
Readme 61 KiB
Languages
Shell 58.8%
Dockerfile 41.2%