There are two ways to get up and running with the Giles Ecosystem: using Docker or installing it directly on your infrastructure. We recommend to use Docker for evaluation and testing purposes, but to install all components directly on your machines in production.
Using Docker
You can find a docker compose file with set up instructions for the Giles Ecosystem here: giles-eco-docker.
Full Installation
The Docker Ecosystem consists of the following components: Giles, Nepomuk, Cepheus, Cassiopeia, Digilib, Kafka, Zookeeper, MySQL/PostgreSQL. Ideally, these components should all be installed on their own machines to maximize performance, but they can be installed on just one machine (e.g. for development or testing purposes).
Third-party Components
Apache Zookeeper
Please consult the Apache Zookeeper page for installation instructions.
Apache Kafka
Please consult the Apache Kafka page for installation instructions.
Apache Tomcat
All Giles Ecosystem Components need to be deployed in a Servlet Container such as Apache Tomcat. Please consult the Apache Tomcat page for installation instructions. The Giles Ecosystem has been test with Apache Tomcat 8. Apache Tomcat 7 might work as well.
It is recommended to configure Tomcat to use UTF-8 as character encoding for URLs. To do that follow the instructions here.
Digilib
Please consult the Digilib page for installation instructions.
Giles Ecosystem Components
Giles
Giles needs the following software to be installed:
- MySQL or PostgreSQL
Create a database for Giles and a user with access to the new database. Then run the script located here to generate the necessary table structure. Note that if you did not call the database you've created for Gilesgiles
, you will have to change the use instruction in the script to reflect the database name. - Tomcat 8
You can either build Giles from source by downloading Giles' source code or download the war files uploaded for a release. This page explains how to install Giles using the provided war file. The download page is https://github.com/diging/giles-eco-giles-web/releases. In most cases, you should choose the latest release.
Once downloaded follow these steps:
- Unpack the war file (e.g. by changing its ending to ".zip" and unzipping it)
- Find the file
WEB-INF/classes/config.properties
and edit the following properties:giles_files_tmp_dir
: This should be an absolute path to the directory where you want Giles to stores its temporary files (files uploaded by users that haven't been processed yet).- If your Kafka server is not running on the same machine as Giles, or if it is running on a different port than the default port (9092), you have to change the property
kafka_hosts
to reflect this. - All other properties can later be changed through the webapp itself.
- Find the file
WEB-INF/classes/META-INF/persistence.xml
and change it as follows:There are three lines that start with
<property name="javax.persistence.jdbc.url"
. In each line, replace/path/to/giles/dbfiles/folder
with the path to the folder that should store Giles' DB files. It should look something like this:<property name="javax.persistence.jdbc.url" value="/path/to/giles/db/folder/users.odb"/>
Make sure to keep the file name at the end of each line.
Find the file
WEB-INF/spring/spring-security.xml
and change the following lines:<beans:bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <beans:property name="driverClassName" value="com.mysql.jdbc.Driver" /> <beans:property name="url" value="jdbc:mysql://localhost:3306/giles" /> <beans:property name="username" value="" /> <beans:property name="password" value="" /> </beans:bean>
Change the values of username and password to the username of your DB user and its password. If you did not name the new DB
giles
, change theurl
property to reflect the database name (e.g. if you named the databasegilesdb
, then instead ofjdbc:mysql://localhost:3306/giles
, putjdbc:mysql://localhost:3306/gilesdb
).
If you are using PostgreSQL instead of MySLQ, make sure to replace the driver class name withorg.postgresql.Driver
.Now, generate a new war file from the unpacked and changed files and deploy it in your Tomcat.
If you are on a Unix-based operating system, you can do this for example by running the command
jar -cvf giles.war .
from inside the unpacked Giles folder.- Once deployed, Tomcat should be accessible at
http://your.server/giles
.
From version v0.5 onwards, Giles does no longer use ObjectDB as database backend. If you set up a new Giles installation (not an update with existing data), you probably still have to execute step 3, but your data will be stored in the relational database you specify (e.g. MySQL). Step 3 is still part of the set up process for backwards compatibility and data migration purposes.
Upgrading to v0.5
If you are upgrading from an earlier version to version v0.5, you will have to migrate existing data as follows:
- Make sure Giles is running without exceptions.
- Reregister the other components with Giles (Nepomuk, Cassiopeia, Cepheus) under "Apps".
- Go to http://your.giles.server/giles-root/admin/migrate
- Enter the username of the user who's data you want to migrate. The username will be a combination of username and provider id. For example for GitHub:
githubusername_github
. Depending on how much data the user has uploaded, this might take a while. - Once the migration is done for a user, you will see some statistics about how many objects were migrated.
Nepomuk
Nepomuk needs the following software to be installed:
- Tomcat 8
to be continued...