Skip to content

Deployment guide

szydan edited this page · 63 revisions

This document is a step by step tutorial explaining how to deploy a working LATC platform on a desktop PC or a server.

Base set up

In the following, we take care of all the dependencies of LATC. That is

  • Java
  • Hadoop 1.0.0
  • MySQL (or any other database system with a JDBC connector)
  • Jetty 7 or Tomcat 7
  • Apache
  • A PHP engine

In the following, we assume you have a running installation of all the aforementioned elements. The indicated versions are the one the software has been tested with, you may get the platform running with different versions but be aware that this would have not been tested.

Before you set the list of common variables we propose to declare the following alias in /etc/hosts: 127.0.0.1 latc-platform.local. Moreover, please create a new directory, e.g. LATC and move Tomcat to this directory.

List of common variables

  • $WEBAPPS = webapps directory of the servlet container (for instance, $WEBAPPS = /path/to/Tomcat/webapps)
  • $SERVER = server location for Servlet container (for instance, $SERVER = http://latc-platform.local:8080)
  • $APACHE = server location for Apache (for instance, http://latc-platform.local)
  • $WWW = web directory of apache (for instance, /path/to/LATC/www)

TODO: Don't we want Tomcat to run behind Apache as reverse proxy?

Configure Apache virtualhost

On Mac OS X: edit /etc/apache2/extra/httpd-vhosts.conf to add vhost config

<VirtualHost *:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot "/Users/your_username/path/to/LATC/www"
    ServerName latc-platform.local
    ErrorLog "/private/var/log/apache2/latc-platform.local-error_log"
    CustomLog "/private/var/log/apache2/latc-platform.local-access_log" common
</VirtualHost>

<Directory "/Users/your_username/Desktop/LATC/www">
    Options FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

then restart Apache: sudo apachectl restart

Configure mysql

Create database "latc" and user "latc" with password "latc" and give permissions to the user under: $ mysql -u root

CREATE DATABASE latc;
CREATE USER 'latc'@'localhost' IDENTIFIED BY 'latc';
GRANT ALL ON latc.* TO 'latc'@'localhost';

Deployment of the different components

The LATC platform is divided into several components. We hereafter detail there retrieval from the project code repository and installation, one by one

LATC Console

  1. Clone the content of the git repository of the LATC platform in this newly created directory and go to the directory of the console
git clone git@github.com:LATC/24-7-platform.git
cd latc-platform/console/
  1. Compile the source code using maven
mvn package
  1. The result is a WAR file LATC-Console.war located in target. In case the compilation fails, you can download the latest release
  2. Copy the WAR file LATC-Console.war into $WEBAPPS. The file should automatically be unpacked by Tomcat.
  3. Edit the file $WEBAPPS/WEB-INF/classes/datanucleus.properties to match the parameters of your database. More specificaly, edit the following lines:
javax.jdo.PersistenceManagerFactoryClass=org.datanucleus.jdo.JDOPersistenceManagerFactory
javax.jdo.option.ConnectionDriverName=com.mysql.jdbc.Driver
javax.jdo.option.ConnectionURL=jdbc:mysql://localhost/latc
javax.jdo.option.ConnectionUserName=latc
javax.jdo.option.ConnectionPassword=latc
  1. Restart the webapp, e.g., by stopping and starting Tomcat
  2. Browse to $SERVER/LATC-Console/ to start using the Console

Silk Workbench

  1. Clone Silk to your LATC directory:
git clone git://git.assembla.com/silk.git
cd LATC/silk/silk2
  1. Compile the source code using mvn
mvn clean install
  1. Copy workbench.war into $WEBAPPS
cd LATC/silk/silk2/silk-workbench/silk-workbench-webapp
cp target/silk-workbench-webapp-2.5.3.war ~/path/to/LATC/tomcat/webapps/workbench.war
  1. Create configuration file config.properties and indicate location of console and API key plus branding. At the time of writing, the configuration file has to be located in the directory where Tomcat is started (“./”). So for example, if you CD into the Tomcat directory and start it with bin/startup.sh, then the config file would have to go into the Tomcat directory. This will be fixed.
workbenchName=LATC Workbench
linkSpecRepository=LATC_Console
linkSpecRepository.LATC_Console.URL=$WEBAPPS/LATC-Console/api/
linkSpecRepository.LATC_Console.API_Key=...
enableVoidSourceButton=true

TODO: Where do we find the LATC Console API key? I saw it hardcoded inside console code ;-) in APIKey.java class - not sure this one should be used

  1. Restart tomcat
cd LATC/tomcat
bin/shutdown.sh
bin/startup.sh
  1. Browse to $SERVER/workbench/ to start using the Workbench

LATC Data Source Inventory (DSI) and Meta data store (MDS)

the following is broken, for the moment use http://dsi-test.lod-cloud.net/ and http://mds-test.lod-cloud.net/

  1. Download the DSI
  2. Unpack the zip file and copy the directory puelia-php into $WWW
  3. Browse to $APACHE/puelia-php to start using the DSI
  4. For the MDS, download and install Fuseki

Notes/Pitfalls

  • You must give write permissions to the file log/puelia.log
  • The application does not work with sub-paths (e.g. localhost/dsi). Instead, deploy at e.g. dsi.localhost:
  • Add the entry "127.0.0.1 dsi.localhost" to /etc/hosts.
  • Create a virtual host for this domain.

LATC Runtime

  1. Download the SILK framework, extract it in a temporary directory, get the file named silkmr.jar out of it
  2. Download LATC_runtime.jar package and locate it in above directory too
  3. Create a configuration file config.ini with the following content:
HADOOP_PATH = hadoop-1.0.0
HADOOP_USER = foo
LATC_CONSOLE_HOST = http://latc-console.few.vu.nl/
LINKS_FILE_STORE  = links.nt
RESULTS_HOST = http://demo.sindice.net/latctemp
RESULT_LOCAL_DIR = results
SPEC_FILE = spec.xml
VOID_FILE = void.ttl 
API_KEY_CONSOLE = xxx
API_KEY_MDS = xxx
MDS_HOST = http://mds.lod-cloud.net/graphs
  1. Create your void template with name void.tmpl

  2. Create blacklist file which contain the name of disable link spec

  3. Ensure the two jar files and the configuration file are in the same directory and then execute the runtime

java -jar LatcRuntime.jar -c config.ini
Something went wrong with that request. Please try again.