diff --git a/installer/example-settings.xml b/installer/example-settings.xml
new file mode 100644
index 000000000..5bc02a8ee
--- /dev/null
+++ b/installer/example-settings.xml
@@ -0,0 +1,21 @@
+
+
+
+
+ defaults
+
+ vitro
+
+ /usr/local/vitro/home
+ /usr/local/tomcat
+
+ vitro
+
+
+
+
+
+ defaults
+
+
\ No newline at end of file
diff --git a/installer/home/pom.xml b/installer/home/pom.xml
new file mode 100644
index 000000000..f87672abb
--- /dev/null
+++ b/installer/home/pom.xml
@@ -0,0 +1,115 @@
+
+
+ 4.0.0
+
+ org.vivoweb
+ vitro-installer-home
+ 1.9.0-SNAPSHOT
+ pom
+
+
+ org.vivoweb
+ vitro-installer
+ 1.9.0-SNAPSHOT
+ ..
+
+
+ Vitro Install Home
+
+
+ vitro
+
+
+
+
+ install
+
+ vitro-dir
+
+
+
+
+ maven-assembly-plugin
+ 2.5.5
+
+
+ src/main/assembly/home.xml
+
+ false
+
+
+
+ package
+
+ single
+
+
+
+
+
+ maven-antrun-plugin
+ 1.8
+
+
+ remove-webapp
+ verify
+
+ run
+
+
+
+
+
+
+
+
+
+
+ maven-resources-plugin
+ 2.7
+
+
+ install
+ install
+
+ copy-resources
+
+
+ ${vitro-dir}
+
+
+ ${project.build.directory}/${project.build.finalName}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ maven-install-plugin
+ 2.5.2
+
+ true
+
+
+
+
+
+
+
+ org.vivoweb
+ vitro-home
+ tar.gz
+
+
+
diff --git a/installer/home/src/main/assembly/home.xml b/installer/home/src/main/assembly/home.xml
new file mode 100644
index 000000000..97f6d9368
--- /dev/null
+++ b/installer/home/src/main/assembly/home.xml
@@ -0,0 +1,22 @@
+
+ home
+
+ dir
+
+ false
+
+
+ /
+ true
+
+
+
+
+ ${project.basedir}/src/main/resources
+ /
+ true
+
+
+
\ No newline at end of file
diff --git a/installer/pom.xml b/installer/pom.xml
new file mode 100644
index 000000000..c436e4700
--- /dev/null
+++ b/installer/pom.xml
@@ -0,0 +1,185 @@
+
+
+ 4.0.0
+
+ org.vivoweb
+ vitro-installer
+ 1.9.0-SNAPSHOT
+ pom
+
+ Vitro Installer
+
+
+ ${project.version}
+
+
+
+
+
+ maven-install-plugin
+ 2.5.2
+
+ true
+
+
+
+ org.apache.maven.plugins
+ maven-gpg-plugin
+ 1.6
+
+ true
+
+
+
+ maven-deploy-plugin
+ 2.7
+
+ true
+
+
+
+
+
+
+ home
+ solr
+ webapp
+
+
+
+
+
+ org.vivoweb
+ vitro-solr
+ ${vitro-version}
+ war
+
+
+ org.vivoweb
+ vitro-home
+ ${vitro-version}
+ tar.gz
+
+
+ org.vivoweb
+ vitro-api
+ ${vitro-version}
+
+
+ org.vivoweb
+ vitro-webapp
+ ${vitro-version}
+ war
+
+
+
+
+
+
+ skip-install
+
+ !vitro-dir
+
+
+
+
+ maven-antrun-plugin
+ 1.8
+
+ true
+
+
+
+ maven-compiler-plugin
+ 3.1
+
+
+ default-compile
+
+
+
+ default-testCompile
+
+
+
+
+
+ maven-dependency-plugin
+ 2.10
+
+ true
+
+
+
+ maven-resources-plugin
+ 2.6
+
+
+ default-resources
+
+
+
+ default-testResources
+
+
+
+
+
+ maven-surefire-plugin
+ 2.12.4
+
+
+ test
+
+
+
+
+
+ maven-war-plugin
+ 2.6
+
+
+ default-war
+
+
+
+
+
+
+
+
+ install
+
+ vitro-dir
+
+
+
+
+ maven-enforcer-plugin
+ 1.4.1
+
+
+ enforce-properties
+ validate
+
+ enforce
+
+
+
+
+ app-name
+ You must provide an application name (app-name)
+
+
+
+
+
+
+
+
+
+
+
diff --git a/installer/solr/pom.xml b/installer/solr/pom.xml
new file mode 100644
index 000000000..5fd188eca
--- /dev/null
+++ b/installer/solr/pom.xml
@@ -0,0 +1,144 @@
+
+
+ 4.0.0
+
+ org.vivoweb
+ vitro-installer-solr
+ 1.9.0-SNAPSHOT
+ war
+
+
+ org.vivoweb
+ vitro-installer
+ 1.9.0-SNAPSHOT
+ ..
+
+
+ Vitro Install Solr App
+
+
+
+ package
+
+ app-name
+
+
+ ${app-name}solr
+
+
+ maven-war-plugin
+ 2.6
+
+
+
+ true
+
+
+ false
+
+
+ org.vivoweb
+ vitro-solr
+ war
+
+
+
+
+ src/main/webResources
+ true
+
+
+
+
+
+
+
+
+ pinstall
+
+ tomcat-dir
+
+
+
+
+ maven-antrun-plugin
+ 1.8
+
+
+ remove-webapp
+ verify
+
+ run
+
+
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+ 2.10
+
+
+ install
+ install
+
+ unpack
+
+
+
+
+ ${project.groupId}
+ ${project.artifactId}
+ ${project.version}
+ war
+ true
+ ${tomcat-dir}/webapps/${project.build.finalName}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ maven-install-plugin
+ 2.5.2
+
+ true
+
+
+
+ maven-clean-plugin
+
+
+
+ overlays
+
+
+
+
+
+
+
+
+
+ org.vivoweb
+ vitro-solr
+ war
+
+
+
diff --git a/installer/solr/src/main/webResources/META-INF/context.xml b/installer/solr/src/main/webResources/META-INF/context.xml
new file mode 100644
index 000000000..50ea873be
--- /dev/null
+++ b/installer/solr/src/main/webResources/META-INF/context.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
diff --git a/installer/solr/src/main/webResources/WEB-INF/classes/log4j.properties b/installer/solr/src/main/webResources/WEB-INF/classes/log4j.properties
new file mode 100644
index 000000000..6d55b17c9
--- /dev/null
+++ b/installer/solr/src/main/webResources/WEB-INF/classes/log4j.properties
@@ -0,0 +1,13 @@
+log4j.appender.AllAppender=org.apache.log4j.RollingFileAppender
+log4j.appender.AllAppender.File= ${catalina.home}/logs/${app-name}solr.log
+log4j.appender.AllAppender.MaxFileSize=10MB
+log4j.appender.AllAppender.MaxBackupIndex=10
+log4j.appender.AllAppender.layout=org.apache.log4j.PatternLayout
+log4j.appender.AllAppender.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c{1}] %m%n
+
+log4j.rootLogger=INFO, AllAppender
+
+# Make all of the Solr classes quieter...
+log4j.logger.org.apache.solr.level = WARNING
+# ...except for this one.
+log4j.logger.org.apache.solr.core.SolrResourceLoader.level = INFO
diff --git a/installer/webapp/pom.xml b/installer/webapp/pom.xml
new file mode 100644
index 000000000..5db443b0c
--- /dev/null
+++ b/installer/webapp/pom.xml
@@ -0,0 +1,149 @@
+
+
+ 4.0.0
+
+ org.vivoweb
+ vitro-installer-webapp
+ 1.9.0-SNAPSHOT
+ war
+
+
+ org.vivoweb
+ vitro-installer
+ 1.9.0-SNAPSHOT
+ ..
+
+
+ Vitro Install Web App
+
+
+
+ package
+
+ app-name
+
+
+ ${app-name}
+
+
+ org.apache.maven.plugins
+ maven-war-plugin
+ 2.6
+
+
+
+ true
+
+
+ false
+
+
+ org.vivoweb
+ vitro-webapp
+ war
+
+
+
+
+ src/main/webResources
+ true
+
+
+
+
+
+
+
+
+ install
+
+ tomcat-dir
+
+
+
+
+ maven-antrun-plugin
+ 1.8
+
+
+ remove-webapp
+ verify
+
+ run
+
+
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-dependency-plugin
+ 2.10
+
+
+ install
+ install
+
+ unpack
+
+
+
+
+ ${project.groupId}
+ ${project.artifactId}
+ ${project.version}
+ war
+ true
+ ${tomcat-dir}/webapps/${project.build.finalName}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ maven-install-plugin
+ 2.5.2
+
+ true
+
+
+
+ maven-clean-plugin
+
+
+
+ overlays
+
+
+
+
+
+
+
+
+
+ org.vivoweb
+ vitro-api
+
+
+ org.vivoweb
+ vitro-webapp
+ war
+
+
+
diff --git a/installer/webapp/src/main/webResources/META-INF/context.xml b/installer/webapp/src/main/webResources/META-INF/context.xml
new file mode 100644
index 000000000..7ada55878
--- /dev/null
+++ b/installer/webapp/src/main/webResources/META-INF/context.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
diff --git a/installer/webapp/src/main/webResources/WEB-INF/classes/log4j.properties b/installer/webapp/src/main/webResources/WEB-INF/classes/log4j.properties
new file mode 100644
index 000000000..f9d04c7a5
--- /dev/null
+++ b/installer/webapp/src/main/webResources/WEB-INF/classes/log4j.properties
@@ -0,0 +1,49 @@
+#
+# This file sets the log levels for the Vitro webapp.
+#
+# There are 8 principal logging levels, as follows:
+# <-- more messages ALL TRACE DEBUG INFO WARN ERROR FATAL OFF fewer messages -->
+#
+# The default logging level is specified on the rootLogger. Other levels can be
+# set for individual classes or packages as desired.
+#
+# Examples of setting levels:
+# log4j.logger.edu.cornell.mannlib.vitro.webapp.ConfigurationProperties=INFO
+# -- sets INFO level for this one class
+# log4j.logger.org.apache.catalina=INFO
+# -- sets INFO level for all classes in "org.apache.catalina" package
+# and any sub-packages.
+#
+# Documentation for this file can be found here:
+# http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PropertyConfigurator.html#doConfigure(java.lang.String,%20org.apache.log4j.spi.LoggerRepository)
+#
+# More information can be found here:
+# http://logging.apache.org/log4j/1.2/manual.html
+#
+# The "production" version of this file is log4j.properties.
+# debug.log4j.properties exists will be used instead, if it exists, but is not stored in Subversion.
+
+log4j.appender.AllAppender=org.apache.log4j.RollingFileAppender
+log4j.appender.AllAppender.File= ${catalina.home}/logs/${app-name}.all.log
+log4j.appender.AllAppender.MaxFileSize=10MB
+log4j.appender.AllAppender.MaxBackupIndex=10
+log4j.appender.AllAppender.layout=org.apache.log4j.PatternLayout
+log4j.appender.AllAppender.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c{1}] %m%n
+
+
+log4j.rootLogger=INFO, AllAppender
+
+# These classes are too chatty to display INFO messages.
+log4j.logger.edu.cornell.mannlib.vitro.webapp.startup.StartupStatus=WARN
+log4j.logger.edu.cornell.mannlib.vitro.webapp.servlet.setup.UpdateKnowledgeBase=WARN
+log4j.logger.org.semanticweb.owlapi.rdf.rdfxml.parser=WARN
+
+# Spring as a whole is too chatty to display INFO messages.
+log4j.logger.org.springframework=WARN
+
+# suppress odd warnings from libraries
+log4j.logger.com.hp.hpl.jena.sdb.layout2.LoaderTuplesNodes=FATAL
+log4j.logger.com.hp.hpl.jena.sdb.sql.SDBConnection=ERROR
+log4j.logger.org.openjena.riot=FATAL
+log4j.logger.org.apache.jena.riot=FATAL
+log4j.logger.org.directwebremoting=FATAL
diff --git a/installer/webapp/src/main/webapp/themes/readme b/installer/webapp/src/main/webapp/themes/readme
new file mode 100644
index 000000000..c58fdbef4
--- /dev/null
+++ b/installer/webapp/src/main/webapp/themes/readme
@@ -0,0 +1 @@
+Add your theme directories here
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 3f91d4d99..984ac42fa 100644
--- a/pom.xml
+++ b/pom.xml
@@ -69,6 +69,28 @@
+
+ installer
+
+
+ !vitro-installer-dir
+
+
+
+ installer
+
+
+
+ external-installer
+
+
+ vitro-installer-dir
+
+
+
+ ${vitro-installer-dir}
+
+
doclint-java8-disable