1
0
mirror of https://github.com/mail-in-a-box/mailinabox.git synced 2024-11-26 02:57:04 +00:00
mailinabox/scripts/webmail.sh
Joshua Tauberer 19f5f144ae installing roundcube from debian would cause update from ubuntu later, now install from Ubuntu debs
We were installing .deb's from Debian. The next apt-get upgrade would cause roundcube to be upgraded.
Maybe that also triggered the installation of apache. Now install roundcube from Ubuntu. So long as
Ubuntu doesn't post an update to roundcube, at least it won't trigger an upgrade on the next
apt-get upgrade. This should also mean we don't need to purge the installation of apache2.

Also try using apt-mark hold to prevent roundcube from being updated, in case that will trigger
dependencies.
2014-05-01 20:34:41 +00:00

91 lines
3.6 KiB
Bash
Executable File

# 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;
<?php
\$dbtype = 'sqlite';
\$basepath = '$STORAGE_ROOT/mail/roundcube';
\$dbname = 'roundcube.sqlite';
?>
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