Skip to content

Instantly share code, notes, and snippets.

@DonRichards
Last active August 23, 2016 15:18
Show Gist options
  • Save DonRichards/e9fb70b397aab03567e2d6d355e802b8 to your computer and use it in GitHub Desktop.
Save DonRichards/e9fb70b397aab03567e2d6d355e802b8 to your computer and use it in GitHub Desktop.
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/drupal7
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/drupal7/>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
ProxyPass /adore-djatoka http://localhost:8080/adore-djatoka
ProxyPassReverse /adore-djatoka http://localhost:8080/adore-djatoka
</VirtualHost>
#!/bin/bash
# Download this gist folder and run the follwing command
# cd /vagrant && cp islandora-install.properties ~/islandora-install.properties && sudo chmod +x deploy.sh && sudo bash -l deploy.sh
echo -e "\x1B[35m cp islandora-install.properties ~/islandora-install.properties\e[0m"
echo -e "\x1B[36m sudo chmod +x deploy.sh\e[0m"
echo -e "\x1B[36m sudo bash -l deploy.sh\e[0m"
echo -e "\x1B[35mSource environment (Please note: this must be redone if you close your shell mid-install):\e[0m"
chmod +x ~/islandora-install.properties
. ~/islandora-install.properties
echo -e "\x1B[35mEnsure latest core os updates:\e[0m"
echo -e "\x1B[36mapt-get -y update && apt-get -y upgrade\e[0m"
apt-get -y update -qq && apt-get -y upgrade -qq && echo "All apps up to date now!" && notify-send "All upgrades up to date now!"
echo -e "\x1B[35mAdd repo to easily obtain oracle java installer:\e[0m"
apt-get -y install python-software-properties && add-apt-repository -y ppa:webupd8team/java && apt-get -y update
echo -e "\x1B[35mAccept license agreement and enter root password when asked.\e[0m"
apt-get -y install oracle-java8-installer libjpeg-dev libpng12-dev libtiff4-dev php5 php5-cli php5-curl php5-dev php5-gd php5-ldap php5-mysql php5-xsl php-apc php-soap php-xml-htmlsax3 php-xml-parser php-xml-rpc php-xml-rpc2 php-xml-rss php-xml-serializer php5-imagick php5-mcrypt php-xml* mysql-server vim curl apache2 rsync wget imagemagick ant libimage-exiftool-perl unzip lame autoconf build-essential checkinstall git libass-dev libfaac-dev libgpac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev librtmp-dev libtheora-dev libtool libvorbis-dev pkg-config texi2html zlib1g-dev ffmpeg2theora poppler-utils python-pip libreoffice libreoffice-writer libreoffice-calc libreoffice-impress libreoffice-draw bibutils ufraw links monit tesseract-ocr tesseract-ocr-eng tesseract-ocr-fra tesseract-ocr-spa tesseract-ocr-ita tesseract-ocr-por tesseract-ocr-hin tesseract-ocr-deu tesseract-ocr-jpn tesseract-ocr-rus
echo -e "\x1B[35mghostscript\e[0m"
wget http://downloads.ghostscript.com/public/old-gs-releases/ghostscript-9.05.tar.gz
tar xvzf ghostscript-9.05.tar.gz && cd ghostscript-9.05
./configure
make && make install
`gs --version`
echo -e "\x1B[35mffmpeg\e[0m"
mkdir ~/ffmpeg-source
cd ~/ffmpeg-source
echo -e "\x1B[35myasm\e[0m"
wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz
tar xzvf yasm-1.2.0.tar.gz && rm -rf yasm-1.2.0.tar.gz && cd yasm-1.2.0
./configure
make
checkinstall --pkgname=yasm --pkgversion="1.2.0" --backup=no --deldoc=yes --fstrans=no --default
echo -e "\x1B[35mx264\e[0m"
cd ~/ffmpeg-source
git clone --depth 1 git://git.videolan.org/x264.git
cd x264
./configure --enable-static --enable-shared
make
checkinstall --pkgname=x264 --pkgversion="3:$(./version.sh | awk -F'[" ]' '/POINT/{print $4"+git"$5}')" --backup=no --deldoc=yes --fstrans=no --default
ldconfig
cd ~/ffmpeg-source
echo -e "\x1B[35maac\e[0m"
git clone --depth 1 git://github.com/mstorsjo/fdk-aac.git
cd fdk-aac
autoreconf -fiv
./configure --disable-shared
make
checkinstall --pkgname=fdk-aac --pkgversion="$(date +%Y%m%d%H%M)-git" --backup=no --deldoc=yes --fstrans=no --default
echo -e "\x1B[35mlibvpx\e[0m"
cd ~/ffmpeg-source
git clone https://chromium.googlesource.com/webm/libvpx.git
cd libvpx
git checkout 8366a6e4ba95e6d5af040815d2afbb4bfe628d3f
./configure --disable-examples --disable-unit-tests
make
checkinstall --pkgname=libvpx --pkgversion="1:$(date +%Y%m%d%H%M)-git" --backup=no --deldoc=yes --fstrans=no --default
echo -e "\x1B[35mopus\e[0m"
cd ~/ffmpeg-source
git clone --depth 1 git://git.xiph.org/opus.git
cd opus
./autogen.sh
./configure --disable-shared
make
checkinstall --pkgname=libopus --pkgversion="$(date +%Y%m%d%H%M)-git" --backup=no --deldoc=yes --fstrans=no --default
echo -e "\x1B[35mffmpeg\e[0m"
cd ~/ffmpeg-source
wget http://www.ffmpeg.org/releases/ffmpeg-1.1.1.tar.gz
tar xf ffmpeg-1.1.1.tar.gz && rm -rf ffmpeg-1.1.1.tar.gz
cd ffmpeg-1.1.1
sed -i 's/×/x/' doc/filters.texi
sed -i 's/×/x/' doc/ffmpeg.texi
./configure --enable-gpl --enable-libass --enable-libfaac --enable-libfdk-aac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-librtmp --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree --enable-version3 --enable-libopus
make
checkinstall --pkgname=ffmpeg --pkgversion="7:$(date +%Y%m%d%H%M)-git" --backup=no --deldoc=yes --fstrans=no --default
make install
hash -r
echo -e "\x1B[35mThe following should tell apt to not upgrade ffmpeg (we need version 1.1.1):\e[0m"
apt-mark hold ffmpeg
ffmpeg -version && cd ~ && rm -rf ~/ffmpeg-source
echo -e "\x1B[35mSoftware Dependencies installed by Binaries\e[0m"
echo -e "\x1B[36mffmpeg2theora\e[0m"
cd ~ && wget http://v2v.cc/~j/ffmpeg2theora/ffmpeg2theora-0.29.linux64.bin && chmod a+x ffmpeg2theora-0.29.linux64.bin && install -m 755 ffmpeg2theora-0.29.linux64.bin /usr/bin/ffmpeg2theora && rm -rf ffmpeg2theora-0.29.linux64.bin
echo -e "\x1B[35mjava and tomcat\e[0m"
echo -e "\x1B[36mNow that java is installed, we can set JAVA_HOME and also add it to ~/islandora-install.properties\e[0m"
echo $( dirname $( dirname $( readlink -e /usr/bin/java ) ) )
. ~/islandora-install.properties
echo -e "\x1B[35mNote that you need to ensure that your update-alternatives point to the right java and javac.\e[0m"
update-alternatives --config java
update-alternatives --config javac
echo -e "\x1B[35mAdds Fedora User and adds fedora environment variables to /etc/profile.d/fedora.sh\e[0m"
FEDORA_USER_TEST=`getent passwd $FEDORA_USER`
useradd -m -d $FEDORA_HOME -s /bin/false $FEDORA_USER
echo -e "\x1B[35mMake environment variables match with what we set above:\e[0m"
echo -e 'export FEDORA_HOME=/usr/local/fedora\nexport CATALINA_HOME=/usr/local/fedora/tomcat\nexport CATALINA_PID="$CATALINA_HOME/catalina.pid"\nexport JAVA_OPTS="-Xms1024m -Xmx1024m -XX:MaxPermSize=512m -XX:+CMSClassUnloadingEnabled -Djavax.net.ssl.trustStore=/usr/local/fedora/server/truststore -Djavax.net.ssl.trustStorePassword=tomcat"\nexport JAVA_HOME=/usr/lib/jvm/java-7-oracle/jre\nexport FEDORA_USER=fedora' > /etc/profile.d/fedora.sh
sed -i "s|JAVA_OPTS=\"-Xms1024m -Xmx1024m -XX:MaxPermSize=512m -XX:+CMSClassUnloadingEnabled -Djavax.net.ssl.trustStore=/usr/local/fedora/server/truststore -Djavax.net.ssl.trustStorePassword=tomcat\"|JAVA_OPTS=\"$JAVA_OPTS\"|g" /etc/profile.d/fedora.sh
sed -i "s|FEDORA_HOME=\"/usr/local/fedora\"|FEDORA_HOME=\"$FEDORA_HOME\"|g" /etc/profile.d/fedora.sh
sed -i "s|CATALINA_HOME=\"/usr/local/fedora/tomcat\"|CATALINA_HOME=\"$CATALINA_HOME\"|g"` /etc/profile.d/fedora.sh
sed -i "s|FEDORA_USER=fedora|FEDORA_USER=$FEDORA_USER|g" /etc/profile.d/fedora.sh
sed -i "s|JAVA_HOME=/usr/lib/jvm/java-7-oracle/jre|JAVA_HOME=$JAVA_HOME|g"` /etc/profile.d/fedora.sh
echo -e "\x1B[35mCreate tomcat init.d startup script:\e[0m"
cd /etc/init.d
wget --no-check-certificate https://raw.github.com/discoverygarden/Fedora-Init-Script/master/tomcat
ln -s tomcat fedora
chmod a+x tomcat
$SCHEDULE_TOMCAT_SERVICE_COMMAND
cd ~
wget http://archive.apache.org/dist/tomcat/tomcat-7/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz
tar xf apache-tomcat-$TOMCAT_VERSION.tar.gz
mv apache-tomcat-$TOMCAT_VERSION /usr/share
ln -s /usr/share/apache-tomcat-$TOMCAT_VERSION /usr/share/tomcat
chown -R $FEDORA_USER:$FEDORA_USER /usr/share/apache-tomcat-$TOMCAT_VERSION
echo -e "\x1B[35mFits\e[0m"
cd /opt
wget http://fits.googlecode.com/files/fits-0.6.2.zip
unzip -o fits-0.6.2.zip && rm -rf fits-0.6.2.zip && ln -s fits-0.6.2 fits && chmod a+x /opt/fits/fits.sh
echo -e "\x1B[35madore-djatoka\e[0m"
cd /opt
wget http://sourceforge.net/projects/djatoka/files/djatoka/1.1/adore-djatoka-1.1.tar.gz/download -O adore-djatoka-1.1.tar.gz
tar xf adore-djatoka-1.1.tar.gz && rm -rf adore-djatoka-1.1.tar.gz
ln -s adore-djatoka-1.1 adore-djatoka
echo -e "\x1B[35mMake kakadu available on the command line:\e[0m"
ln -s /opt/adore-djatoka/bin/Linux-x86-64/kdu_expand /usr/bin/kdu_expand
ln -s /opt/adore-djatoka/bin/Linux-x86-64/kdu_compress /usr/bin/kdu_compress
echo "/opt/adore-djatoka/lib/Linux-x86-64" > /etc/ld.so.conf.d/kakadu.conf
ldconfig
echo -e "\x1B[35mDrush\e[0m"
echo -e "\x1B[36mSpecify drush commit due to issues with newer drush versions and automated tests used by QA:\e[0m"
cd /opt
git clone https://github.com/drush-ops/drush.git && cd drush && git checkout b9e6c8c00da0fbf1227869cdf915b0c6cea466cc
ln -s /opt/drush/drush /usr/bin/drush
echo -e "\x1B[35mOpenOffice\e[0m"
cd /etc/init.d && wget --no-check-certificate https://raw.github.com/discoverygarden/openoffice-init-script/master/openoffice && chmod a+x openoffice
useradd -m -d /home/openoffice openoffice
service openoffice start
$SCHEDULE_OPENOFFICE_SERVICE_COMMAND
echo -e "\x1B[35mMonit\e[0m"
echo -e "\x1B[36mKeep openoffice running as a service with Monit as it has been known to crash.\e[0m"
echo -e "check process openoffice\n matching \"/usr/lib/libreoffice/program/soffice.bin\"\n start program = \"/etc/init.d/openoffice start\"\n stop program = \"/etc/init.d/openoffice stop\"\n if failed host 127.0.0.1 port 8100 then restart\n if 5 restarts within 5 cycles then timeout" > $MONIT_CONF_DIR/openoffice.conf
sed -i 's|# set httpd| set httpd|g' $MONIT_CONFIG_FILE
sed -i 's|# use address| use address|g' $MONIT_CONFIG_FILE
sed -i 's|# allow localhost| allow localhost|g' $MONIT_CONFIG_FILE
sed -i 's| allow admin:monit|# allow admin:monit|g' $MONIT_CONFIG_FILE
sed -i 's| allow @monit |# allow @monit |g' $MONIT_CONFIG_FILE
sed -i 's| allow @users readonly |# allow @users readonly |g' $MONIT_CONFIG_FILE
service monit restart
yes | cp -rf /vagrant/000-default.conf /etc/apache2/sites-available/000-default.conf
a2enmod rewrite
a2enmod proxy
a2enmod proxy_http
pecl install uploadprogress
sed -i '949iextension=uploadprogress.so' /etc/php5/apache2/php.ini
sed -i "s|memory_limit = 128M|memory_limit = 512M|g" /etc/php5/apache2/php.ini
sed -i "s|post_max_size = 8M|post_max_size = 2048M|g" /etc/php5/apache2/php.ini
sed -i "s|upload_max_filesize = 2M|upload_max_filesize = 2048M|g" /etc/php5/apache2/php.ini
echo "apc.shm_size = 64M" >> $APC_CONFIG_FILE
echo -e "\x1B[35mSetup MySQL Databases and Server\e[0m"
echo -e "\x1B[36mRun mysql_secure_installation to ensure security:\e[0m"
MYSQL=`which mysql`
$MYSQL -uroot -p$DB_ROOT_PASSWORD -e "$SQL"
echo -e "\x1B[35mAdd a mysql backup script:\e[0m"
if [ ! -d /root/bin ]; then
mkdir -p /root/bin
fi
echo -e '#!/bin/bash\n#\n# Dumps all MySQL databases and removes backups older than 1 week\n# With optional scp to another host\n\nBackupFolder=/dbbackups\nMySQLUser=root\nMySQLPass=PASSWORD\n# These next few are just used for scp, which is optional if DO_SCP != yes\nDO_SCP=no\nREMOVE_LOCAL_COPY=no\nFOLDER=dbBACK/mysql-newdb\nBACKUP_USER=backupuser\nBACKUP_HOST=backuppass\n\nDATE=$(date +%Y%m%d)\nOLDDATE=$(date +%Y%m%d -d ' 7 days ago')\n\nif [ ! -d "$BackupFolder" ]; then\n mkdir -p "$BackupFolder"\n if [ $? -gt 0 ]; then\n echo "ERROR: Could not create $BackupFolder"\n exit 1\n fi\nfi\n\nfor dbname in $(mysql --user="$MySQLUser" --password="$MySQLPass" -Bse "show databases"); do\n rm -f "$BackupFolder/$dbname-$OLDDATE.bz2"\n DumpName="$BackupFolder/$dbname-$DATE.bz2"\n mysqldump --user="$MySQLUser" --password="$MySQLPass" --opt "$dbname" | bzip2 -9 >"$DumpName"\n if [ $? -gt 0 ]; then\n echo "Backup of $dbname failed! (mysqldump)"\n else\n if [ "$DO_SCP" == 'yes' ]; then\n scp -B -o StrictHostKeyChecking=no "$DumpName" "$BACKUP_USER"@"$BACKUP_HOST":"$FOLDER/"\n if [ $? -gt 0 ]; then\n echo "Backup of $dbname failed! (scp)"\n fi\n if [ "$REMOVE_LOCAL_COPY" == 'yes' ]; then\n rm -f "$DumpName"\n fi\n fi\n fi\ndone\n' > /root/bin/mysqlBackup.sh && chmod a+x /root/bin/mysqlBackup.sh
/root/bin/mysqlBackup.sh
sed -i "s|PASSWORD|$DB_ROOT_PASSWORD|g" /root/bin/mysqlBackup.sh
# Update crontab to schedule mysql backup:
# crontab -e
# Add:
# 15 1 * * * /root/bin/mysqlBackup.sh
echo -e "\x1B[35mwrite out current crontab\e[0m"
crontab -l > mycron
echo -e "\x1B[35mecho new cron into cron file\e[0m"
echo "15 1 * * * /root/bin/mysqlBackup.sh" >> mycron
echo -e "\x1B[35minstall new cron file\e[0m"
crontab mycron
rm mycron
mkdir -p /dbbackups
echo -e "\x1B[35mDumps will be stored in /dbbackups\e[0m"
echo -e "\x1B[35mInstall Fedora Commons\e[0m"
echo -e "\x1B[36mFedora Commons Base Install\e[0m"
echo -e "\x1B[36mCreate install properties file\e[0m"
cd ~
echo -e 'keystore.file=included\nri.enabled=true\nmessaging.enabled=true\napia.auth.required=false\ndatabase.jdbcDriverClass=com.mysql.jdbc.Driver\ntomcat.ssl.port=8443\nssl.available=true\ndatabase.jdbcURL=jdbc\:mysql\://localhost/fedora3?useUnicode\=true&amp;characterEncoding\=UTF-8&amp;autoReconnect\=true\nmessaging.uri=vm\:(broker\:(tcp\://localhost\:61616))\ndatabase.password=islandora\ndatabase.mysql.driver=included\ndatabase.username=fedoraAdmin\nfesl.authz.enabled=false\ntomcat.shutdown.port=8055\ndeploy.local.services=true\nxacml.enabled=true\ndatabase.mysql.jdbcDriverClass=com.mysql.jdbc.Driver\ntomcat.http.port=8080\nfedora.serverHost=localhost\ndatabase=mysql\ndatabase.driver=included\nfedora.serverContext=fedora\nllstore.type=akubra-fs\ntomcat.home=/usr/local/fedora/tomcat\nfesl.authn.enabled=true\ndatabase.mysql.jdbcURL=jdbc\:mysql\://localhost/fedora3?useUnicode\=true&amp;characterEncoding\=UTF-8&amp;autoReconnect\=true\nfedora.home=/usr/local/fedora\ninstall.type=custom\nservlet.engine=included\napim.ssl.required=false\nfedora.admin.pass=islandora\napia.ssl.required=false' > ~/install.properties
sed -i "s|localhost/fedora3?|localhost/$FEDORA_DB_NAME?|g" ~/install.properties
sed -i "s|database.password=islandora|database.password=$FEDORA_DB_PASS|g" ~/install.properties
sed -i "s|database.username=fedoraAdmin|database.username=$FEDORA_DB_USER|g" ~/install.properties
sed -i "s|fedora.home=/usr/local/fedora|fedora.home=$FEDORA_HOME|g" ~/install.properties
sed -i "s|tomcat.home=/usr/local/fedora/tomcat|tomcat.home=$CATALINA_HOME|g" ~/install.properties
sed -i "s|fedora.admin.pass=islandora|fedora.admin.pass=$FEDORA_ADMIN_PASS|g" ~/install.properties
sed -i "s|servlet.engine=included|servlet.engine=existingTomcat|g" ~/install.properties
cd ~
wget http://downloads.sourceforge.net/fedora-commons/fcrepo-installer-$FEDORA_VERSION.jar
java -jar fcrepo-installer-$FEDORA_VERSION.jar install.properties
rm -rf fcrepo-installer-$FEDORA_VERSION.jar install.properties
sed -i "s|changeme|islandora|g" $FEDORA_HOME/server/config/fedora.fcfg
echo -e "\x1B[35mcopy over server.xml with the one provided with fedora\e[0m"
cp $CATALINA_HOME/conf/server.xml $CATALINA_HOME/conf/server.bak cp /usr/local/fedora/install/server.xml $CATALINA_HOME/conf/server.xml
echo -e "\x1B[35mNote remove maxSpareThreads property in /usr/share/tomcat/conf/server.xml as it no longer does anything.\e[0m"
echo -e "\x1B[36mTweak some Fedora settings:\e[0m"
sed -i "s|security.fesl.authN.jaas.apia.enabled=false|security.fesl.authN.jaas.apia.enabled=true|g" $FEDORA_HOME/server/config/spring/web/web.properties
unzip -o $CATALINA_HOME/webapps/fedora.war -d $CATALINA_HOME/webapps/fedora
chown -R $FEDORA_USER:$FEDORA_USER $FEDORA_HOME
chown -R $FEDORA_USER:$FEDORA_USER /usr/share/apache-tomcat-$TOMCAT_VERSION
echo -e "\x1B[35mStart and stop tomcat so fedora creates some dirs:\e[0m"
service tomcat deploy
echo -e "\x1B[35mXACML Settings\e[0m"
echo -e "\x1B[36mAdjust xacml policies:\e[0m"
rm -rf $FEDORA_HOME/data/fedora-xacml-policies/repository-policies/default/deny-purge-*
rm -rf $FEDORA_HOME/data/fedora-xacml-policies/repository-policies/default/deny-inactive-or-deleted-objects-or-datastreams-if-not-administrator.xml
rm -rf $FEDORA_HOME/data/fedora-xacml-policies/repository-policies/default/deny-policy-management-if-not-administrator.xml
echo -e "\x1B[35mNote: This file should either be removed or tweaked if you wish to access fedoraAdmin. Keep in mind firewall rules would need to be updated as well.\e[0m"
rm -rf $FEDORA_HOME/data/fedora-xacml-policies/repository-policies/default/deny-apim-if-not-localhost.xml
cd ~
git clone https://github.com/Islandora/islandora-xacml-policies && cd islandora-xacml-policies
mkdir $FEDORA_HOME/data/fedora-xacml-policies/repository-policies/islandora_policies && cp *.xml $FEDORA_HOME/data/fedora-xacml-policies/repository-policies/islandora_policies && rm -rf ~/islandora-xacml-policies
echo -e "\x1B[35mGSearch and Solr\e[0m"
echo -e "\x1B[36mGrab fedoragsearch and solr - do basic config:\e[0m"
cd ~
wget $FEDORA_GSEARCH_URL
unzip -o $FEDORA_GSEARCH_NAME.zip
cp $FEDORA_GSEARCH_NAME/fedoragsearch.war $CATALINA_HOME/webapps/ && unzip -o $FEDORA_GSEARCH_NAME/fedoragsearch.war -d $CATALINA_HOME/webapps/fedoragsearch && rm -rf $FEDORA_GSEARCH_NAME*
wget $SOLR_URL
tar -xf $SOLR_NAME.tgz
cp -r $SOLR_NAME/example/solr $FEDORA_HOME/solr
cp $SOLR_NAME/example/webapps/solr.war $CATALINA_HOME/webapps/ && unzip -o $SOLR_NAME/example/webapps/solr.war -d $CATALINA_HOME/webapps/solr
mkdir $FEDORA_HOME/solr/$SOLR_DEFAULT_CORE_PATH/data
chown -R $FEDORA_USER:$FEDORA_USER $FEDORA_HOME
cd $CATALINA_HOME/webapps/fedoragsearch/FgsConfig
echo -e "\x1B[35mant generateIndexingXslt:\e[0m"
ant -f fgsconfig-basic.xml -Dlocal.FEDORA_HOME=$FEDORA_HOME -DgsearchUser=$FEDORA_ADMIN_USER -DgsearchPass=$FEDORA_ADMIN_PASS -DfinalConfigPath=$CATALINA_HOME/webapps/fedoragsearch/WEB-INF/classes -DlogFilePath=$FEDORA_HOME/server/logs -DfedoraUser=$FEDORA_ADMIN_USER -DfedoraPass=$FEDORA_ADMIN_PASS -DobjectStoreBase=$FEDORA_HOME/data/objectStore -DindexDir=$FEDORA_HOME/solr/$SOLR_DEFAULT_CORE_PATH/data/index -DindexingDocXslt=foxmlToSolr -propertyfile fgsconfig-basic-for-islandora.properties
mv $FEDORA_HOME/solr/$SOLR_DEFAULT_CORE_PATH/conf/schema.xml $FEDORA_HOME/solr/$SOLR_DEFAULT_CORE_PATH/conf/schema.xml.bak
mv $FEDORA_HOME/solr/$SOLR_DEFAULT_CORE_PATH/conf/solrconfig.xml $FEDORA_HOME/solr/$SOLR_DEFAULT_CORE_PATH/conf/solrconfig.xml.bak
mv $CATALINA_HOME/webapps/fedoragsearch/WEB-INF/classes/fgsconfigFinal/index/FgsIndex/foxmlToSolr.xslt $CATALINA_HOME/webapps/fedoragsearch/WEB-INF/classes/fgsconfigFinal/index/FgsIndex/foxmlToSolr.xslt.bak
echo -e "\x1B[35mSolr Configuration\e[0m"
cd ~
git clone git://github.com/discoverygarden/basic-solr-config.git
cd basic-solr-config
git checkout 4.x
mv ~/basic-solr-config/conf/* $FEDORA_HOME/solr/$SOLR_DEFAULT_CORE_PATH/conf
mv ~/basic-solr-config/islandora_transforms $CATALINA_HOME/webapps/fedoragsearch/WEB-INF/classes/fgsconfigFinal/index/FgsIndex
mv ~/basic-solr-config/foxmlToSolr.xslt $CATALINA_HOME/webapps/fedoragsearch/WEB-INF/classes/fgsconfigFinal/index/FgsIndex/foxmlToSolr.xslt
cp ~/basic-solr-config/index.properties $CATALINA_HOME/webapps/fedoragsearch/WEB-INF/classes/fgsconfigFinal/index/FgsIndex/index.properties
cd ~
rm -rf ~/basic-solr-config
rm -rf ~/$SOLR_NAME*
cd $CATALINA_HOME/webapps/fedoragsearch/WEB-INF/lib
wget https://github.com/discoverygarden/dgi_gsearch_extensions/releases/download/v0.1.1/gsearch_extensions-0.1.1-jar-with-dependencies.jar -O gsearch_extensions-0.1.1-jar-with-dependencies.jar
echo -e "\x1B[35mAdore-Djatoka\e[0m"
echo -e "\x1B[36mInstall djatoka war:\e[0m"
cp /opt/adore-djatoka/dist/adore-djatoka.war $CATALINA_HOME/webapps && unzip -o /opt/adore-djatoka/dist/adore-djatoka.war -d $CATALINA_HOME/webapps/adore-djatoka
echo -e "\x1B[35mSetup Logging\e[0m"
echo -e "\x1B[36mPlease note logging still needs some TLC log4j and logrotate clash with some files:\e[0m"
cd ~
git clone https://github.com/discoverygarden/islandora_log_config.git
cd islandora_log_config
cp islandora_logrotate /etc/logrotate.d/
cp log4j.xml /usr/local/fedora/tomcat/webapps/fedoragsearch/WEB-INF/classes/log4j.xml
cp logging.properties /usr/local/fedora/tomcat/conf/logging.properties
cp log4j.properties /usr/local/fedora/tomcat/webapps/adore-djatoka/WEB-INF/classes/log4j.properties
cp logback.xml /usr/local/fedora/server/config/logback.xml
chown -R $FEDORA_USER:$FEDORA_USER $FEDORA_HOME
echo -e "\x1B[35mDrupal Filter\e[0m"
echo -e "\x1B[36mSetup Drupal filter:\e[0m"
cd $CATALINA_HOME/webapps/fedora/WEB-INF/lib
wget --no-check-certificate $DRUPAL_FILTER_URL
echo -e 'fedora-auth\n{\n\torg.fcrepo.server.security.jaas.auth.module.XmlUsersFileModule required\n\tdebug=true; \n\tca.upei.roblib.fedora.servletfilter.DrupalAuthModule required\n\tdebug=true; \n};\n\nfedora-auth-xmlusersfile\n{\n\torg.fcrepo.server.security.jaas.auth.module.XmlUsersFileModule required\n\tdebug=true;\n};\n\nfedora-auth-ldap-bind\n{\n\torg.fcrepo.server.security.jaas.auth.module.LdapModule required\n\thost.url="ldap://dev01.muradora.org"\n\tauth.type="simple"\n\tbind.mode="bind"\n\tbind.filter="uid={0},ou=people,dc=muradora,dc=org"\n\tdebug=true;\n};\n\nfedora-auth-ldap-bind-search-bind\n{\n\torg.fcrepo.server.security.jaas.auth.module.LdapModule required\n\thost.url="ldap://dev01.muradora.org"\n\tauth.type="simple"\n\tbind.mode="bind-search-bind"\n\tbind.user="uid=binduser,ou=people,dc=muradora,dc=org"\n\tbind.pass="murabind"\n\tsearch.base="ou=people,dc=muradora,dc=org"\n\tsearch.filter="(uid={0})"\n\tattrs.fetch="cn,sn,mail,displayName,carLicense"\n\tdebug=true;\n};\n\nfedora-auth-ldap-bind-search-compare\n{\n\torg.fcrepo.server.security.jaas.auth.module.LdapModule required\n\thost.url="ldap://dev01.muradora.org"\n\tauth.type="simple"\n\tbind.mode="bind-search-compare"\n\tbind.user="uid=binduser,ou=people,dc=muradora,dc=org"\n\tbind.pass="murabind"\n\tsearch.base="ou=people,dc=muradora,dc=org"\n\tsearch.filter="(uid={0})"\n\tattrs.fetch="cn,sn,mail,displayName,carLicense"\n\tdebug=true;\n};' > $FEDORA_HOME/server/config/jaas.conf
cd $FEDORA_HOME/server/config
wget https://raw.github.com/Islandora/islandora_drupal_filter/master/filter-drupal.xml
sed -i "s|DB_SERVER|$DB_SERVER|g" $FEDORA_HOME/server/config/filter-drupal.xml
sed -i "s|DRUPAL_DB_NAME|$DRUPAL_DB_NAME|g" $FEDORA_HOME/server/config/filter-drupal.xml
sed -i "s|DRUPAL_DB_USER|$DRUPAL_DB_USER|g" $FEDORA_HOME/server/config/filter-drupal.xml
sed -i "s|DRUPAL_DB_PASS|$DRUPAL_DB_PASS|g" $FEDORA_HOME/server/config/filter-drupal.xml
echo -e "\x1B[35mStart fedora fully configured:\e[0m"
chown -R $FEDORA_USER:$FEDORA_USER $FEDORA_HOME
service tomcat start
echo -e "\x1B[35mInstall Drupal\e[0m"
echo -e "\x1B[36mCLUI Config\e[0m"
echo -e "\x1B[36mNote: Some libraries, modules, contrib are optional but are included to support additional theming. e.g. features, strongarm, node_export.\e[0m"
cd $OS_DEFAULT_DOCUMENTROOT
drush dl drupal
mv drupal-7* drupal7
cd drupal7
mkdir sites/default/files
mkdir sites/all/{modules,themes,libraries}
cp sites/default/default.settings.php sites/default/settings.php
cd sites/all/modules
echo -e "\x1B[35mIslandora Modules\e[0m"
echo -e "\x1B[36mGit clone the following modules:\e[0m"
echo -e "\x1B[36mmodslist.sh helper script to handle the git repos to install modules:\e[0m"
#!/bin/bash
cd /var/www/drupal7/sites/all/modules
git clone https://github.com/Islandora/islandora.git
git clone https://github.com/Islandora/islandora_scholar.git
git clone https://github.com/discoverygarden/google_analytics_reports.git
git clone https://github.com/discoverygarden/islandora_ga_reports.git
git clone https://github.com/Islandora/islandora_solr_search.git
git clone https://github.com/Islandora/islandora_solr_views.git
git clone https://github.com/Islandora/islandora_solution_pack_collection.git
git clone https://github.com/Islandora/objective_forms.git
git clone https://github.com/Islandora/islandora_xml_forms.git
git clone https://github.com/Islandora/php_lib.git
git clone https://github.com/Islandora/islandora_importer.git
git clone https://github.com/Islandora/islandora_bookmark.git
git clone https://github.com/Islandora/islandora_oai.git
git clone https://github.com/Islandora/islandora_solution_pack_audio.git
git clone https://github.com/Islandora/islandora_solution_pack_book.git
git clone https://github.com/Islandora/islandora_solution_pack_image.git
git clone https://github.com/Islandora/islandora_solution_pack_large_image.git
git clone https://github.com/Islandora/islandora_solution_pack_pdf.git
git clone https://github.com/Islandora/islandora_solution_pack_video.git
git clone https://github.com/Islandora/islandora_paged_content.git
git clone https://github.com/Islandora/islandora_internet_archive_bookreader.git
git clone https://github.com/Islandora/islandora_ocr.git
git clone https://github.com/Islandora/islandora_openseadragon.git
git clone https://github.com/Islandora/islandora_jwplayer.git
git clone https://github.com/Islandora/islandora_fits.git
git clone https://github.com/Islandora/islandora_simple_workflow.git
git clone https://github.com/Islandora/islandora_book_batch.git
git clone https://github.com/Islandora/islandora_batch.git
git clone https://github.com/Islandora/islandora_ip_embargo.git
git clone https://github.com/Islandora/islandora_solution_pack_compound.git
git clone https://github.com/Islandora/islandora_solution_pack_newspaper.git
git clone https://github.com/Islandora/islandora_xacml_editor.git
git clone https://github.com/Islandora/islandora_marcxml.git
git clone https://github.com/discoverygarden/islandora_featured_collection.git
git clone https://github.com/Islandora/islandora_solr_metadata.git
git clone https://github.com/discoverygarden/solrmetadataconfigs.git
git clone https://github.com/discoverygarden/islandora_solution_pack_document.git
git clone https://github.com/discoverygarden/islandora_jodconverter.git
git clone https://github.com/discoverygarden/islandora_plupload.git
git clone https://github.com/discoverygarden/islandora_solution_pack_entities.git
git clone https://github.com/Islandora-Labs/islandora_binary_object.git
git clone https://github.com/Islandora/islandora_checksum.git
git clone https://github.com/Islandora/islandora_checksum_checker.git
git clone https://github.com/Islandora/islandora_premis.git
git clone https://github.com/Islandora/islandora_bagit.git
echo -e "\x1B[35mDependency if bagit is to be used:\e[0m"
/usr/bin/pear install Archive_Tar
echo -e "\x1B[35mLibraries\e[0m"
cd /var/www/drupal7/sites/all/libraries/
git clone -b $TUQUE_BRANCH git://github.com/Islandora/tuque.git
git clone https://github.com/Islandora/internet_archive_bookreader.git bookreader
wget http://openseadragon.github.io/releases/openseadragon-bin-0.9.129.zip && unzip openseadragon-bin-0.9.129.zip && rm -rf openseadragon-bin-0.9.129.zip && mv openseadragon-bin-0.9.129 openseadragon
echo -e "\x1B[35mJWPlayer\e[0m"
wget https://ftp.drupal.org/files/projects/jw_player-7.x-1.x-dev.zip && unzip -o jw_player-7.x-1.x-dev.zip && rm -rf jw_player-7.x-1.x-dev.zip
echo -e "\x1B[35mNOTE: link no longer available. You can sign up to obtain this but licensing requirements are in question. Needs to be discussed.\e[0m"
wget https://github.com/moxiecode/plupload/archive/v1.5.8.zip -O v1.5.8.zip && unzip -o v1.5.8.zip && rm -rf v1.5.8.zip && mv plupload-1.5.8 plupload
wget http://sourceforge.net/projects/jodconverter/files/JODConverter/2.2.2/jodconverter-2.2.2.zip/download -O jodconverter-2.2.2.zip && unzip -o jodconverter-2.2.2.zip && rm -rf jodconverter-2.2.2.zip
mkdir jquery.cycle && cd jquery.cycle && wget http://malsup.github.com/jquery.cycle.all.js
drush dl imagemagick libraries views ctools oauth chart google_analytics views_slideshow views_responsive_grid strongarm features designkit conditional_styles socialmedia widgets features_extra uuid node_export block_class ldap entity colorbox rules xmlsitemap css_injector
echo -e "\x1B[35mDrupal site install\e[0m"
echo -e "\x1B[36mPlease note that you should consider making the drupal directory permissions more secure. These permissions will allow you to install modules through the drupal web interface however if this functionality is not required recommend locking down permissions using something such as https://github.com/discoverygarden/secure_drupal_file after the install.\e[0m"
chown -R $APACHE_USER:$APACHE_USER /var/www/drupal7
drush -y site-install standard --account-name=$DRUPAL_ADMIN_USER --account-pass=$DRUPAL_ADMIN_PASS --db-url=mysql://$DRUPAL_DB_USER:$DRUPAL_DB_PASS@localhost/$DRUPAL_DB_NAME
echo -e "\x1B[35mSecure settings.php\e[0m"
chmod 440 /var/www/drupal7/sites/default/settings.php
echo -e "\x1B[35mDrush Enables and Configuration\e[0m"
echo -e "\x1B[36mLine: 541\e[0m"
drush en block color comment contextual dashboard dblog field field_sql_storage field_ui file filter help image list menu node number options overlay path rdf shortcut system taxonomy text toolbar user bartik seven imagemagick libraries views update ctools oauth_common oauth_common_providerui system_charts chart_views chart googleanalytics views_responsive_grid strongarm features designkit conditional_styles fe_block uuid node_export node_export_features widgets socialmedia block_class colorbox rules entity_token css_injector
drush -y colorbox-plugin
drush -y dis overlay
drush vset islandora_base_url "$ISLANDORA_BASE"
drush vset islandora_solr_url "$SOLR_BASE"
drush -y --user=1 en islandora islandora_audio islandora_basic_collection islandora_basic_image islandora_fits islandora_importer islandora_openseadragon islandora_simple_workflow islandora_video islandora_jwplayer islandora_pdf islandora_paged_content islandora_ocr islandora_internet_archive_bookreader islandora_large_image islandora_book islandora_batch islandora_book_batch xml_form_api xml_form_elements xml_schema_api objective_forms php_lib islandora_solr islandora_solr_config islandora_solr_views islandora_ga_reports islandora_scholar islandora_oai google_analytics_reports islandora_importer xml_form_builder xml_forms islandora_bibliography islandora_scholar_embargo islandora_google_scholar islandora_marcxml islandora_xacml_editor islandora_xacml_api zip_importer pmid_importer ris_importer islandora_bookmark doi_importer endnotexml_importer citation_exporter bartik seven imagemagick libraries views views_ui ctools csl citeproc oauth_common oauth_common_providerui system_charts chart_views chart googleanalytics islandora_compound_object islandora_ip_embargo islandora_newspaper views_slideshow views_slideshow_cycle islandora_featured_collection islandora_solr_metadata islandora_document islandora_jodconverter islandora_entities islandora_entities_csv_import islandora_binary_object
drush php-eval "variable_set('islandora_large_image_viewers', array('name' => array('none' => 'none', 'islandora_openseadragon' => 'islandora_openseadragon'),'default' => 'islandora_openseadragon'));"
drush php-eval "variable_set('islandora_video_viewers', array('name' => array('none' => 'none', 'islandora_jwplayer' => 'islandora_jwplayer'),'default' => 'islandora_jwplayer'));"
drush php-eval "variable_set('islandora_audio_viewers', array('name' => array('none' => 'none', 'islandora_jwplayer' => 'islandora_jwplayer'),'default' => 'islandora_jwplayer'));"
drush php-eval "variable_set('islandora_book_viewers', array('name' => array('none' => 'none', 'islandora_internet_archive_bookreader' => 'islandora_internet_archive_bookreader'), 'default' => 'islandora_internet_archive_bookreader'));"
drush php-eval "variable_set('islandora_book_page_viewers', array('name' => array('none' => 'none', 'islandora_openseadragon' => 'islandora_openseadragon'), 'default' => 'islandora_openseadragon'));"
drush php-eval "variable_set('islandora_newspaper_page_viewers', array('name' => array('none' => 'none', 'islandora_openseadragon' => 'islandora_openseadragon'),'default' => 'islandora_openseadragon'))"
drush php-eval "variable_set('islandora_newspaper_issue_viewers', array('name' => array('none' => 'none', 'islandora_internet_archive_bookreader' => 'islandora_internet_archive_bookreader'),'default' => 'islandora_internet_archive_bookreader'))"
drush vset islandora_pdf_create_fulltext "1"
drush vset islandora_pdf_path_to_pdftotext `which pdftotext`
drush vset islandora_metadata_display "islandora_solr_metadata"
drush vset islandora_fits_executable_path "/opt/fits/fits.sh"
drush vset islandora_book_tesseract `which tesseract`
drush vset islandora_ocr_tesseract `which tesseract`
drush vset islandora_batch_java `which java`
drush php-eval "variable_set('islandora_ocr_tesseract_enabled_languages', array('deu-frak' => deu-frak, 'eng' => eng, 'fra' => fra, 'ita' => ita, 'jpn' => jpn, 'por' => por, 'spa' => spa, 'dan-frak' => 0, 'deu' => 0, 'hin' => 0, 'ita_old' => 0, 'rus' => 0, 'slk-frak' => 0, 'spa_old' => 0));"
drush vset islandora_lame_url `which lame`
drush vset islandora_video_ffmpeg_path `which ffmpeg`
drush vset islandora_video_ffmpeg2theora_path `which ffmpeg2theora`
drush vset islandora_paged_content_gs `which gs`
drush vset imagemagick_convert `which convert`
drush vset islandora_document_create_fulltext "1"
drush vset islandora_document_path_to_pdftotext `which pdftotext`
drush vset site_name "Stock Islandora and Fedora"
drush vset image_toolkit "imagemagick"
drush vset error_level $ERROR_LEVEL
drush php-eval "variable_set('oai2_date_field', 'fgs_lastModifiedDate_dt')"
echo -e "\x1B[35mNote: This should be a publicly resolvable URL or viewers will not work for people who cannot resolve the name. You also should ensure that the /etc/hosts file is pointing the name at localhost.\e[0m"
drush vset islandora_paged_content_djatoka_url "http://localhost:8080/adore-djatoka/"
drush vset user_register 0
drush -y updb
drush -y cc all
service $APACHE_SERVICE restart
drush cc all
echo -e "\x1B[35mDONE!!!!!\e[0m"
#!/bin/bash
DB_SERVER="localhost"
DB_ROOT_PASSWORD="password" # Set MySQL root password -> keep it simple -> run mysql_secure_installation after install to secure mySQL
DRUPAL_DB_NAME="drupal7" # Drupal database name
DRUPAL_DB_USER="drupal" # Drupal username for settings.php file
DRUPAL_DB_PASS="password" # Drupal password for settings.php file
DRUPAL_ADMIN_USER="admin" # Drupal admin username to log into Drupal Site
DRUPAL_ADMIN_PASS="password" # Drupal admin password to log into Drupal Site
DRUPAL_SITE_NAME="Islandora Install" # Drupal site name - displayed on the web site
FEDORA_VERSION="3.8.1" # Fedora version to install: 3.5 or 3.6.2 or 3.7.0 or 3.7.1
FEDORA_DB_NAME="fedora3" # Name of fedora MySQL database -> fedora3 is recommended
FEDORA_DB_USER="fedoraAdmin" # Fedora db username -> for fedora.fcfg file
FEDORA_DB_PASS="password" # Fedora db password -> for fedora.fcfg file
FEDORA_ADMIN_USER="fedoraAdmin" # Username for http://localhost:8080/fedora/admin
FEDORA_ADMIN_PASS="password" # Password for http://localhost:8080/fedora/admin
FEDORA_USER="fedora" # User that tomcat runs as
FEDORA_HOME="/usr/local/fedora" # Fedora home dir
CATALINA_HOME="/usr/share/tomcat" # Tomcat location
TOMCAT_VERSION="7.0.55"
# NOTE adjust memory so that it is no larger than half of total system memory. Depending on stack deployment this can be adjusted further. We don’t recommend running stack on system with less than 4GB of ram. Recommend adding -XX:+UseParallelOldGC for multi cpu systems
JAVA_OPTS="-Xms3072m -Xmx3072m -server -Djavax.net.ssl.trustStore=/usr/local/fedora/server/truststore -Djavax.net.ssl.trustStorePassword=tomcat -Dsolr.solr.home=/usr/local/fedora/solr -Dkakadu.home=/opt/adore-djatoka/bin/Linux-x86-64 -Djava.library.path=/opt/adore-djatoka/lib/Linux-x86-64 -DLD_LIBRARY_PATH=/opt/adore-djatoka/lib/Linux-x86-64"
JAVA_HOME=/usr/lib/jvm/java-8-oracle/jre
# Moved this down below java install please change to match java version
TOMCAT_BASE="http://localhost:8080"
ISLANDORA_BASE="$TOMCAT_BASE/fedora"
SOLR_BASE="$TOMCAT_BASE/solr"
ISLANDORA_BRANCH="7.x"
TUQUE_BRANCH="1.x"
ERROR_LEVEL="2"
FEDORA_GSEARCH_URL="http://downloads.sourceforge.net/fedora-commons/fedoragsearch-2.8.zip"
FEDORA_GSEARCH_NAME="fedoragsearch-2.8"
SOLR_VERSION="4.2.0"
NUMBER_OF_GSEARCH_THREADS="2" #do one gsearch thread per cpu might want to skip multithreading if you only have 1 cpu
GSEARCH_UPDATER_NAMES="FgsUpdaters FgsUpdater1"
DRUPAL_FILTER_URL="https://github.com/Islandora/islandora_drupal_filter/releases/download/v7.1.3/fcrepo-drupalauthfilter-3.8.1.jar"
SOLR_URL="http://archive.apache.org/dist/lucene/solr/4.2.0/solr-4.2.0.tgz"
SOLR_NAME="solr-4.2.0"
SOLR_DEFAULT_CORE_PATH="collection1"
Q1="CREATE DATABASE IF NOT EXISTS $DRUPAL_DB_NAME CHARACTER SET utf8 COLLATE utf8_bin;"
Q2="GRANT ALL ON $DRUPAL_DB_NAME.* TO $DRUPAL_DB_USER@localhost IDENTIFIED BY '$DRUPAL_DB_PASS';"
Q3="CREATE DATABASE IF NOT EXISTS $FEDORA_DB_NAME CHARACTER SET utf8 COLLATE utf8_bin;"
Q4="GRANT ALL ON $FEDORA_DB_NAME.* TO $FEDORA_DB_USER@localhost IDENTIFIED BY '$FEDORA_DB_PASS';"
Q5="FLUSH PRIVILEGES;"
SQL="${Q1}${Q2}${Q3}${Q4}${Q5}"
APACHE_DEFAULT_SITE="000-default"
APC_CONFIG_FILE="/etc/php5/mods-available/apcu.ini"
PROXY_DJATOKA_CONFIG="/etc/apache2/conf-available/proxy_djatoka.conf"
APACHE_USER="www-data"
APACHE_SERVICE="apache2"
OS_DEFAULT_DOCUMENTROOT="/var/www"
SCHEDULE_TOMCAT_SERVICE_COMMAND="update-rc.d tomcat start 95 2 3 4 5 . stop 15 0 1 6 ."
SCHEDULE_OPENOFFICE_SERVICE_COMMAND="update-rc.d openoffice start 92 2 3 4 5 . stop 30 0 1 6 ."
CRON_SPOOL_DIR="/var/spool/cron/crontabs"
MONIT_CONF_DIR="/etc/monit/conf.d"
MONIT_CONFIG_FILE="/etc/monit/monitrc"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment