blob: a30d6fd1cab4db75af2cd5442454b9e9a88916b3 (
plain) (
tree)
|
|
#!/bin/sh
: ${solr_version:='9.7.0'}
solr_uid=161
solr_user=solr
solr_data_dir=/var/db/solr
solr_conf_dir=/usr/local/etc/solr
solr_install_dir=/usr/local/solr
solr_heap_size=2g
solr_softcommit_ms=60000
solr_url="https://dlcdn.apache.org/solr/solr/${solr_version}/solr-${solr_version}-slim.tgz"
solr_port=8983
# Install dependencies.
pkg install -y \
curl \
openjdk21 \
bash
# Add local solr user.
add_user \
-u "$solr_uid" \
-c 'Apache Solr' \
-d "$solr_data_dir" \
-s /usr/sbin/nologin \
"$solr_user"
# Create ZFS dataset for solr DB.
create_dataset -o "mountpoint=${solr_data_dir}" "${state_dataset}/solr"
zfs set \
com.sun:auto-snapshot:daily=true \
com.sun:auto-snapshot:weekly=true \
"${state_dataset}/solr"
# Set ownership on solr DB dir.
install_directory -m 0770 -o "$solr_user" -g "$solr_user" "$solr_data_dir"
# Create solr install/config directories.
install_directory -m 0755 \
"$solr_install_dir" \
"$solr_conf_dir"
# Download and extract the solr tarball.
curl -fL "$solr_url" | tar xf - -C "$solr_install_dir" --strip-components 1
# Copy solr rc script.
install_file -m 0555 /usr/local/etc/rc.d/solr
# Copy solr config files.
install_file -m 0644 \
"${solr_conf_dir}/solrconfig.xml" \
"${solr_conf_dir}/log4j2.xml"
# Copy the default solr config from the distribution.
install -v -m 0644 -o "$solr_user" -g "$solr_user" \
"${solr_install_dir}/server/solr/solr.xml" \
"${solr_data_dir}/solr.xml"
# Enable and start solr.
sysrc -v \
solr_enable=YES \
solr_heap_size="$solr_heap_size"
# Start solr.
service solr restart
# Create solr collection for dovecot.
if ! [ -d "${solr_data_dir}/dovecot" ]; then
log "waiting a few seconds for solr to finish starting up"
sleep 3
JAVA_TOOL_OPTIONS='-Xmx64m' su -m "$solr_user" -c "${solr_install_dir}/bin/solr create --name dovecot --solr-url http://127.0.0.1:${solr_port}"
fi
# Copy solr configs for dovecot.
install_file -m 0644 -o "$solr_user" -g "$solr_user" \
"${solr_data_dir}/dovecot/conf/schema.xml" \
"${solr_data_dir}/dovecot/conf/solrconfig.xml"
rm -f "${solr_data_dir}/dovecot/conf/managed-schema.xml"
# Restart solr.
service solr restart
|