Developing on a local Turbinia setup (no cloud required)

See here on how to setup the local Turbinia stack with Docker.

After you have the local stack up and running a usual development cycle would look like below.

Before you start

Step 1

Fork Turbinia on github and create a new feature branch to work on.

$ git clone https://github.com/[your-github-user-id]/turbinia.git
$ git checkout -b my-new-feature
$ cd turbinia

Step 2

Add some awesome new feature, maybe develop a new task?

Step 3

Rebuild Turbinia server and/or worker Docker images.

$ docker build -t turbinia-worker-dev -f docker/worker/Dockerfile .

Step 4

Change the image: location in the docker/local/docker-compose.yml file to point to your locally build image (eg turbinia-worker-dev).

Step 5

Let’s bring up the local Turbinia stack

$ docker-compose -f ./docker/local/docker-compose.yml up

Step 6

Let’s process evidence to test your setup, in this case a Chrome Browser history file but you will likely want to use specific evidence to test your new functionality.

$ curl https://raw.githubusercontent.com/obsidianforensics/hindsight/master/tests/fixtures/profiles/60/History > History
$ tar -vzcf ./evidence/history.tgz History
$ docker exec -ti turbinia-server turbiniactl compresseddirectory -l /evidence/history.tgz

This will create a task in Turbinia to process the evidence file. A task ID will be returned and we can query the status with below command.

$ docker exec -ti turbinia-server turbiniactl -a status -r b998efb5dcb64949963d9c72ba143c1a

Step 7

Test and debug your new feature and repeat steps 1-7 until satisfied.