mirror of
https://github.com/mail-in-a-box/mailinabox.git
synced 2024-11-26 02:57:04 +00:00
19f5f144ae
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.
91 lines
3.6 KiB
Bash
Executable File
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
|