Skip to content

Build Guide

Saad Kadhi edited this page Nov 7, 2016 · 16 revisions

Build from sources

This document is a step-by-step guide to build TheHive from sources.

1. Pre-requisites

The following softwares are required to download and build TheHive.

2. Quick build guide

Here is the way to install requirements and build the application from sources.

2.1. Packages

apt-get install git wget

2.2. Installation of Oracle JDK

echo 'deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main' > /etc/apt/sources.list.d/java.list
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key EEA14886
apt-get update
apt-get install oracle-java8-installer

2.2. Installation of ElasticSearch

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-key D88E42B4
echo "deb https://packages.elastic.co/elasticsearch/2.x/debian stable main" | sudo tee -a /etc/apt/sources.list.d/elasticsearch-2.x.list
sudo apt-get update && sudo apt-get install elasticsearch

2.3. Installation of NodeJs

apt-get install wget
wget -qO- https://deb.nodesource.com/setup_4.x | bash -
apt-get install nodejs

2.4. Installation of bower and grunt

npm install -g bower grunt-cli

2.5. TheHive

Download sources

cd /opt
git clone https://github.com/CERT-BDF/TheHive.git

Build the projects

cd TheHive/bin
./activator clean stage

It will download all dependencies (could be long) then build the back-end. This command clean previous build files and create an autonomous package in target/universal/stage directory. This packages contains TheHive binaries with required libraries (/lib), analyzers (/analyzers), configuration files (/conf), startup scripts (/bin).

Configure and start elasticsearch

echo -e "script.inline=on\ncluster.name=hive\nthreadpool.index.queue_size=100000\nthreadpool.search.queue_size=100000\nthreadpool.bulk.queue_size=1000 >> /etc/elasticsearch/elasticsearch.yml
service elasticsearch restart

Start TheHive

cd TheHive/target/universal/stage/
cat >> conf/application.conf << _EOF_
# Secret key
# ~~~~~
# The secret key is used to secure cryptographics functions.
# If you deploy your application to several instances be sure to use the same key!
play.crypto.secret="$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 64 | head -n 1)"
_EOF_
bin/thehive

First start

-- END OF FILE --

Get the sources

Run the following command :

git clone https://github.com/CERT-BDF/TheHive.git

Build the back-end

Go to the project directory ...

cd TheHive

... and run the following command.

activator clean stage

On *nix systems, this command must be prepend with ./. It will download all dependencies (could be long) then build the back-end. This command clean previous build files and create an autonomous package in target/universal/stage directory. This packages contains TheHive binaries with required libraries (/lib), analyzers (/analyzers), configuration files (/conf), startup scripts (/bin).

Build the front-end

Go to front-end directory ...

cd TheHive/ui

Install NodeJs libraries (required by building step), bower libraries (javascript libraries downloaded by browser). Then build the front-end :

npm install
bower install
grunt build

This step generates static files (html, javascript and related resources) in dist directory. These files are ready to be imported in http server.

Documentation has been moved here

Clone this wiki locally