Adapted MIAB Solr install script from https://github.com/jkaberg/ for Ubuntu Bionic
This commit is contained in:
parent
c7659d9053
commit
a3d7e0dfae
3 changed files with 66 additions and 0 deletions
1
conf/cronjob/dovecot
Normal file
1
conf/cronjob/dovecot
Normal file
|
@ -0,0 +1 @@
|
|||
/usr/bin/doveadm fts rescan -A
|
2
conf/cronjob/solr
Normal file
2
conf/cronjob/solr
Normal file
|
@ -0,0 +1,2 @@
|
|||
*/1 * * * * root /usr/bin/curl http://127.0.0.1:8080/solr/update?commit=true &>/dev/null
|
||||
30 3 * * * root /usr/bin/curl http://127.0.0.1:8080/solr/update?optimize=true &>/dev/null
|
63
setup/solr.sh
Normal file
63
setup/solr.sh
Normal file
|
@ -0,0 +1,63 @@
|
|||
#!/bin/bash
|
||||
#
|
||||
# Inspired by the solr.sh from jkaberg (https://github.com/jkaberg/mailinabox-sogo)
|
||||
# with some modifications
|
||||
#
|
||||
# IMAP search with lucene via solr
|
||||
# --------------------------------
|
||||
#
|
||||
# By default dovecot uses its own Squat search index that has awful performance
|
||||
# on large mailboxes. Dovecot 2.1+ has support for using Lucene internally but
|
||||
# this didn't make it into the Ubuntu packages, so we use Solr instead to run
|
||||
# Lucene for us.
|
||||
#
|
||||
# Solr runs as a tomcat process. The dovecot solr plugin talks to solr via its
|
||||
# HTTP interface, causing mail to be indexed when searches occur, and getting
|
||||
# results back.
|
||||
|
||||
source setup/functions.sh # load our functions
|
||||
source /etc/mailinabox.conf # load global vars
|
||||
|
||||
# Install packages and basic configuation
|
||||
# ---------------------------------------
|
||||
|
||||
echo "Installing Solr..."
|
||||
|
||||
# Install packages
|
||||
apt_install solr-tomcat dovecot-solr
|
||||
|
||||
# Solr requires a schema to tell it how to index data, this is provided by dovecot
|
||||
cp /usr/share/dovecot/solr-schema.xml /etc/solr/conf/schema.xml
|
||||
|
||||
# Update the dovecot plugin configuration
|
||||
#
|
||||
# Break-imap-search makes search work the way users expect, rather than the way
|
||||
# the IMAP specification expects
|
||||
tools/editconf.py /etc/dovecot/conf.d/10-mail.conf \
|
||||
mail_plugins="fts fts_solr"
|
||||
|
||||
cat > /etc/dovecot/conf.d/90-plugin-fts.conf << EOF;
|
||||
plugin {
|
||||
fts = solr
|
||||
fts_autoindex = yes
|
||||
fts_solr = break-imap-search url=http://127.0.0.1:8080/solr/
|
||||
}
|
||||
EOF
|
||||
|
||||
# Bump memory allocation for Solr.
|
||||
# Not needed? I'll let it sit here for a while.
|
||||
#echo 'export JAVA_OPTS=-Xms512M -Xmx1024M' > /usr/share/tomcat7/bin/setenv.sh
|
||||
|
||||
# Install cronjobs to keep FTS up to date
|
||||
hide_output install -m 755 conf/cronjob/dovecot /etc/cron.daily/
|
||||
hide_output install -m 644 conf/cronjob/solr /etc/cron.d/
|
||||
|
||||
# PERMISSIONS
|
||||
|
||||
# Ensure configuration files are owned by dovecot and not world readable.
|
||||
chown -R mail:dovecot /etc/dovecot
|
||||
chmod -R o-rwx /etc/dovecot
|
||||
|
||||
# Restart services to reload solr schema & dovecot plugins
|
||||
restart_service tomcat8
|
||||
restart_service dovecot
|
Loading…
Reference in a new issue