# Webmail: Using roundcube ########################## source scripts/functions.sh # load our functions source /etc/mailinabox.conf # load global vars # Ubuntu's roundcube-core has dependencies on Apache & MySQL, which we don't want, so we can't # install roundcube directly via apt-get install. We'll use apt-get to manually install the # dependencies of roundcube that we know we need, and then we'll manually install debs for # roundcube using dpkg so that dependencies aren't triggered. # These dependencies are from 'apt-cache showpkg roundcube-core'. apt_install \ dbconfig-common \ php5 php5-sqlite php5-mcrypt php5-intl php5-json php5-common php-auth php-net-smtp php-net-socket php-net-sieve php-mail-mime php-crypt-gpg php5-gd php5-pspell \ tinymce libjs-jquery libjs-jquery-mousewheel libmagic1 mkdir -p /tmp/roundcube_debs pushd /tmp/roundcube_debs apt-get download roundcube roundcube-core roundcube-sqlite3 roundcube-plugins DEBIAN_FRONTEND=noninteractive dpkg -Gi *.deb popd rm -rf /tmp/roundcube_debs apt-mark hold roundcube-core # hopefully apt-get won't attempt to upgrade it, which might trigger dependenciees? # Buuuut.... the .deb is missing things? src_fn=roundcube_0.9.5.orig.tar.gz src_dir=roundcubemail-0.9.5-dep mkdir -p externals wget -nc -P externals http://ftp.debian.org/debian/pool/main/r/roundcube/$src_fn tar -C /tmp -xzf $(pwd)/externals/$src_fn if [ ! -d /var/lib/roundcube/SQL ]; then mv /tmp/$src_dir/SQL/ /var/lib/roundcube/; fi rm -rf /tmp/$src_dir # Settings tools/editconf.py /etc/roundcube/main.inc.php \ "\$rcmail_config['default_host']='ssl://localhost';" \ "\$rcmail_config['default_port']=993;" \ "\$rcmail_config['imap_timeout']=30;" \ "\$rcmail_config['smtp_server']='tls://localhost';"\ "\$rcmail_config['smtp_user']='%u';"\ "\$rcmail_config['smtp_pass']='%p';"\ "\$rcmail_config['smtp_timeout']=30;" \ "\$rcmail_config['use_https']=true;" \ "\$rcmail_config['session_lifetime']=60*24*3;" \ "\$rcmail_config['password_charset']='utf8';" \ "\$rcmail_config['message_sort_col']='arrival';" \ "\$rcmail_config['junk_mbox']='Spam';" \ "\$rcmail_config['default_folders']=array('INBOX', 'Drafts', 'Sent', 'Spam', 'Trash');" \ "\$rcmail_config['draft_autosave']=30;" \ "\$rcmail_config['plugins']=array('password');" # Password changing plugin settings # The config comes empty by default, so we need the settings # we're not planning to change in config.inc.dist... cp /usr/share/roundcube/plugins/password/config.inc.php.dist \ /etc/roundcube/plugins/password/config.inc.php tools/editconf.py /etc/roundcube/plugins/password/config.inc.php \ "\$rcmail_config['password_minimum_length']=6;" \ "\$rcmail_config['password_db_dsn']='sqlite:///$STORAGE_ROOT/mail/users.sqlite';" \ "\$rcmail_config['password_query']='UPDATE users SET password=%D WHERE email=%u';" \ "\$rcmail_config['password_dovecotpw']='/usr/bin/doveadm pw';" \ "\$rcmail_config['password_dovecotpw_method']='SHA512-CRYPT';" \ "\$rcmail_config['password_dovecotpw_with_method']=true;" # Configure storage of user preferences. mkdir -p $STORAGE_ROOT/mail/roundcube cat - > /etc/roundcube/debian-db.php < EOF chown -R www-data.www-data $STORAGE_ROOT/mail/roundcube # so PHP can use doveadm usermod -a -G dovecot www-data # set permissions so that PHP can use users.sqlite # could use dovecot instead of www-data, but not sure it matters chown root.www-data $STORAGE_ROOT/mail chmod 775 $STORAGE_ROOT/mail chown root.www-data $STORAGE_ROOT/mail/users.sqlite chmod 664 $STORAGE_ROOT/mail/users.sqlite # Enable PHP modules. php5enmod mcrypt service php-fastcgi restart