Skip to Content
Getting StartedInstallation Guide

Installation Guide

The platform with all it’s modules can be easily installed on a server or on the local machine using Docker Compose. Additionally all modules can be installed manually but this is still work-in-progress and not recommended.

Installation with Docker Compose

The simplest way to install Cinnamon is by running the provided Docker Compose file.

Prerequisites

  • Docker
  • Docker Compose

Installation

Download the docker-compose.yml and .env.example from Cinnamon’s repository. Rename the .env.example to .env and set the password of the database user in the PostgreSQL container by setting the PG_PASSWORD variable inside the .env file.

# .env PG_PASSWORD=

For a local installation for development or testing purposes, no further configuration is required. Place both files into the desired directory and run the following command in the same directory to start all modules:

docker-compose up -d

The website can be accessed by opening the address http://localhost:8080 in the browser.

Configuration

If you want to install Cinnamon for productive usage, further configuration may be required.

  1. Mount the database

In order to persist the database, mount the data directory from PostgreSQL to your machine:

# docker-compose.yml services: cinnamon-db: volumes: - </path/on/machine>:/var/lib/postgresql/data
  1. (Optional) Configure demo server

Cinnamon has build in support for running the platform as a demonstration instance. This enables a daily database reset and displays a disclaimer at the top of each page. To enable the demonstration mode, set the IS_DEMO_INSTANCE variable in the .env file to true.

# .env IS_DEMO_INSTANCE=true
  1. (Optional) Configure the workflow

In case you want to change the default workflow or use your own algorithms see the Configuring Cinnamon section for advanced configurations.

Manual Installation

A manual installation of all the modules is possible but not recommended. This guide is still work-in-progress and will be improved in the future.

Currently prebuild packages for a standalone installation are not available and have to be build manually. Configuration of the platform is only possible by modifying the application.properties before building. This will be improved later by adding an external configuration file.

Prerequisites

The following software is required for a manual installation:

  • Java 17
  • Python 3.10
  • Tomcat 10
  • PostgreSQL 16.2

Cinnamon has been tested to work with the specified version, but other versions may work as well.

Build

First, clone the Cinnamon repository from GitHub.

Build the Cinnamon Platform and Cinnamon Anonymization modules

If you want to change the configuration of the platform you have to do so before building. You can change the application.properties inside cinnamon-platform/src/main/resources. For example, in order to set the password of the database, change the value of spring.datasource.password.

Both modules use Maven as their build system. You can use Maven integrated in your IDE or the provided Maven wrapper.

Compiling the anonymization requires to install arx first.

mvn install:install-file -Dfile=cinnamon-anonymization/src/main/resources/lib/libarx-3.9.1.jar -DgroupId=org.deidentifier -DartifactId=arx -Dversion=3.9.1 -Dpackaging=jar

Then both modules can be build with the following command, which creates two .war files for the anonymization and platform modules.

mvn clean install

Installation

  1. Set up the database

Cinnamon Platform requires a database user and a database in PostgreSQL. The following snippet can be used as an example.

CREATE ROLE cinnamon_user WITH PASSWORD 'changeme' LOGIN; CREATE DATABASE cinnamon_db OWNER cinnamon_user;

The database schema will be created automatically when the application starts.

  1. Start the platform and the anonymization modules

Move the .war files into the desired directories inside the webapps folder. Please read the official Tomcat 10 documentation for further information.

  1. Start the synthetization module

Instructions will be added in the future.

  1. Start the evaluation module

Instructions will be added in the future.

  1. Start the risk assessment module

Instructions will be added in the future.

Last updated on