roundcube #0

Supports: trusty
Add to new model


RoundCube Webmail is a browser-based multilingual IMAP client with an application-like user interface. It provides full functionality expected from an e-mail client, including MIME support, address book, folder manipulation and message filters. The user interface is fully skinnable using XHTML and CSS 2.

Juju charm Roundcube author: Nick Barcet


  1. Setup your site specific parameters in roundcube.yaml
    vi roundcube.yaml

A list of all settable parameter with description is available using

    juju get roundcube

or listing config.yaml

  1. Deployment with mysql and haproxy

    juju bootstrap
    juju deploy --config roundcube.yaml roundcube
    juju deploy mysql
    juju deploy haproxy
    juju add-relation mysql roundcube
    juju add-relation roundcube haproxy
    juju expose haproxy
  2. Accessing your new roundcube site should be ready at http://[haproxy-machine-addr]/. To find out the public address of haproxy, look for it in the output of the 'juju status' command.

Note about HTTPS

to enable https access to your site, you can set "do_https" to the value of the https port you want to listen to (443 is the default for https). You will also need to provide the paths to existing SSLCertificate (ssl_crt) and key (ssl_key). This means that you will have to use juju scp to upload your certificates before making the config changes and adding other units.

You can also use the default ssl snake oil certificates provided by the ssl-cert package:

# This config activates https on port 443
do_https: 443
ssl_crt: /etc/ssl/certs/ssl-cert-snakeoil.pem 
ssl_key: /etc/ssl/private/ssl-cert-snakeoil.key

If the certificate you provide is invalid, apache will fail to load. If the paths you provide are invalid, the https site will no be activated.

juju debug-log

should be your friend, go have a look.

The certificates should be uploaded to the first unit you start, a peer relation between all units will ensure that they will be reused identically everywhere.


(int) maximum length of a query in bytes
(boolean) use persistent db-connections
(string) IMAP mail host chosen to perform the log-in
(int) IMAP server port
(int) Will setup apache with ssl vhost on the port value specified if different from 0 (default ssl port is 443)
(boolean) with this option enabled, all non-secure connections will be redirected. set the port for the ssl connection as value of this option if it differs from the default 443
(int) enables mod_deflate, mod_headers and mod_expires as recommended for production use.
(string) SMTP password (if required) if you use %p as the password Roundcube will use the current user's password for login
(int) SMTP port.
(string) SMTP mail host to send emails
(string) SMTP username (if required) if you use %u as the username Roundcube will use the current username for login
(string) Full path (in the running unit) of the certificate file that Apache will use for https. The file needs to be placed using the juju scp command.
(string) Full path (in the running unit) of the certificate key file that Apache will use for https. The file needs to be placed using the juju scp command.
(boolean) tell PHP that it should work as under secure connection even if it doesn't recognize it as secure ($_SERVER['HTTPS'] is not set) e.g. when you're running Roundcube behind a https proxy